How shubhamg2004/fintrack-personal-finance-tracker-nextjs works
FinTrack is a personal-finance web app for recording expenses and income, managing budgets, and viewing spending summaries and financial-health insights. The main transaction path is dashboard entry to the transactions API, then validation, persistence, anomaly checking, and—when flagged—alert creation; dashboard clients can also query stored data and insights. The README describes Gemini categorization and exports, but sampled code shows local anomaly heuristics and a CSV export; those documented capabilities are represented cautiously. Unsampled page and database wiring is omitted where it cannot be established from excerpts.
Main entry points: page.jsx Dashboard · transaction.service.js Transaction service · queries.js Database queries · route.js Transaction API
Components 23
User experience
- Sign-in / sign-up
app/(auth)/sign-in/[[...sign-in]]/page.jsx - Landing page
app/page.js - Dashboard
app/(routes)/dashboard/page.jsx - Charts and summaries
components/dashboard/ExpenseChart.jsx - Financial health
components/dashboard/FinancialHealthCard.jsx
Finance management
- Expense tracking
app/(routes)/dashboard/expenses/page.jsx - Budget management
app/(routes)/dashboard/budgets/page.jsx - Income management
app/(routes)/dashboard/incomes/page.jsx
API and services
- Transaction API
app/api/transactions/route.js - Transaction service
lib/services/transaction.service.js - Payload validation
lib/validators/transaction.validator.js - Anomaly detection
lib/services/ai.service.js - Insights API
app/api/insights/route.js - Financial insights
lib/services/insight.service.js - Alerts API
app/api/alerts/route.js - Alert service
lib/services/alert.service.js
Data and alerts
- Database queries
lib/db/queries.js - Finance schema
utils/schema.jsx - Alert history
lib/services/alert.service.js
Other components
- Finance user
- Neon PostgreSQL
- Clerk auth
- Gemini AI
Connections 24
- Finance user → Landing page: opens
- Landing page → Sign-in / sign-up: starts account
- Finance user → Sign-in / sign-up: signs in
- Sign-in / sign-up → Clerk auth: authenticates
- Finance user → Dashboard: views finances
- Dashboard → Expense tracking: opens expenses
- Dashboard → Budget management: opens budgets
- Dashboard → Income management: opens income
- Expense tracking → Transaction API: submits changes
- Transaction API → Transaction service: dispatches writes
- Transaction API → Database queries: loads transactions
- Transaction service → Payload validation: validates input
- Transaction service → Database queries: persists changes
- Transaction service → Anomaly detection: checks anomaly
- Transaction service → Alert service: creates alert
- Alert service → Alert history: stores alerts
- Alerts API → Alert service: reads history
- Financial health → Insights API: requests insights
- Insights API → Financial insights: dispatches query
- Financial insights → Database queries: loads finance data
- Dashboard → Charts and summaries: renders summaries
- Database queries → Neon PostgreSQL: reads and writes
- Database queries → Finance schema: uses definitions
- Anomaly detection → Gemini AI: categorization described