Skip to content

Build a Data-Rich Dashboard App on JuliaHub

Michael Bologna

Software Developers, scientists, R&D teams, and professionals across disciplines, all need a quick and easy way to build visualizations and dashboards that present their research findings to business stakeholders. JuliaHub now offers a swift and effective solution through a hosted web server, providing a platform to host web applications tailored for this purpose.

Traditionally, building visualization and data-rich apps relied on two different individuals or two different teams. Today, with quick and easy templating engines in Julia, building a dashboard and hosting it on JuliaHub can all be done in under 10 minutes. Our newest feature is a web server that gives each individual on JuliaHub access to web hosting where a Dash.jl application can be easily loaded and made public. But first, what is Dash?

Dash is a beautiful visualization framework designed to help scientists and engineers translate analytic code into visually compelling and data-rich information for their company or user base. But how long does it take to take all of that code and turn it into an interactive dashboard? Conventionally, this process used to be very time-consuming to create, and difficult to maintain. 

However, in the last 10 years, low-code dashboards have become extremely popular. They are easier to write than ever, performing complex calculations at high speed with all the interactivity you would expect. Most importantly, once you’ve built your app with low code, you can keep your data up-to-date and present your findings to your key stakeholders in a modern and engaging format.

One major feature of Dash is its interactive graphing library using Plotly.js, which allows you to easily drop in complex data points and get different ways to visualize that data. Check how easy it is to get an interactive scatter plot written in Julia here. You don’t need to write any extra code to gain this functionality; it’s baked into Dash out of the box.

Dash has powerful features like templating, easy callbacks for interactivity, as well as instant macros for writing out major functionality in the graphical user interface (GUI). There is plenty of documentation to guide users in developing common functionality. Your engineering or scientific skills are better used when you can produce shareable, interactive dashboards and visualizations with only a few hundred lines of Julia code. With Dash.jl, the process becomes effortless. 

If you would try to develop this kind of functionality without Dash.jl, you’d need to write request handling, middleware, interactivity, and more, utilizing, for example, Flask and React. Building this amount of functionality amounts to hundreds or even thousands of lines of code. In addition, it would need a substantial investment of time in learning those concepts and relevant programming languages if you don’t already know them.

I helped create some Dash.jl app examples to demonstrate how easily you can create a data-rich app. See them here. These app examples are written for a variety of domains and use cases such as healthcare, machine learning, modeling & simulation, and statistics. The Optimizing MRI Scans app visualizes what MRI software could do to optimize the repetition times and flip angles to improve the accuracy of T1 and T2 estimates from bSSFP scans. 

Another favorite is the Consumer Clustering app, which allows users to choose an algorithm and number of clusters for customer data to be organized into. Results are displayed via comparing two attributes on a colored scatter plot and in tabular form to analyze significant differences between groupings in the data, perfect for market research! You can see the notebook that runs through the code generation here.

After we decided what options each GUI was to have, we utilized the back-end functionality to create callback functions to change the data and/or display of the GUI. A callback takes in one or more main inputs that are “tracked” and then an output is produced automatically, changing some part of the GUI.

Testing callback functionality is easy because Dash.jl can be run in a quick-revision mode where the web server stays online as your testing functionality. It only takes a few seconds to start up a web server after your packages have been loaded.

If you’re already familiar with web applications, you know that styling is another important part of the development process. In Dash, you can use one of 25 pre-built themes from Dash Bootstrap Components by adding external_stylesheets like the ones here. If you don’t like one of the pre-built themes, it’s easy enough to add a .css file instead that works as you’d expect. For our apps, we started with a Bootstrap theme and made modifications via a .css file.

As we wrap up the app-building journey, we invite you to test the capabilities of Julia Hub Dashboards. You can easily clone the code and run them locally, or deploy them on JuliaHub for free! JuliaHub’s Dashboard (using Dash.jl!) empowers you to create data-rich visualizations in less than 10 minutes at no cost when you get started. With JuliaHub, you get 20 free hours of time building the app in VSCode (compute usage-based pricing after that) and if you’d like to deploy it publicly, we have packages for hosting and deployment at just $20/month. 

Learn more about how this works by visiting the documentation.

Ready to learn more? A few things to check out:

- Watch our webinar on Dash.jl - Deploying Dash.jl on JuliaHub with Steve Kelly

- Learn about data visualization capabilities in JuliaHub  with our webinar - Building Data Visualization Apps with Deep Datta

- Get started with Dash.jl for free. Try the integration today.




 

Recent Posts

Learn More

Want to learn more about our capabilities? We are here to help.