Interactive demo: charting in SharePoint

Last month I published a first demo based on the SPELL mini-BI solution, showcasing the ability to build multi-level drill-down charts.

Today we are taking a look at the edit mode, thanks to an interactive demo. I think the best way to understand what this is about is to simply follow the link, read the instructions on the page, and start playing with the charts. Then you’re welcome to post feedback and questions here, and I’ll try my best to respond.

The previous demo used the Google GeoChart API. This time, the pie and column charts rely on the Dojo Toolkit. Dojo offers a wide range of charts, as well as multiple themes (I only picked a handful for the live demo). It also comes with plugins like animations and tooltips (also featured in the demo).

The Matrix View is homemade, and part of SPELL.

Here again, the data comes from grouped views (3 to choose from for the demo). This time I have only set up a two level drill-down, and clicking on a chart element will directly open the SharePoint list.

I made a recent addition to the demo that I find interesting, I call it “client side calculated column”. It allows you to enter directly in the form a formula, similar to what can be done with calculated columns in SharePoint lists, just much simpler (currently only simple operations). In the demo, the “Value” field plays the role of the calculated column (see the context help for an example).

I won’t describe this advanced customization in detail on my blog, but I’ll be happy to elaborate on specific points. If you think it could address your business needs, you’re welcome to subscribe to the SPELL interest list and you’ll receive in a couple weeks a sample to test on your own site. And if you are looking for a free, entry-level charting tool, remember to check out the SharePoint User Toolkit!

Teaser: real time Business Intelligence in SharePoint

StatesMap

I am making progress on my SPELL project. Its main component, the SPELL JavaScript library ($P), recently reached version 0.6 and has been implemented on a couple sites. I expect to reach version 0.7 by the end of the month and version 1 by the end of the year.

To showcase some of the capabilities of the SPELL library, I have set up a live demo featuring airline ontime statistics. In this demo, you can explore data across 3 dimensions: State (first level), Month and Carrier (second level). The third level are the list items themselves.

The first level is rendered via Google GeoCharts (for v1 SPELL will have other map options). The second level – matrix view – is a custom SPELL solution that mimics an Excel pivot table (much simpler though). You saw it in the slides if you read my previous post.

“Real time” refers to the fact that data is directly pulled from the SharePoint list. The charts always read the latest updates, as opposed to traditional BI patterns where data transfers are done at regular intervals. And there is no need for intermediate storage, as would be the case for Excel Services for example.

Note: for practical reasons the demo takes some shortcuts. For example the map doesn’t collect data directly from the list.

 I collected the airline data  (January to July 2012) from the Bureau of Transportation Statistics, I’ll add August as soon as it becomes available. Obviously interacting with more than 3 million items would not be reasonable, so I have done some pre-processing to aggregate the data by month and state. This brings the number of items down to ~500/month, for a total of 3,500 since the beginning of the year.

This is the downside of this solution: because it directly interacts with lists, it is subject to SharePoint’s usual limitations, for example the 5000 item threshold on views in SP 2010. Technically the tool could work with much bigger data sets, but this would require some adjustments and might not be desirable.

The solution showcased here has no ambition to compete with well established tools like PerformancePoint, SSRS or even Excel, but rather to offer a lightweight alternative. It presents a number of advantages that make it attractive :

  • Compatible with SharePoint 2007, 2010, Office 365 (evaluation of SP 2013 in progress)
  • Can easily be implemented by an experienced end user. No server side install, files are simply uploaded to a document library.
  • Direct, real time access to the SharePoint data (which means for example that it follows site, list and item level permissions).
  • Pure html (no Flash or Silverlight), accessible from both desktop and mobile devices.

This could for example be the ideal tool for a mid-size matrix organization, with multiple teams working on multiple programs. Managers could monitor the organization health, use the matrix view to analyze trends (what brings my organization up/down, a specific project or a specific team?), and finally access the items themselves.

Introducing SPELL, a framework to speed up SharePoint customizations

Spell (paranormal), the claimed art of altering things either by supernatural means or through knowledge of occult natural laws unknown to science.

(Source: Wikipedia)

For 8 years, I have been writing solutions for SharePoint from the user’s side – I mean with only the SharePoint UI or tools like SharePoint Designer (originally FrontPage) as entry points, without direct access to the server.

When I started, in 2004, these were mainly patches to enhance the SharePoint interface, like menus or tabs. Then in the following years, the evolution of JavaScript and AJAX, and key enhancements in SharePoint 2007, like workflows, allowed me to build more and more sophisticated solutions, evolving from enhanced Web pages to the status of small applications.

In 2008, I started publishing some solutions on my blog. Others did the same, and today SharePoint users can find online a large choice of tools that allow them to quickly enhance a basic SharePoint team site.

However, this organic growth comes at a price. When users start relying heavily on these solutions, their pages become cluttered. Sites become much slower because of redundancies. Maintenance quickly becomes an issue, especially when these users start adding libraries like jQuery. Sometimes, there will be conflicts between the tools, because they were not built with modularity and scalability in mind.

I have been witnessing these issues in the past couple years, and also facing them myself, as I was duplicating the same snippets over and over across different modules. To address this, some time ago I started grouping all my scattered solutions under a single umbrella, called SPELL.

What can SPELL do?

The goal is to offer a consistent, easy-to-maintain-and-upgrade package that covers all the customizations that can be done from the user’s side: client side scripting, CSS, XSL views, SharePoint Designer workflows, calculated columns, etc.

For now, SPELL is mainly a JavaScript library (abbreviated $P) that allows to:

  • enhance the look of SharePoint pages, with tabs, slideshows, menus, etc.
  • build dashboards, including color coded indicators and charts
  • enhance the out of the box forms (New, Display, Edit)
  • connect with plugins offered by JavaScript libraries (jQuery or other) for additional functionalities
  • etc.

The free SharePoint User Toolkit gives you an idea of the kind of questions SPELL can address, although on a completely different scale.

SPELL includes utilities such as for example:

  • functions to facilitate the use of Web services, REST services, RSS, owssvr, etc.
  • functions to interact with the content of SharePoint pages
  • data format manipulations (xml, JSON, datatables)
  • a templating engine

Who could be interested in SPELL?

SPELL is for anybody who need to customize SharePoint, beyond out of the box list views and page layouts. It works with SharePoint 2007, SharePoint 2010 or SharePoint Online (Office 365), An important difference with traditional libraries is that SPELL is meant to be end user friendly, in the same spirit as the SharePoint User Toolkit. The idea is to offer a Lego-like set, so that even users with limited technical knowledge can safely assemble solutions.

Despite an ambitious scope, SPELL doesn’t aim at replacing server side solutions on large scale deployments. Its purpose is rather to fill the gaps, at the team level, or serve as an intermediary step while waiting for final solutions that have longer development cycles.

Timeline and availability

I have been working on this project, on and off, since 2010. The main component of the framework, the JavaScript library, just reached version 0.3, and is the first version to be put in production. In the weeks and months to come, it’ll be deployed for my current users, going from DJ30 companies to small businesses (and even one man shops). I also plan to build a special edition with tabs, slideshow and charting connectors as part of a hosting service. Later on, SPELL will be the core of a SharePoint coaching program that will start this Fall. The objective is to reach version 1.0 by October.

An important step this year will be to assess SPELL against the new version of SharePoint, and confirm if the upgrade process is as easy as advertised…

For more details…

I am currently building an interest list for the SPELL coaching program. Feel free to send me an e-mail, and I’ll include you in a distribution list to receive progress updates and code samples. You’re also welcome to provide specific information about your environment and your needs, to discuss how SPELL could help on your projects.