2023-08-16 –, HS 120
Chalk'it is an open-source framework that transforms Python scripts into distributable web app dashboards. It utilizes drag-and-drop widgets to establish an interface linked to a dataflow connecting Python code and various data sources. Chalk'it supports multiple Python graphics libraries, including Plotly, Matplotlib and Folium for interactive mapping and visualization. The framework operates entirely in web browsers using Pyodide. In our presentation, we will showcase Chalk'it, emphasizing its primary features, software architecture, and key applications, with a special focus on geospatial data visualization.
Chalk'it is a new open-source framework designed for effortlessly converting Python scripts into shareable standalone web application dashboards. Powered by Pyodide, Chalk'it allows for installing and running Python packages directly in the browser. It supports various graphical libraries like Matplotlib, Plotly, and JavaScript libraries such as ECharts, Vega, Plotly.js, and Leaflet. Dashboard design is streamlined through intuitive widget drag-and-drop functionality, while data and widget interactions are established via bidirectional bindings called connections. Scripts execution and orchestration are organized as a directed acyclic graph, and besides Python, Chalk'it can also use JavaScript libraries.
Chalk'it's web-application development revolves around the following concepts:
- Workspace: Comparable to Matlab or IPython workspaces, it contains JSON or Python objects with specific states, accessible to other tool entities.
- DataNode: Similar to a Jupyter Notebook cell, it functions as a JSON result producer or a Python object output. DataNodes are typically evaluated based on user interactions or at predetermined intervals.
- “DataNodes” keyword: Facilitates dataflow creation between dataNodes (nodes) and accesses data from other nodes, establishing execution dependencies on preceding nodes.
- Execution graph: Represents the sum of dependency relationships implicitly defined by using the “dataNodes” keyword, organizing application logic. User actions on widgets trigger the relevant dataflow execution.
- Widget: A graphic object defined by an HTML page layout rectangle, interacting with the workspace through connection points called actuators. Actions include clicking buttons, entering text/numeric values, scrolling cursors, and selecting items from drop-down lists.
- Connection: Defines the link between a widget (via its actuator) and a dataNode.
- Document: A JSON document that describes the entire working model, including the Chalk'it dashboard. The document has an “xprjson” extension.
- Page: The result of the xprjson document, an HTML page containing the dashboard, acting as the web application. It can be hosted on a static page server and shared via its URL.
While popular Python dashboard-building packages like Streamlit and Plotly Dash exist, Chalk'it differentiates itself with four main features: drag-and-drop dashboard editing, document-based dashboard serialization, dataflow application description, and full in-browser execution.
Chalk'it originates from an IFPEN tool called xDash, utilized internally for creating hundreds dashboards for various topics, such as CO2 reduction at city level, real-driving emissions characterization, image-based rock geological feature prediction, or catalyst performance estimation.
During our presentation, we will introduce the Chalk'it tool and demonstrate its primary features. We will then explore its software architecture and present two application examples: geospatial data analysis and car total cost of ownership estimation. We will conclude with a discussion of the roadmap.
Please visit our Github repository: https://github.com/ifpen/chalk-it
Please also visit the templates galleries, that can be explored online using the hosted version of Chalk’it : https://ifpen.github.io/chalk-it/
Data Analysis and Data Engineering
Expected audience expertise: Domain:some
Project Homepage / Git: Abstract as a tweet:Introducing Chalk'it: an open-source framework turning Python scripts into web app dashboards with drag-and-drop widgets. Enjoy multiple graphics libraries & interactive mapping, all in-browser via Pyodide! Stay tuned for our demos
Expected audience expertise: Python:some