How adityagangwar2674/finance-tracker works
Finesse Finance is a personal-finance tracker. Users register or sign in, then manage transactions and monthly category budgets; the dashboard loads those records, computes spending summaries, and presents charts and budget comparisons. API routes own authenticated record operations, while shared auth utilities validate sessions and MongoDB models persist users, transactions, and budgets. The README describes additional analytics and goal capabilities, but the sampled source does not establish their full implementation or wiring.
Main entry points: page.tsx Dashboard · db.ts Database connection · auth.ts Auth utilities · route.ts Transaction API
Components 23
Account access
- Registration page
app/register/page.tsx - Login page
app/login/page.tsx - Register API
app/api/auth/register/route.ts - Login API
app/api/auth/login/route.ts - Logout API
app/api/auth/logout/route.ts - Session API
app/api/auth/me/route.ts - Auth utilities
lib/auth.ts
Dashboard and analytics
- Dashboard
app/page.tsx - Spending trends
components/FinancialChart.tsx - Category breakdown
components/CategoryPieCharts.tsx - Budget comparison
components/BudgetVsActualChart.tsx
Financial records
- Transaction entry
components/TransactionForm.tsx - Transaction history
components/TransactionList.tsx - Transaction API
app/api/transactions/route.ts - Transaction item API
app/api/transactions/[id]/route.ts - Budget planner
components/BudgetForm.tsx - Budget API
app/api/budget/route.ts
Persistence
- Database connection
lib/db.ts - User model
models/User.ts - Transaction model
models/Transaction.ts - Budget model
models/Budget.ts - MongoDB
Other components
- Finance user
Connections 38
- Finance user → Registration page: enters details
- Finance user → Login page: submits credentials
- Registration page → Register API: posts registration
- Login page → Login API: posts credentials
- Register API → Database connection: connects
- Register API → User model: checks and creates
- Register API → Auth utilities: hashes and signs
- Login API → Database connection: connects
- Login API → User model: finds account
- Login API → Auth utilities: checks and signs
- Logout API → Finance user: clears session cookie
- Session API → Auth utilities: gets session
- Finance user → Dashboard: opens dashboard
- Dashboard → Session API: checks session
- Dashboard → Transaction API: loads transactions
- Dashboard → Budget API: loads budgets
- Dashboard → Transaction entry: renders
- Dashboard → Transaction history: renders
- Dashboard → Budget planner: renders
- Dashboard → Spending trends: passes spending data
- Dashboard → Category breakdown: passes category data
- Dashboard → Budget comparison: passes comparison data
- Transaction entry → Transaction API: creates transaction
- Transaction history → Transaction item API: edits or deletes
- Budget planner → Budget API: creates or updates
- Transaction API → Auth utilities: gets user identity
- Transaction item API → Auth utilities: gets user identity
- Budget API → Auth utilities: gets user identity
- Transaction API → Database connection: connects
- Transaction item API → Database connection: connects
- Budget API → Database connection: connects
- Transaction API → Transaction model: reads and writes
- Transaction item API → Transaction model: updates and deletes
- Budget API → Budget model: reads and writes
- Database connection → MongoDB: connects
- User model → MongoDB: persists users
- Transaction model → MongoDB: persists transactions
- Budget model → MongoDB: persists budgets