Developing custom, reactive dashboards that deliver continuously updated visualizations,
has been a traditionally laborious task, due to the advanced technical expertise they require in
web development. MVVM frameworks have attempted to simplify this process, by offering a
template language that enables the declarative specification of dashboards, and by automatically
maintaining the displayed visualizations when the visualized data change. These frameworks,
however, still exhibit significant drawbacks. When mutations occur in underlying data sources,
developers have to observe and manually propagate (using imperative code) said mutations to
the framework, which still requires advanced skill-set and experience in web development. Additionally,
even though these frameworks automatically mutate the dependent visualizations (thus
absolving developers from manually performing this task), once mutations have been propagated
to the framework, their incremental rendering algorithms incur significant performance penalties,
especially when visualizing big data.
To address these issues, we present FORWARD, a framework that simplifies the development
of custom live dashboards. FORWARD offers a declarative template language
that simplifies the integration of (a) database and web service systems (such as Postgres and
GraphQL), (b) visualization libraries (such as Google Maps and HighCharts), and (c) data
processing functions (performing aggregations, ML computations, and more), thus enabling a
truly declarative specification of dashboards. This significantly lowers the technical expertise
needed for dashboard development, thus allowing programmers with limited experience in web
development (such as data analysts), to produce custom, information-dense, highly-reactive
dashboards. FORWARD templates describe dashboards as semi-structured views. As a result,
when mutations occur in the base-data of such views, FORWARD employs novel incremental
view maintenance techniques, that automatically propagate changes from data sources all the
way to the visual layer more efficiently than existing frameworks.
In this Thesis, we illustrate FORWARD’s template language and incremental rendering
algorithms, and show their superior algorithmic complexity compared to the state of the art.
Experimental results validate the complexity results and show that FORWARD’s incremental
rendering can be orders of magnitude more efficient than existing approaches. Line-of-code and
development time experiments show that the performance gains are accompanied by productivity
gains for developers that use FORWARD to build information-dense dashboards. Lastly, we
present ViDeTTe, a system that integrates FORWARD with Jupyter notebooks, and enables data
analysts to build Jupyter Notebooks with reactive visualizations. Notebook readers can then
directly interact with these visualizations to further explore the underlying data, a functionality
that is currently not supported in Jupyter Notebooks.