Dashboard Project Beginnings

It was a productive day today at CDOT.  Yesterday several of us were challenged by David Humphrey to hack together a Status Dashboard that CDOT might use to display information about it's projects and people.  Here's something to illustrate the idea.

We had a brainstorming session this morning to write down as much as we could about the project.  This included writing down possible features, layout designs, database considerations and initial goals for the next day(s). See our project wiki for more information and updates. 

Those directly involved in the project are: Scott, Jon, David P, Dave, Mohammed and Daniel, with help from various others.  After our brainstorming session we decided to split up for several hours to go hack together the beginnings of each of our focuses.  Scott began looking into how we could design the layout engine. David P began investigating Twitter integration. Dave took an in depth look at integration with lighthouse while Jon and Mohammad tackled creating a GitHub repository for the dashboard as well as integration with GitHub for the dashboard. They also investigated options for setting up the server. Daniel is responsible for project management and will also be responsible for informing the faculty of progress. 

I decided to work on Widgets.  In the context of our project, a widget can be described as a control that displays information on the Dashboard.  Initially I put together a simple JavaScript object that creates a div containing text data that can be set to whatever is needed. I decided to make it display the current time. No biggie.  It was then I realized that all widgets will have very similar behaviours.

  • they all need to be contained in a div
  • they all contain some kind of data that will be displayed within  the div
  • they all need to have some kind of update logic
  • they all need to have their update logic on timers so that up to date information is always displayed
I realized that what I had coded contained some of these requirements and that all I had to do was modify it so that all that might be needed to create a widget is to plugin update logic and tell it how often it needs to refresh.  I started working on this and made a little progress. I don't have the code live anywhere at the moment but it will be on my fork of the Dashboard Repository very soon

Have any Comments or Suggestions? Feel free to leave a comment on this post or tell someone on on our IRC Channel on Freenode.

Tomorrow I plan to get this widget skeleton working and throw together a couple demos... so stay tuned!