Phase 08: Admin Dashboard - Implementation decisions documented - Phase boundary established
2.2 KiB
2.2 KiB
Phase 8: Admin Dashboard - Context
Gathered: 2026-02-04 Status: Ready for planning
## Phase BoundaryProvide customizable dashboard after login and plugin settings interface. Dashboard displays widgets from plugins. Plugins can register settings pages accessible from admin menu. Settings use the same YAML-driven form system from Phase 7.
## Implementation DecisionsDashboard Layout
- Masonry/fluid layout — widgets flow and stack based on their size
- Drag-and-drop customization — admins can reorder, resize, show/hide widgets
- Per-user layout preferences — each admin has their own dashboard arrangement
- Reset to default option — admins can restore plugin-provided default layout
Widget System
- Widget types: stats/charts, lists/tables, and quick actions — all supported
- Sizing: plugin-defined defaults with admin customization
- Real-time updates via WebSocket/SSE — widgets receive push updates for live data
- Widget configuration — widgets can have their own settings (e.g., item count, date range)
Settings Pages
- WinterCMS pattern: plugins define top-level menus for model CRUDs and custom views
- Central Settings area where plugins register their settings
- Grouped by category (System, Content, Users, etc.)
- Plugins can register new categories beyond core defaults
Empty/Loading States
- Fresh install: default system widgets pre-populated (recent activity, quick links)
- Loading: skeleton screens matching content layout
- Empty widget: friendly message explaining why empty and what to do
- Error state: inline error within widget with retry option
Claude's Discretion
- Save behavior for settings forms (HTMX vs full page based on patterns)
- Default widget arrangement on fresh install
- Exact skeleton screen designs
- Category ordering in settings
- "Like in WinterCMS" — follow WinterCMS patterns where plugins have their own top-level menus for CRUDs but settings centralized
- Real-time widget updates prioritized over polling
None — discussion stayed within phase scope
Phase: 08-admin-dashboard Context gathered: 2026-02-04