Dashboard wireframes for core functionality #1
Replies: 5 comments 4 replies
|
Your UI looks very neat and well thought out. I assume we'll come back to this page a couple of times to review different aspects of the design. Could you make it more easily browseable by adding markdown sections, e.g., I also have a question regarding widgets: Is it possible to save a set of widgets with all its configuration choices and load it in the dashboard? I'd expect users to not only look at a single simulation but perhaps 10 of the same system where they might want to monitor the same 6 different observables, some of which may have been customized to the system. More long term, we might want to think about ensemble monitoring — what do my 20 or 50 simulations do at the moment? |
|
This indeed looks great! I love the adaptability and the integration of features like code auto-complete etc. This is very neat! Regarding Oliver's comment, I agree that it would be neat to load a set of widgets, e.g., from a configuration file saved locally. Then, if one has a couple of things one wants to do routinely, one can load the entire setup with a few clicks. Analyzing ensembles is also a cool idea. Maybe not for starters, but definitely something to keep in mind when designing the backend. |
Updated
Yes. The proposal mentioned this in the context of persisting the state and import / export of the dashboard for these exact use cases. The entire dashboard state, including the layout of the widgets, their inputs etc can be restored and re-used. Though the proposal described using
This is a good use case to know. Theoretically this should be feasible through the support for multiple universes and is something we can ensure the backend design considers from the beginning. It might be a bit too much to expose in the UI at the beginning, but it is something we can certainly extend in the future. Thanks |
|
@PardhavMaradani I really like the UI and overall design along with the various features and would second Oliver and Matthias' thoughts. I just had a few additional comments/suggestions/questions:
|
|
I had a separate question/suggestion I just noticed -
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi @orbeckst, @jeremyleung521, @amruthesht, @HeydenLabASU,
I intend to use Vue.js, which is a progressive JavaScript framework to build the user interface for this project.
Vueprovides a lot of tools to build a reactive dashboard. It is simple to start with and can extend very well to something more complex in the future too. It has extensive documentation and community support. For the UI components, I intend to use Vuetify, which provides a rich set of ready-to-use components forVueand is based on Google's Material Design. I found this a lot more easier to setup (compared to other equivalent options) and quite flexible too. Some of the other tools relevant for this project in this ecosystem are Vite, which provides the frontend build system and Vitest, which is based onViteand provides the testing framework for all our frontend code. All the above tools are open source, have great documentation and community support.I built some initial wireframes using the above for the core functionality of this project. Below are some screenshots of these followed by some thoughts behind the design:
Dashboard
Below is the main dashboard layout:
App Bar
There is an app bar at the top that is common for all pages and includes controls to pause / resume and connect / disconnect (from) the live simulation. It also displays alert details if any. Having this common makes it very easy to control the current state from any page:
Sticky Bar
There is a sticky bar right below the app bar that shows details like frame number and time info (if time packets are sent from simulation). The % completion of the simulation is also shown if the total simulation steps are configured (see settings later). The reason it is called 'sticky' is because it will remain at the top even when the pages are scrolled. This is also common to all pages like the app bar.
The color of the sticky bar also indicates the running state - running (green), paused (amber), disconnected (red), etc like shown below:
Alerts
Most recent alerts can be viewed by clicking on the
Alertsicon. They can also be marked as read by clicking on the green check mark icon (which removes it from this list and reduces the count shown):For the core functionality, we just need an additional
Settingspage that can be accessed from this app bar:Energies
The dashboard shows the Energies live (if energy packets are being sent from the simulation) - see first image. This can also be hidden from the settings if needed.
Widgets
Widgets can be added using the
Add Widgetbutton. Clicking on this button shows the list of all available widgets along with an option to search and add the required widget (The widgets for the plots of energies only show up when energy details are available) as shown below:Add Widget
Selecting a widget item from the list above navigates to an
Add Widgetpage where the widget name and inputs for this can be customized as shown below:The live output of the widget (the output of any of the packaged analyses - text, graphs, etc) will show up live (i.e., updating) in the
Outputsection here. All input changes are reflected real-time and automatically saved. This is also the same view when the widget is edited later (to change inputs / name). There is an option to delete this widget at the bottom of this page as well.Widgets rearrangement
Widgets on the main dashboard can be re-arranged in any combination by users (resize, drag and move, etc). Each widget also has options to edit (which shows the view mentioned above), duplicate (to make it easier to add same analysis with different inputs) and delete as shown below:
Widgets filtering
Widgets can also be filtered (by selection or text input) by their name to make it easy to focus on anything particular as shown below:
Settings
The
Settingspage has three main sections that allow universe configuration, dashboard configuration and details about universe setup as shown below:Universe Configuration
The
Universe Configurationsection has all the config options relevant forimdclient, the step size (to iterate) and the total simulation steps (to show % completion) as shown below:Dashboard Configuration
The
Dashboard Configurationsection has config related tomdadash. For now, this has an option to show / hide energies (when available) and the sliding window / batch size for analyses that use that mode as shown below:Universe Setup
The
Universe Setupsection allows users to customize the universe during creation, like adding transformations etc. Theimdclientsession info details are also shown above it so users know what is available as shown below:The code in these cells fully support code complete and inspect (because these run in the
AsyncKernelManagerofjupyter_client) as shown below:All the wireframes above put together should cover the core functionality and these can also be very easily extended.
Demo Video
Here is a short video showing these in action:
2026-05-14.21-08-38.mp4
Responsive Design
The UI is responsive as can be seen here in a mobile view:
Please let me know if you have any thoughts, comments, feedback or suggestions and I can modify these accordingly. Thanks
All reactions