What's a nugget?
While a lot of dashboards are complex and meant for reacting and driving decision making, nuggets are more about creating general awareness. And looking awesome.
Here's an example - Hudl's concurrent user count:
The number moves up and down in real time.
You can put one up on a spare monitor or a TV, but for maximum #mindblown, you should project it onto a surface:
How do I make one?
- Fork this repository
- Create a datasource and a display
- (optional) Get a projector
Still interested? Continue on for more detail.
This project has been the subject of a presentation. See the slides.
The system is just a simple client-server architecture, with a node.js/socket.io server retrieving and curating data, and a browser/socket.io client subscribing to data events fired by the server.
- Datasource - A node.js module on the server that grabs data from one or more external sources, builds them into a stat, and emits that stat.
- Display - A require.js module in a browser client that consumes stats and renders them.
Datasource modules go in
See a simple, documented Current System Time datasource example.
For each display you should define exactly one file with the same name. For a display called
current-time, you'll create:
Each of the links above is to an example that works with the
system-time datasource (above).
Making It Go
Note: This assumes you're running the server on linux. For Windows, some additional work may be required.
Switch to the
server/directory and install dependencies with
npm install npm install forever -g
Start the server
node server.js. You can list running processes with
forever listand stop the server with
forever stop server.js. See the
foreverdocumentation for more details.
Open up a browser and visit:
http://localhost:42420to load a display
http://localhost:42420/dashboardto load the nugget control panel
Projectors and Raspberry Pi
More coming soon.
These are the parts I used that've worked pretty well for me. I'd recommend price shopping a bit for them.