feat: Multi-account financial overview dashboard (#132)#689
Open
zacharylyonstx wants to merge 1 commit intorohitdash08:mainfrom
Open
feat: Multi-account financial overview dashboard (#132)#689zacharylyonstx wants to merge 1 commit intorohitdash08:mainfrom
zacharylyonstx wants to merge 1 commit intorohitdash08:mainfrom
Conversation
Add complete multi-account management with unified dashboard view: Backend: - financial_accounts table with account_type enum (CHECKING, SAVINGS, CREDIT_CARD, INVESTMENT, LOAN, OTHER) - FinancialAccount SQLAlchemy model - Full CRUD REST API: list, create, get, update, delete accounts - /accounts/overview endpoint with aggregated data (by type, currency, institution) with Redis caching - Input validation and proper error handling - JWT-protected routes with user-scoped data isolation Frontend: - AccountsOverview page with net worth summary card - Breakdown cards by account type and institution with progress bars - Account cards grouped by type with inline edit/delete - Add/Edit account dialog with form validation - Empty state with call-to-action - TypeScript API client with full type definitions - Integration tests covering CRUD, empty state, and error handling Wiring: - /accounts route added to React Router (protected) - Accounts link added to navigation bar - accounts blueprint registered in Flask app
Author
|
@rohitdash08 Multi-account financial overview dashboard is ready — full backend CRUD with aggregation, React dashboard UI, and 12 tests. 1,114 lines. Ready for review! 🙏 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #132 — implements a complete multi-account financial overview dashboard allowing users to link multiple financial accounts and view a unified dashboard with aggregated data.
What Changed
Backend (
packages/backend/)financial_accountstable withaccount_typeenum (CHECKING,SAVINGS,CREDIT_CARD,INVESTMENT,LOAN,OTHER), indexed on(user_id, is_active)FinancialAccountSQLAlchemy model with full field mapping/accounts):GET /— List accounts (filterable byinclude_inactive)POST /— Create account with validationGET /:id— Get single accountPATCH /:id— Partial update with field-level validationDELETE /:id— Delete accountGET /overview— Aggregated dashboard data (by type, currency, institution) with Redis caching (5min TTL)Frontend (
app/)AccountsOverviewpage — Full dashboard with:api/accounts.ts) — Typed functions for all endpoints/accountsroute added as a protected routeTests
tests/test_accounts.py) — 8 test cases covering:__tests__/AccountsOverview.integration.test.tsx) — 4 integration tests:Files Changed
packages/backend/app/db/schema.sqlfinancial_accountstable + indexpackages/backend/app/models.pyAccountTypeenum +FinancialAccountmodelpackages/backend/app/routes/__init__.pypackages/backend/app/routes/accounts.pypackages/backend/tests/test_accounts.pyapp/src/api/accounts.tsapp/src/pages/AccountsOverview.tsxapp/src/__tests__/AccountsOverview.integration.test.tsxapp/src/App.tsx/accountsprotected routeapp/src/components/layout/Navbar.tsx