DKAN Dash: A new tool for interactive data visualizations
By Paul Walker on May 22, 2017
DKAN Dash is a cool new tool that works with DKAN to create multi-faceted data visualizations based on DKAN datasets. Some of the features include:
- Charting and Graphing with D3 (via NVD3)
- Choropleth Maps
- User filters to interact with data
- Custom layouts with Bootstrap responsive grid
- Metric and Goal components for visually compelling presentations of simple statistics
- Lots more!
As an example of what you might get from wiring it all up, here is a screenshot from a recent project for the Georgia Board for Physician Workforce:
Changing the filter values at the top will reload the data – and, in some cases, change the layout – of the visualizations below them.
Who DKAN Dash Is For
We built DKAN Dash as a way to do complex custom data visualization dashboards in a repeatable way using DKAN’s Datastore API as a data backend. DKAN Dash and its supporting ecosystem are really a development framework that allows for highly customizable data visualizations while minimizing boilerplate code and unnecessary repetition.
How It Works
Under the hood DKAN Dash consists of a number of major components:
The definitive feature of React Dash is its configuration-based architecture. An entire dashboard can be created using a declarative configuration object (essentially a large JSON file with a well-documented schema).
The modules also provides a browser-based JSON editor to make modifying dashboard configurations easier:
Custom Implementation Module
Where it’s Going
The future of DKAN Dash and its underlying libraries is bright. As we continue to roll out dashboard implementations the list of features grows, and the stability and performance of the platform continues to improve. While development at this point is being driven by immediate project requirements, there are some big things brewing:
Dashboard Creation - UX
Under development we have:
- Accordion-style expanding and collapsing of layout regions
- Real-time updates with websockets