How venkateshpulakala/expense-tracker works
Expense Tracker is a browser-based personal finance app backed by a FastAPI API and MySQL. Users register or log in, then use the dashboard to manage income and expenses, filter transactions, view monthly totals and charts, and manage monthly budgets with overspending status. The API authenticates protected requests with JWTs and scopes financial records to the current user. The README documents charts and the broader feature set; frontend source is partial, so links reflect only visible request behavior and documented capabilities.
Main entry points: script.js Browser logic · main.py FastAPI app · database.py Database sessions · auth.py Authentication
Components 15
Browser experience
- Web pages
frontend/index.html - Dashboard page
frontend/dashboard.html - Browser logic
frontend/script.js
Identity and API
- FastAPI app
backend/main.py - Account routes
backend/routers/users.py - Authentication
backend/auth.py - Request schemas
backend/schemas.py
Finance features
- Transactions
backend/routers/transactions.py - Monthly summary
backend/routers/summary.py - Budgets and status
backend/routers/budgets.py - Expense charts
frontend/script.js
Persistence
- Data models
backend/models.py - Database sessions
backend/database.py
Other components
- User
- MySQL database
Connections 31
- User → Web pages: uses
- User → Dashboard page: uses
- Web pages → Browser logic: loads
- Dashboard page → Browser logic: loads
- Browser logic → FastAPI app: sends requests
- FastAPI app → Account routes: dispatches
- FastAPI app → Transactions: dispatches
- FastAPI app → Monthly summary: dispatches
- FastAPI app → Budgets and status: dispatches
- Account routes → Authentication: hashes and signs
- Transactions → Authentication: validates token
- Monthly summary → Authentication: validates token
- Budgets and status → Authentication: validates token
- Account routes → Database sessions: gets session
- Authentication → Database sessions: gets session
- Transactions → Database sessions: gets session
- Monthly summary → Database sessions: gets session
- Budgets and status → Database sessions: gets session
- Account routes → Data models: queries and writes
- Authentication → Data models: looks up user
- Transactions → Data models: queries and writes
- Monthly summary → Data models: aggregates transactions
- Budgets and status → Data models: queries and writes
- FastAPI app → Database sessions: creates tables
- Database sessions → MySQL database: connects
- Browser logic → Expense charts: renders
- Expense charts → FastAPI app: fetches transactions
- Browser logic → Monthly summary: requests totals
- Browser logic → Transactions: manages records
- Browser logic → Budgets and status: manages budgets
- Browser logic → Account routes: registers and logs in