Skip to content

feat: keyboard-first navigation & spending trend heatmap#480

Open
TallowX92 wants to merge 9 commits intorohitdash08:mainfrom
TallowX92:feat/keyboard-navigation-shortcuts
Open

feat: keyboard-first navigation & spending trend heatmap#480
TallowX92 wants to merge 9 commits intorohitdash08:mainfrom
TallowX92:feat/keyboard-navigation-shortcuts

Conversation

@TallowX92
Copy link

@TallowX92 TallowX92 commented Mar 17, 2026

Keyboard shortcut system for power-user navigation across all main views, with two input modes.

Number keys (direct):

  • 1 — Dashboard
  • 2 — Budgets
  • 3 — Bills
  • 4 — Reminders
  • 5 — Expenses
  • 6 — Analytics
  • 7 — Account

G + key (chord):

  • G+D — Dashboard
  • G+B — Budgets
  • G+L — Bills
  • G+R — Reminders
  • G+E — Expenses
  • G+A — Analytics
  • G+C — Account
  • G+Q — Logout

Additional:

  • Shift+? — Toggle shortcut help modal (open/close)

Changes:

  • use-shortcuts.ts — Custom hook for global shortcut registration
  • shortcut-help-modal.tsx — Help modal listing all shortcuts, toggled with Shift+?
  • Layout.tsx — Shortcuts and modal integrated globally
  • index.css — WCAG AA focus indicators via :focus-visible
  • shortcuts.test.tsx — Unit tests for shortcut logic

Tests: npm test src/tests/shortcuts.test.tsx — PASS

Demo — shows all shortcuts in use including navigation and help modal toggle.
https://github.com/user-attachments/assets/c88a7103-9379-4b25-bbc1-5cb73cab4f62

/claim #106

…#121)

Adds a weekly financial summary endpoint and frontend page showing
spending totals, category breakdowns, week-over-week changes, upcoming
bills, and auto-generated insights.

Backend (GET /digest/weekly):
- Aggregates current and previous week expenses by category
- Computes total_spent, total_income, net_flow, wow_change_pct
- Category breakdown with delta and delta_pct vs previous week
- Upcoming bills due within the next 7 days
- insights[] — human-readable trend sentences (top category, WoW
  changes ≥5%, biggest category increase/decrease ≥20%, bill alerts)
- Redis cache with 1-hour TTL, graceful fallback if Redis unavailable
- Optional ?week_start=YYYY-MM-DD param (defaults to current Monday)

Frontend:
- api/digest.ts — typed API client
- pages/Digest.tsx — summary cards, category bar chart with WoW delta
  badges, insights list, upcoming bills panel, prev/next week navigation
- /digest route registered in App.tsx and Navbar

Tests (tests/test_digest.py — 10 tests):
- Empty week returns zero summary
- Expenses appear in category breakdown
- Income excluded from spending totals
- Custom week_start param
- Upcoming bills included
- Top spending category is highest spend
- WoW change computed correctly
- Cache hit returns cached response
- Auth required (401 without JWT)
- Insights list is non-empty when data present
@TallowX92 TallowX92 force-pushed the feat/keyboard-navigation-shortcuts branch from c9f2eba to 9641813 Compare March 17, 2026 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants