Skip to content

feat: Goal-based savings tracking & milestones#754

Open
shaidshark wants to merge 2 commits intorohitdash08:mainfrom
shaidshark:feature/goal-based-savings
Open

feat: Goal-based savings tracking & milestones#754
shaidshark wants to merge 2 commits intorohitdash08:mainfrom
shaidshark:feature/goal-based-savings

Conversation

@shaidshark
Copy link
Copy Markdown

Bounty #133 — Goal-based savings tracking & milestones

What's included

Backend (Flask):

  • \SavingsGoal\ model (name, target, current amount, currency, deadline, icon, completion flag)
  • \SavingsContribution\ model (linked contributions with notes)
  • Full CRUD API at /savings\ with JWT auth
  • Milestone tracking at 25%, 50%, 75%, 100%
  • Auto-completion when target reached
  • Contribution system that auto-updates progress
  • DB schema migration with indexes

Frontend (React + TypeScript):

  • Savings page with goal cards and progress bars
  • Milestone badges (visual indicators)
  • Create goal dialog
  • Add contribution dialog
  • Delete with confirmation
  • Responsive grid layout

Tests:

  • 12 test cases covering all endpoints
  • Auth checks, CRUD, contributions, milestones, edge cases

Acceptance Criteria

  • Allow users to track savings goals and milestones
  • Production ready implementation
  • Includes tests (12 test cases)
  • Documentation (API via OpenAPI spec, inline docs)

shaidshark added 2 commits April 3, 2026 10:41
…8#133)

- Backend: SavingsGoal + SavingsContribution models
- CRUD API routes with JWT auth (/savings)
- Milestone tracking at 25%, 50%, 75%, 100%
- Contribution system with progress auto-calculation
- Auto-complete when goal target reached
- Frontend: Savings page with progress bars, milestone badges
- Navigation link in navbar
- DB schema migration with indexes
- 12 test cases covering all endpoints
- Use with_for_update() in add_contribution and delete_contribution
- Prevents lost updates when concurrent contributions are made
- Addresses critical race condition from code review
@shaidshark
Copy link
Copy Markdown
Author

Bounty submission — ready for review! All code review feedback from previous rounds has been addressed.

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.

1 participant