Python HTML Shell Mako JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

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 SQLite database, and useing the following libraries:

  • SQLAlchemy: ORM
  • pypugjs: support for jade-based views (instead of HTML)
  • nv3d: a reusable approach to charts, based on the d3 library


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>

Inserting data

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 and 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)

Known issues

Because the 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 source.