Product Requirements
Overview
The Dashboard module is a chart-and-table-oriented canvas where users generate visualizations through AI conversation. It consists of multiple tabs, each containing AI-generated charts and tables. Each conversation is linked to exactly one chart/table.
Tab Management
- Tabs are containers where users group their charts/tables
- Users can create new tabs
- Users can name and rename tabs
- Users can delete tabs (except the default Energy Audit tab)
- No limit on the number of tabs
- Tabs are not reorderable in the UI (but
displayOrderfield is stored in DB for future use) - Max 10 charts/tables per tab (configurable)
Energy Audit Tab (Default)
- A default tab named "Energy Audit" contains pre-generated charts
- Pre-generated charts may differ by user type
- Users cannot edit or delete pre-generated charts
- Users cannot generate new charts in this tab
- Users cannot delete this tab
- TBD: List of charts to display here
AI-Generated Charts & Tables (Other Tabs)
- Charts AND tables can be generated based on user prompts
- Tables support pagination (offset/limit on SQL re-execution)
- The scope (Zone, Circle, Section, etc.) is determined by AI based on user type:
- AEs: can only generate charts for their section
- CIO and higher: can generate charts spanning multiple sections
- One chart/table is linked to exactly one conversation
- Duplicate charts are allowed in the same tab
- Charts have positions within a tab; positions are reorganized on delete
Conversations
- A tab contains multiple conversations (grouped under tabs)
- No simultaneous conversations allowed (one active conversation per user at a time)
- Each conversation is linked to a single chart/table
- This 1:1 approach is chosen to overcome AI context limitations
Chart & Conversation Naming
- Both chart and conversation names are initially generated by AI
- Chart names: user-editable, duplicate names allowed
- Conversation names: NOT user-editable
Chart Editing
- Users edit a chart by navigating to its linked conversation
- An edit button on the chart navigates to the linked conversation
- Editing reopens the conversation → user prompts → chart updates → conversation closes again
Chart Lifecycle
History & Limits
- All conversation and chart history persists across logins
- All prompts and SQL queries are stored in the backend
- 10 charts max per tab (configurable)
Deleting Charts
- Users can delete charts
- When a chart is deleted, all charts in that tab are repositioned
- Associated conversation is also deleted (or soft-deleted)
Pinning
- No pinning — all charts are equal within a tab
Default Chart Suggestions
- Stored as static JSON on cloud storage (S3/GCS/Cloudflare)
- Frontend fetches directly — no backend API for now
- Suggestions differ by user type
- Include labels: "most impactful", "most used", etc.
- Indicate output type: table or chart
- Must include: a suggestion to generate a list of overloaded TCs
- TBD: Full list of suggestions
Data Refresh
- Data refreshes nightly (MongoDB data converted to a DuckDB database file)