Skip to content

feat: Multi-account financial overview dashboard (bounty #132)#940

Open
alexanderxfgl-bit wants to merge 1 commit intorohitdash08:mainfrom
alexanderxfgl-bit:bounty/132-multiaccount
Open

feat: Multi-account financial overview dashboard (bounty #132)#940
alexanderxfgl-bit wants to merge 1 commit intorohitdash08:mainfrom
alexanderxfgl-bit:bounty/132-multiaccount

Conversation

@alexanderxfgl-bit
Copy link
Copy Markdown

Bounty Claim: $200 — Issue #132

Implementation

Full multi-account financial overview system with account types, per-type breakdowns, and transaction tracking.

Backend Changes

Models (app/models.py):

  • AccountType enum: checking, savings, credit_card, investment, cash
  • FinancialAccount: name, account_type, institution, balance, currency, is_active
  • AccountTransaction: account_id, user_id, amount, description, category, transaction_date

Service (app/services/accounts.py):

  • create_account() — with type validation and balance initialization
  • get_account() — single account with recent transactions
  • list_accounts() — with optional active-only filter
  • get_overview() — total balance, per-type breakdown, account count
  • update_account() — partial update of allowed fields
  • deactivate_account() — soft-delete (is_active=False)
  • add_transaction() — with auto balance update on the account
  • list_transactions() — paginated per-account transaction listing

Routes (app/routes/accounts.py):

  • POST /accounts — create account with validation
  • GET /accounts — list accounts (active_only param)
  • GET /accounts/overview — multi-account dashboard (total, per-type, count)
  • GET /accounts/<id> — single account with recent transactions
  • PATCH /accounts/<id> — update account
  • DELETE /accounts/<id> — deactivate account
  • POST /accounts/<id>/transactions — add transaction (auto-updates balance)
  • GET /accounts/<id>/transactions — list transactions

Schema (app/db/schema.sql):

  • financial_accounts and account_transactions tables
  • account_type enum type
  • Indexes for user+active and account+date queries

Tests

11 tests covering:

  • Account CRUD (create, list, get, update, delete)
  • Input validation (missing name, invalid type, invalid balance)
  • Overview aggregation (total balance, per-type breakdown)
  • Transaction workflow (add, list, balance auto-update)
  • Transaction validation (missing amount)
  • Soft-delete behavior

Closes #132

)

Implements a multi-account system for viewing all financial accounts
in one unified dashboard with per-type breakdowns and transactions.

- FinancialAccount model: name, type (checking/savings/credit_card/investment/cash),
  institution, balance, currency, soft-delete via is_active
- AccountTransaction model: per-account transactions with auto balance update
- AccountService: CRUD, overview aggregation, transaction management
- REST API: POST/GET/PATCH/DELETE /accounts, GET /accounts/overview,
  POST/GET /accounts/<id>/transactions
- PostgreSQL schema with account_type enum and optimized indexes
- 11 tests covering CRUD, overview, transactions, validation

Closes rohitdash08#132
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multi-account financial overview dashboard

1 participant