Open
Conversation
…ng, and visual indicators Implements savings goals feature allowing users to create, track, and manage financial saving targets with visual progress indicators and contribution history. Backend: - SavingsGoal and SavingsContribution SQLAlchemy models with status lifecycle - Full REST API: CRUD + contributions + withdrawals + summary stats - Auto-complete when target reached, re-activate on withdrawal below target - PostgreSQL schema migration with proper indexes - Comprehensive test suite (9 tests covering CRUD, contributions, auto-complete, withdrawals, validation, status filtering, currency defaults) Frontend: - Type-safe API client for all savings endpoints - SavingsGoals page with summary cards, color-coded progress bars, goal cards with deposit/withdraw/edit/delete, target date tracking with days remaining and monthly savings needed, status filtering - Navigation link added to navbar, route registered in App.tsx - Frontend integration test suite Documentation: - OpenAPI spec updated with all savings endpoints and schemas Closes rohitdash08#133 /claim rohitdash08#133 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
Implements goal-based savings tracking feature allowing users to create, manage, and visually track progress toward financial saving targets. Closes #133.
/claim #133
Backend (Flask/SQLAlchemy/PostgreSQL)
SavingsGoal(name, description, target/current amount, currency, target date, icon, color, status) andSavingsContribution(amount, note, date) with full lifecycle management (ACTIVE → COMPLETED → CANCELLED)/savings):GET /savings— List goals with status filter (ACTIVE/COMPLETED/ALL)GET /savings/<id>— Single goal with contribution historyPOST /savings— Create goal (auto-defaults to user's preferred currency)PATCH /savings/<id>— Update goal detailsDELETE /savings/<id>— Delete goal and contributionsPOST /savings/<id>/contributions— Add deposit (auto-completes at 100%)POST /savings/<id>/withdraw— Withdraw with balance validationGET /savings/summary— Aggregate stats across all goalssavings_goalsandsavings_contributionstablesFrontend (React/TypeScript/Tailwind)
api/savings.ts): Type-safe client for all endpointspages/SavingsGoals.tsx):/savingsroute registered as protected routeDocumentation
Test plan
pytest tests/test_savings.py— 9 tests pass (CRUD, contributions, auto-complete, withdraw, validation, filtering, currency)jest SavingsGoals.integration.test— renders goals, empty state, progress bars, filteringGenerated with Claude Code