Skip to main content

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 displayOrder field 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)