This is the GWAC Dashboard. I know, it's not much to look at at first glance. But, trust me, there's a LOT going on that isn't immediately obvious. And the visualizations were entirely chosen by the customer, so I didn't get a lot of choice there. Still, I think it's pretty clean, and the results are easy to read. You can check it out for yourself here.
Some of those features that aren't immediately obvious include:
- If you look on the far left, you can see that you can dynamically change the chart type. Yes, this was done by having three different sets of charts that all point to the same data. Nothing fancy there.
- Next to it, you can see that you can choose to hide or show the values. That trick will be one of the upcoming blog posts.
- Above that you can see that the user can select one or more Contract Families. As most experienced Xcelsius developers know, the dashboard will fight you when you try to apply multi-select. For instance, did you know that there is no way to reset the value of a check box? Yeah, that was a challenge.
- If you select only one Contract Family, the charts get kind of boring. We compensated by allowing the user to change the chart to do a breakdown by whether or not the contract was negotiated with GSA assistance. How does one chart work at two different levels of granularity? Patience, young one, and you will see.
- On the right side, you can see that you can filter by Fiscal Year. (As a note to those who may not be aware, the US Government runs on a fiscal year that begins with October 1 instead of January 1.) Pretty simple, right? Except that if you narrow it down to a single Fiscal Year, the charts all change to show data by month. WHAT?!?! Yup, I'll show you how to do that, too.
- You see the little printer icon next to the Fiscal Years? Yeah, that lets you print out a WebI report that mimics the current view, including the filters you have selected. There's not a lot of advanced work under that, but I'll do a couple of posts on how we managed it.
- If you click on one of the Agencies or Industry Partners in the lists below, it will take you to the appropriate tab and filter by your selection. All other filters remain in place.
- If you click on the tab at the top of the screen to change to one of the other views, though, it resets all the filters. How do we keep those actions separate? I'm very glad you asked.
- Each of the tabs has its own set of connections, since the data is filtered very differently. As part of our attempt to improve performance, we only wanted the connections for the currently active tab to kick off when the filters changed. But we also needed the connections to fire when the tab was changed. Getting that kind of fine control over the timing of the connections was definitely a challenge. I'm pretty proud of my solution, as it exploits a non-obvious (and usually frustrating) property of Xcelsius.
- There are some other bits behind the scenes that I'll be talking about later, as well. Crosstabs are a pain to work with. I came up with a pretty good system for making the "data loading" messages work well. Making the current date show up in the upper right was a surprisingly difficult challenge, especially as the issues frequently don't pop up in testing.
- But wait, there's more! If you look, you will see that there is a WHOLE OTHER DASHBOARD on the "Data Feed" tab. What does this one do? Allow you to select what fields you like, apply a couple filters, and export a custom extract of the data to a CSV file. It's kind of spiffy.
If you want to see some of the version history (this is our fifth major release of this bad boy), you can actually see some in action. The OASIS Dashboard was created from a clone of the fourth version, modified for that program office. The Connections II Dashboard was similarly cloned, but from the third version. Much of the functionality is the same, though there was a MAJOR overhaul of the data model between versions 3 and 4 (which will also be its own post).
We are going to do another round of enhancements in the coming year as well. Custom hover text labels (did you know you can put anything in the hover? I'll be doing a series of posts on that). A button to share a link to the dashboard in an email (yeah, it's just a mailto, but I figure someone could benefit from a tutorial). Some tweaks to improve performance. And, most shocking of all, a way to have the Data Feed export to Excel instead of CSV by using a crazy advanced Crystal Reports (fingers crossed that it will work!).