How johancosta999/money_tracker works
Money Tracker is a personal-finance web app: users sign in, then record and review transactions, manage bank transactions, budgets, monthly planners, notes, and dashboard totals. The frontend routes users to these workflows and its API client attaches stored JWTs; the Express API authenticates protected requests and persists user-owned records. Planner code additionally calculates weekly spending and budgets. Edges reflect shown route wiring, imports, and README flows; several feature implementations and their frontend/API calls were not sampled, so those links are omitted rather than inferred.
Main entry points: App.jsx Route application · plannerController.js Planner logic · transactionsController.js Transaction logic · app.js Express API
Components 24
Web application
- Route application
frontend/src/App.jsx - Auth state
frontend/src/context/AuthProvider.jsx - API client
frontend/src/services/api.js - Dashboard
frontend/src/pages/Dashboard.jsx - Transactions UI
frontend/src/pages/AddTransaction.jsx - Planner UI
frontend/src/pages/Planner.jsx - Planner details
frontend/src/pages/PlannerDetails.jsx - Other finance pages
frontend/src/pages
Identity and API
- Express API
backend/app.js - Auth routes
backend/route/authRoute.js - Auth controller
backend/controller/authController.js - JWT guard
backend/middleware/authMiddleware.js - Input validation
backend/utils/validation.js
Finance workflows
- Planner routes
backend/route/plannerRoutes.js - Planner logic
backend/controller/plannerController.js - Transaction logic
backend/controller/transactionsController.js - Other feature logic
backend/controller
Data models
- Planner records
backend/model/moneyPlanModel.js - Transactions
backend/model/transactionsModel.js - Bank transfers
backend/model/bankTransfersModel.js - User accounts
backend/model/userModel.js - Other records
backend/model
Other components
- User
- MongoDB
Connections 29
- User → Route application: uses
frontend/src/App.jsx - Route application → Dashboard: routes to
frontend/src/App.jsx - Route application → Transactions UI: routes to
frontend/src/App.jsx - Route application → Planner UI: routes to
frontend/src/App.jsx - Route application → Planner details: routes to
frontend/src/App.jsx - Route application → Other finance pages: routes to
frontend/src/App.jsx - Route application → Auth state: reads auth
frontend/src/App.jsx - Auth state → API client: uses
frontend/src/context/AuthProvider.jsx - API client → Express API: sends requests
- Express API → Auth routes: mounts
backend/app.js - Express API → Planner routes: mounts
backend/app.js - Auth routes → Auth controller: dispatches
backend/route/authRoute.js - Auth routes → JWT guard: guards routes
backend/route/authRoute.js - Auth controller → User accounts: reads/writes
backend/controller/authController.js - Auth controller → Input validation: validates with
backend/controller/authController.js - Planner routes → JWT guard: guards routes
backend/route/plannerRoutes.js - Planner routes → Planner logic: dispatches
backend/route/plannerRoutes.js - Planner logic → Planner records: reads/writes
backend/controller/plannerController.js - Planner logic → Transactions: aggregates spending
backend/controller/plannerController.js - Planner logic → Bank transfers: updates assignments
backend/controller/plannerController.js - Planner logic → Input validation: validates with
backend/controller/plannerController.js - Transaction logic → Transactions: reads/writes
backend/controller/transactionsController.js - Transaction logic → Planner records: checks planner
backend/controller/transactionsController.js - Transaction logic → Input validation: validates with
backend/controller/transactionsController.js - Other feature logic → Other records: reads/writes
backend/controller/plannerController.js - Planner records → MongoDB: persists in
- Transactions → MongoDB: persists in
- Bank transfers → MongoDB: persists in
- User accounts → MongoDB: persists in