Quick Start
Build an LMS analytics dashboard in 5 minutes. You will create a layout with stat cards and a chart, register components, wire up the engine, and render the dashboard.
The Scenario
We are building a Learning Management System dashboard that shows:
- Stat cards -- Total Students, Active Courses, Completion Rate
- A bar chart -- Enrollments per course level
Define Component Properties
Each component stores its configuration in a PropertyCollection created by a factory function.
stat_card_properties.dartCreate Component Descriptors
Use ComponentDescriptor to define components declaratively — no subclassing needed.
stat_card_descriptor.dartCreate a Registry
Group components into a DashboardDescriptor and create a scoped registry.
Create a Dashboard Layout
Build the layout with rows and columns. Each row uses 6 flex units total.
dashboard_layout.dartStart the Controller
Create a DashboardEditorController with the layout and registry.
Mutate with Commands
All changes go through the controller's command-backed API.
Render the Dashboard
Use DashboardDesignerTab for the full editing experience, or DashboardView for read-only runtime rendering.
What You Built
In these 7 steps, you have:
- Defined component properties with
PropertyCollectionBuilder - Created a
ComponentDescriptorwith rendering and configuration - Created a scoped
DashboardEditorRegistryfromDashboardDescriptor - Assembled a
DashboardLayoutwith rows, columns, and components - Started the
DashboardEditorControllerwith built-in extensions - Mutated the layout through commands with undo/redo
- Rendered the dashboard with
DashboardDesignerTaborDashboardView
Next Steps
- Design Philosophy -- Understand the core principles
- Architecture -- Deep dive into the engine
- Building Dashboards -- Step-by-step LMS dashboard guide
- Custom Components -- Build stat cards, KPIs, and charts