41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
## 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
|