-
-
Notifications
You must be signed in to change notification settings - Fork 19
Lumen Builder GUI
The Lumen Builder is an essential piece to market Lumen as a general dashboard builder tool to non-expert users.
- End-to-end workflow for declaring/importing data sources, declaring filters, transforms, and finally views, then lay them out on the page
- Specify reusable components to declare sources and have the ability to persist these
- Import existing components and entire dashboard specifications to modify/adapt them
- All components should be pluggable
The landing screen is designed to have a few purposes:
- a. Launch into the wizard with a completely empty dashboard specification
- b. Upload an existing dashboard specification
- c. Select an existing dashboard specification
Questions:
- How should the persistence work? Do we persist components to yaml snippets on disk or a sqlite database?
- How should support for "templated components" work? Components with hard-coded configuration may not be reusable so how do we set up components with parameters that can be filled in?
- What does a gallery entry for a dashboard look like?
The config screen sets up various high-level configuration options for the dashboard, e.g. the title, theme, (panel) template, overall layout etc. This is a pretty straightforward form and there's very little complexity here.
The Sources screen allows adding, viewing and editing sources which have been added. This will be a "gallery view" with individual "cards" which summarize each source. Each card has edit and preview buttons and a toggle to add and remove them from the dashboard.
Questions:
- How should the cards summarize the contents of the source? Should they list the tables? Should users be able to upload thumbnails or should it default to a thumbnail for the "type" of source? Should they list the tables and fields and dtypes?
- Do we require users to express faceting/filtering at this level?
- How do custom user sources provide a nice UI experience? Can we auto-generate a nice UI?
The Views screen allows adding, viewing and editing "View" components. This will also take the form of a "gallery view" with individual "cards" to summarize each view. Each card has edit and preview buttons and a toggle to add and remove the view from the dashboard.
Questions:
- How should the cards summarize the contents of the source? Should users be able to upload thumbnails or should it default to a thumbnail for the "type" of view?
- For a source+view which is to be faceted how do we express this? Do we require declaring the faceting at the view level? Without expressing this we cannot preview!
- How do custom user views provide a nice UI experience? Can we auto-generate a nice UI?
Once users have declared sources and views derived from those sources they need to group those views into what is currently referred to as "targets" or "layout templates". There are multiple steps towards declaring a target:
- Select the source
- Select filters/facets to add to this source
- Select the views to group together
- Declare the layout of the views
The main issue to settle here is once again related to how filtering/faceting is declared, since only views which share the same source and filtering/faceting can be grouped together.
Once the full specification is complete we can do one of the following:
- Download the yaml
- Preview the dashboard
- Select a deployment plugin which can take the dashboard.yml and deploy it.
Questions:
- Do we have to keep track of dependencies and do we want to auto-generate an anaconda-project.yml?
- What is the interface for the deployment plugin?