2.2 KiB
2.2 KiB
Purpose
TBD
Requirements
Requirement: Dashboard shows month-specific financial totals
The system SHALL return month-specific dashboard data for a requested YYYY-MM month using the local machine timezone for month boundaries.
Scenario: Dashboard totals are calculated for a populated month
- WHEN the user requests the dashboard for a month with expenses and paychecks
- THEN the system returns total expenses, total paychecks, net cash flow, and a category breakdown for that month
Scenario: Dashboard supports partial current-month data
- WHEN the user requests the dashboard for the current month before the month is complete
- THEN the system returns meaningful month-to-date totals and comparisons using the transactions recorded so far
Requirement: Dashboard includes derived spending comparisons
The system SHALL provide derived comparisons for the selected month, including highest category, largest expense, average daily spend, and paycheck coverage information.
Scenario: Derived comparisons are available
- WHEN the selected month contains enough data for comparisons
- THEN the system returns the highest category, largest single expense, average daily spend, and spend-versus-paycheck coverage values
Scenario: Derived comparisons degrade safely for sparse data
- WHEN the selected month has no expenses or otherwise insufficient data for a comparison
- THEN the system returns null or empty-safe comparison fields instead of failing
ADDED Requirements
Requirement: Monthly dashboard UI renders correctly in both themes
The system SHALL render dashboard sections, insight cards, category bars, stat tiles, and empty states with readable contrast in both light and dark themes.
Scenario: Dashboard renders in dark mode
- WHEN the user opens the dashboard while dark mode is active
- THEN the summary cards, comparison cards, progress bars, and empty states use dark-compatible colors and remain readable
Scenario: Dashboard renders in light mode
- WHEN the user opens the dashboard while light mode is active
- THEN the summary cards, comparison cards, progress bars, and empty states use light-compatible colors and remain readable