Project

dboard

0.0
Repository is archived
No commit activity in last 3 years
A long-lived project that still receives updates
Dashboard framework
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

A dashboard framework.

It handles collecting data from user defined sources (simple ruby classes) and provides a simple API to poll for updates. See the example app for information on how to use it.

It's stable and has been in use for quite a while.

Dboard is two parts:

  • The collection process you run on your server. It polls sources for data and sends it to your dashboard web server.
  • The API which combined with for example sinatra (and memcached) becomes a dashboard web server.

Things dboard do for you:

  • Calls your classes for data as often as you have specified.
  • Sends the data to the dashboard web app.
  • Receives and stores the data in the dashboard web app.
  • Provides an API to get data to display on the dashboard.
  • Keeps the latest data in memcache so that all data is available when you visit the databoard, even data from slow or rarely updated sources (like external APIs).
  • Provides a javascript client that knows how to talk to the API (for now it's only included in the example app)
  • Only calls your javascript widgets when there is new data.

Data flow:

+-----------------+              +--------------------+
|                 |              |                    |
|   Collector     | Pushes data  |   Dashboard web    |
|                 +--------------+   server           +----+
|                 |              |                    |    |
+-----------------+              +--------------------+    | Polls for updates
   |           |                                           |
   |           |                                           |
+--+--+     +--+--+                         +--------------+-------------+
|     |     |     |                         |                            |
|     |     |     |                         |  Dashboard page            |
+-----+     +-----+                         |                            |
Source A    Source B                        |                            |
                                            |  See the example app.      |
                                            |                            |
                                            |                            |
                                            |                            |
                                            |                            |
                                            |                            |
                                            |                            |
                                            |                            |
                                            |                            |
                                            |                            |
                                            +----------------------------+

The ASCII drawing above was created using http://www.asciiflow.com/.

Todo:

  • Include the client side dashboard script (see the example app for now).
  • Provide additional tools for creating dashboards (layout css, graphical widgets, etc). Probably as another gem.
  • Tools for deployment (if it can be made generic enough), otherwise a general guide.
  • Make the example app a bit more realistic. Dev-mode tools (foreman, guard, auto-reload-sources), use the collector, layout, more sources, etc.
  • If someone wants to add it: support for pushing data to the client using web sockets.