Sunday, March 9, 2008Blue SkyBrian Deterling

Power Dashboard

I've always believed that dashboards require code, i.e. anything you can do using drag-n-drop will either not be very useful or will take a large number of complex operations to do something that would be trivial using raw SQL or an actual program. Well finally I've got a hybrid solution that I think could help bridge the gap between drag-n-drop and coding. I've just completed my first test of a new scripting interface for our dashboard application so that a new widget/chart/report can be created by an end-user using a simple wizard. I'm hoping this feature will allow moderately technical power users to create reports that harness the power of programming without the extra baggage you normally encounter when writing new code or using an API.

Right now it handles SQL, HQL (hibernate query language), JavaScript, Groovy, and Ruby. For many types of reports, users can use SQL because it is familiar to them. However, our application integrates with Hibernate so if a user creates or already has a Hibernate mapping to their database, they can move up the chain to HQL. The advantage is that they no longer have to perform all the joins manually and the application allows them to configure the display based on the meta data that comes with the Hibernate mappings.

But there will come a time when a single query will not be powerful enough. For example, what if you want to display a list of appointments between a supplier and their customer but you also want to show a map of the supplier's location. That's not too easy to do in SQL or a drag-n-drop user interface. But with just a few extra lines of code, it can now be added to one of our gauges, all via the standard user interface.

I think this feature will be perfect for IT departments. They get all the power of a dashboard framework such as alerts, configurable tables, many kinds of charts, but do not have to change the environment to add new functionality.

I'll blog more about this feature including some examples in the future.