How jacksonitoro/budget-buddy works
Budget Buddy is a full-stack personal finance app: users manage monthly budgets and categorized expenses, then review dashboard summaries and expense history. The main path runs from the browser UI through frontend API calls, Express routes/controllers, business services, and SQLite-backed models. The graph also preserves the documented dashboard and health capabilities. Backend wiring is sampled; frontend page-to-component details and some dashboard behavior are inferred only from the README and tree, so uncertain links are omitted.
Main entry points: page.js App page · app.js Express app · api.js API client · connection.js SQLite connection
Components 20
Frontend
- App page
frontend/src/app/page.js - Dashboard
frontend/src/components/dashboard/Dashboard.jsx - Budget form
frontend/src/components/forms/BudgetForm.jsx - Expense form
frontend/src/components/forms/ExpenseForm.jsx - Expense history
frontend/src/components/expenses/ExpenseList.jsx - API client
frontend/src/services/api.js
Backend API
- Express app
backend/src/app.js - Budget routes
backend/src/routes/budget.routes.js - Expense routes
backend/src/routes/expense.routes.js - Health route
backend/src/routes/health.routes.js - Budget controller
backend/src/controllers/budget.controller.js - Expense controller
backend/src/controllers/expense.controller.js - API server
backend/src/server.js
Finance Logic
- Budget service
backend/src/services/budget.service.js - Expense service
backend/src/services/expense.service.js
Persistence
- Budget model
backend/src/models/budget.model.js - Expense model
backend/src/models/expense.model.js - Database setup
backend/src/database/init.js - SQLite connection
backend/src/database/connection.js
Other components
- Browser user
Connections 24
- Browser user → App page: uses
- App page → Dashboard: renders
- App page → Budget form: renders
- App page → Expense form: renders
- App page → Expense history: renders
- Dashboard → API client: requests data
- Budget form → API client: saves budget
- Expense form → API client: saves expense
- Expense history → API client: loads and deletes
- API client → Express app: REST/JSON
- API server → Express app: starts
- API server → Database setup: initializes
- Express app → Budget routes: mounts
- Express app → Expense routes: mounts
- Express app → Health route: mounts
- Budget routes → Budget controller: dispatches
- Expense routes → Expense controller: dispatches
- Budget controller → Budget service: calls
- Expense controller → Expense service: calls
- Budget service → Budget model: calls
- Expense service → Expense model: calls
- Budget model → SQLite connection: queries
- Expense model → SQLite connection: queries
- Database setup → SQLite connection: creates tables