Walkthrough
Main Features
SDMX integration
Version 2.1 supported
Reading of settings file (.yaml
) for data and metadata retrieval
Interactive graphs
Plotly for interactive visualization
Multiple charts supported: KPIs, line, pie and bar charts
Open source code
Apache 2.0 licence
Open-source libraries
Flexible design
Position and size automatically adjusted
Bootstrap components to modify themes, icons and incorporate HTML5 elements
Optimized performance
Data and metadata asynchronous retrieval
Caching methods for better user navigation
Dynamic data filtering and download
Data accessible with table format supported by dynamic filters and download export (CSV)
Multilingual support
Multi-lingual metadata to access titles, labels and info buttons in the desired language, when supported by SDMX
Automatic titles and subtitles in multiple languages, when specified by the user
Searchable documentation
Sphinx documentation automatically updated to support the exploration of the material
Documentation deployment via GitHub Actions
Settings validation
Text messages are displayed when exceptions are encountered, to guide with the right configuration of the settings
Software engineering components (i.e. unit tests using pytest, coverage reporting, continuous integration using tox, automated license monitoring, code linting using pylint and flake8)
Security components
Security testing using bandit
Software composition analysis using GitHub Dependabot
Secret scanning using Github Advanced Security
Collaboration
User-independent access within the same company and across countries
Worldwide contribution (feedback and pull requests via Github) are welcome
Future enhancements
Settings in a new tab or dropdown menu
Interactivity (search, simulation)
Add support for other chart types (mix, map, dual-axis, flows, network, outlier)
High-Level Architecture
The Dash application
Source code contained in the file app.py
Can run both on locally or shared across the domain
Follows the guidelines provided in the SDMX Hackathon Global Conference 2023 Terms of Reference (e.g. a maximum of three charts per row is allowed)
SDMX
Leveraging two classes, SDMXData
and SDMXMetadata
, built on top of SDMXThon
When supported, metadata retrieval through DSD url (datastructure
) to increase the speed performance
Default retrieval through a metadata url (dataflow
)
The specification file
The SDMX Dashboard Generator requires a .yaml
file with the settings for the dashboard. Please check this example
The ChartGenerator
The ChartGenerator is a class contained in the file src/draw.py
, allowing the user to select the chartType
from the .yaml
file:
chartType:VALUE
returns a Key Performance Indicator (KPI), a value corresponding to an observation value at a given point in time displayed in the visual placeholderchartType:PIE
returns a pie chart composed by the values returned by the query(ies) specified in DATA which sum represents the full circle (360°). Each value defines a sector of x°, proportional to the fraction of the total it representschartType:LINES
returns a lines chart including one or multiple series, either time series or cross-sectionalchartType:BARS
returns a vertical bars chart including one or multiple series (clustered bars), either time series or cross-sectional
Each function, with the exception of the one returning the KPI, makes use of decorator
elements for enriching the chart with style elements.