How mcaivano26/cs450-expense-tracker works
Expense Tracker is a personal-finance dashboard whose current workflow is to enter income or expense transactions, validate and persist them, then reload transaction history and income/expense/net totals in the browser. The README also describes monthly/category review, filtering, budget health, and seeded sample data; several of these are product goals rather than demonstrated runtime features in the sampled source. The diagram focuses on implemented paths and documented capabilities, and avoids asserting unsampled route or storage details.
Main entry points: App.tsx Dashboard and totals · app.ts Express routes · client.ts API client · seed.ts Sample data seeding
Components 17
Dashboard UI
- Dashboard and totals
frontend/src/App.tsx - Add transaction form
frontend/src/components/AddTransactionForm.tsx - API client
frontend/src/api/client.ts - API data types
frontend/src/types/api.ts - Monthly and category review
- Date and type filtering
- Budget overview
Transaction API
- Express routes
backend/src/app.ts
Transaction Logic
- Body validation
backend/src/middleware/validateBody.ts - Transaction schemas
backend/src/schemas/transaction.ts - Demo user identity
backend/src/demoUser.ts - Health response
backend/src/types/health.ts - Transaction generator
backend/src/data/generateTransactions.ts
Persistence
- Prisma data access
backend/src/app.ts - PostgreSQL database
backend/prisma/schema.prisma - Sample data seeding
backend/prisma/seed.ts
Other components
- Finance user
Connections 19
- Finance user → Dashboard and totals: views
README.md - Dashboard and totals → Add transaction form: renders
frontend/src/App.tsx - Dashboard and totals → API client: fetches data
frontend/src/App.tsx - Add transaction form → API client: submits transaction
frontend/src/components/AddTransactionForm.tsx - Dashboard and totals → API data types: uses types
frontend/src/App.tsx - API client → API data types: uses types
frontend/src/api/client.ts - API client → Express routes: requests JSON
README.md - Express routes → Body validation: validates writes
backend/src/app.ts - Express routes → Transaction schemas: uses schemas
backend/src/app.ts - Express routes → Demo user identity: resolves user
backend/src/app.ts - Express routes → Health response: builds health
backend/src/app.ts - Express routes → Prisma data access: queries and writes
backend/src/app.ts - Prisma data access → PostgreSQL database: persists records
README.md - Sample data seeding → Transaction generator: generates rows
backend/prisma/seed.ts - Sample data seeding → Demo user identity: resolves user
backend/prisma/seed.ts - Sample data seeding → PostgreSQL database: seeds records
backend/prisma/seed.ts - Dashboard and totals → Monthly and category review: capability described
README.md - Dashboard and totals → Date and type filtering: capability described
README.md - Dashboard and totals → Budget overview: capability described
README.md