Grafista - quick charts
Prototype for a charting/dashboatrd application, using a set of minimal components.
Grafista collects, stores and displays time series. The series definition is stored in a database table, as well as series values, which we call Samples. The Samples of a Series are summarized and displayed in a Dashboard web view, and can be further analyzed in dedicated views.
Grafista is a simple
Flask application, storing its data in a
database, and useing the following libraries:
pypugjs: support for jade-based views (instead of HTML)
nv3d: a reusable approach to charts, based on the
mkvirtualenv grafista # Optional, if you use virtualenvwrapper pip install -r requirements.txt cd grafista ./gulp # Install npm deps and copy frontend assets from tabler-ui flask db migrate # Initialize database flask run # Run Grafista
Creating a Serie
Use the following command to create a Serie.
flask series create <serie name> <description> <unit>
We support two methods to insert data in Grafista.
flask series insert_samples </path/to/stats.csv> # Load data from a CSV file flask series insert_samples <serie name> <value> # Insert a specific value into a Serie
In order to customize Grafista, create a file called
override the desired config values available in
In order to further explore the scope of the application, we want to add a some functionality to Grafista.
- define and implement queries
- support multiple data collection systems (url query, but also functions)
name attribute of a Series record has to be unique, we have to be
sure that even in different data sources, records don't have conflicting names.
This could be solved by introducing a
source attribute in the Series model,
and then enforcing name uniqueness for records featuring the same