/dashing-capybara

(abandoned project)

Primary LanguageJavaScriptMIT LicenseMIT

Dashing Capybara Build Status

Dashing Capybara is a library to make it easy to push JSON data to custom views, such as a dashboards or widgets in a browser. It consists of a REST API to push data and a Publish/Subscribe API to allow clients to receive updates of that data instantly.

Following the UNIX tradition and node.js way of "doing one thing and doing it right" it deliberately does not fetch, aggregate or analyze data. All of these things should be done elsewhere.

Getting started

Run the server, then follow the instructions on the example page.

git clone git://github.com/c089/dashing-capybara.git && cd dashing-capybara
npm install && npm start

Architecture

Dashing Capybara is implemented as a full-stack JavaScript application based on Node.js, Express and Faye. It exposes two APIs:

  • A REST API to get data into the system, see test/features/api.feature.
  • A publish/subscribe API to allows clients to subscribe to any changes made to the data. See test/features/pubsub.feature.

Status

Alpha: The implementation is incomplete and the APIs will change.

Roadmap

  • validate incoming data (well formatted, maximum size)
  • persistent storage engine based on redis
  • retention rules (clean old values based on timestamp or maximum entries)
  • fancy example application
  • authentication/authorization

Cleanups

  • upgrade grunt to 0.4.x
  • consistency: 2 spaces indentation
  • consistency: use camel case instead of underscores for method names

Inspiration / Competition / Alternatives

  • Ducksboard and Geckoboard are proprietary turnkey solutions allowing you to sign up and click together widgets and easily build dashboards without any tech knowledge. While I would love to see a project like this built on dashing-capybara, it is currently out of the scope of this project - you have to supply the data yourself using the API.
  • Dashing is a full framework to build dashboards and comes with beautiful widgets. However, it does too many things tightly coupled for my taste.
  • Graphene "is a realtime dashboard & graphing toolkit based on D3 and Backbone". It is tightly coupled to Graphite (dashing-capybara tries to decouple from both data providing backends as well as front-end libraries) and it's "realtime" is achieved by interval polling (where as dashing-capybara uses push technologies).
  • JSlate claims to offer "dashboarding with no restrictions" but is built on technologies I personally dislike enough to not care.