Monday, October 7, 2013

Sitecore Reports as a Service

The project I'm blogging about today was started more than 6 months ago as a self-education sandbox for learning ASP.net MVC and a few other modern frameworks and tools.
It's not that large actually, but since I was rather busy and able to spend about one hour per week on it - it took so long to be released.

The idea is pretty simple: I want my Sitecore website reports to be available on the web to my iPad, iPhone or Android, in both visual and table format. Also, I don't want to install anything on my website and maintain it later. Ideally, I want to enter my credentials somewhere, and see the reports for all my websites immediately.

Let's review these crazy requirements one by one and create implementation plan:

1. I want my Sitecore website reports to be available on the web to my iPad, iPhone or Android, in both visual and table format
This one is easy - the reports can be written in using Twitter Bootstrap, with amazing DataTables framework for nice table formatting and easy paging. Also, even though the charts are nice, I prefer table-first approach when analyzing the data.

2. I don't want to install anything on my website and then maintain it later 
It may seem weird, but I'm sure that this is the future. When you know the benefits of continuous delivery - installing packages manually is not acceptable. I want to be able to get new features and bug fixes every hour, period. Continuous Delivery is something I achieved by using GIT + TeamCity + AppHarbor.

3. I want to enter my credentials somewhere, and see the reports for all my websites immediately 
I'm not sure whether this can be useful for marketers, but as a developer, I might have access to the different Sitecore instances, and therefore I want to be able to see how all my websites perform.

This is basically how I've created Sitecore Dashboard.












This website asks for credentials to your Sitecore website(s) (user with minimal permissions - "sitecore\Analytics Reporting" role can be used)














And you see the list of your websites


After clicking "View", you can browse different types of reports. Each report has a small overview chart on it:

















and the main table with data (supports search, paging and sorting on all types of devices!)































Such kinds of filters let you evaluate any aspect of the data really quickly. Here's the example from the demo fruit-seller's website (available to all accounts):



















After searching for the word "black" in Search Keywords report, I can sort the data by value per visit column and see that while black currants brings more visitors to the site, black raddish is the most valuable keyword.

Actually, it's still a proof-of-concept project now. I've got so many ideas for advanced data mining but I decided start with sharing it with community and gathering real feedback rather than develop potentially useless features for 6 more months.

Few other things to note:

  1. All versions of DMS are supported (in theory). Tested it with some 6.5, 6.6 and 7.0 revisions
  2. If you don't see the data in your reports - you've probably set wrong credentials or website URL (or your version of DMS is not supported, it is possible)
  3. At the moment, the reports shows data from the past 30 days, this is hard-coded
  4. Never use privileged or domain user accounts for accessing your reports data. Remember, this is just POC and your credentials are not stored enough securely

Did you like the idea? Share your feedback! Post new ideas and cast your votes at UserVoice - http://sitecoredashboard.uservoice.com/

P.S. And don't forget to try it on your mobile phone - responsive design rocks!