How sejpalvatsal456/goodbudget-backend works
Good Budget Backend API is an Express REST service for personal-finance users. Its principal workflow is an HTTP request entering a mounted route, passing authentication where required, reaching a domain controller that validates input and queries PostgreSQL, then returning JSON. Domain areas include identity and profile management, accounts, categories, transactions (including balance updates), and date/category/account summaries. The excerpts establish route registration, several route-to-controller bindings, validation and database usage; some route/controller wiring and transaction behavior are only documented, so uncertain links are omitted.
Main entry points: index.ts Express App · pgInit.ts PostgreSQL Pool · authMidddleware.ts JWT Middleware · validations.ts Input Validation
Components 20
HTTP API
- Express App
src/index.ts - Health Check
src/index.ts - Auth Routes
src/routes/authRoute.ts - User Routes
src/routes/usersRoute.ts - Account Routes
src/routes/accountsRoute.ts - Category Routes
src/routes/categoryRoute.ts - Transaction Routes
src/routes/transactionsRoute.ts - Summary Routes
src/routes/summaryRoutes.ts
Identity and Access
- Authentication
src/controllers/authController.ts - User Profiles
src/controllers/usersController.ts - JWT Middleware
src/middlewares/authMidddleware.ts
Finance Domains
- Account Management
src/controllers/accountsController.ts - Category Management
src/controllers/categoryController.ts - Transactions
src/controllers/transactionsController.ts - Summary Reporting
src/controllers/summaryController.ts
Shared Services
- Input Validation
src/lib/validations.ts - PostgreSQL Pool
src/lib/pgInit.ts - Database Check
src/controllers/dbTestController.ts
Other components
- API Client
- PostgreSQL
Connections 34
- API Client → Express App: sends request
src/index.ts - Express App → Health Check: serves health
src/index.ts - Express App → Auth Routes: mounts
src/index.ts - Express App → User Routes: mounts
src/index.ts - Express App → Account Routes: mounts
src/index.ts - Express App → Category Routes: mounts
src/index.ts - Express App → Transaction Routes: mounts
src/index.ts - Express App → Summary Routes: mounts
src/index.ts - Express App → Database Check: routes test
src/index.ts - Auth Routes → Authentication: dispatches
src/routes/authRoute.ts - User Routes → User Profiles: dispatches
src/routes/usersRoute.ts - User Routes → JWT Middleware: guards
src/routes/usersRoute.ts - Account Routes → Account Management: dispatches
src/routes/accountsRoute.ts - Account Routes → JWT Middleware: guards
src/routes/accountsRoute.ts - Category Routes → Category Management: dispatches
src/routes/categoryRoute.ts - Category Routes → JWT Middleware: guards
src/routes/categoryRoute.ts - Transaction Routes → Transactions: dispatches
src/routes/transactionsRoute.ts - Transaction Routes → JWT Middleware: guards
src/routes/transactionsRoute.ts - Summary Routes → Summary Reporting: dispatches
src/routes/summaryRoutes.ts - Summary Routes → JWT Middleware: guards
src/routes/summaryRoutes.ts - Authentication → Input Validation: validates fields
src/controllers/authController.ts - User Profiles → Input Validation: validates fields
src/controllers/usersController.ts - Account Management → Input Validation: validates fields
src/controllers/accountsController.ts - Transactions → Input Validation: validates fields
src/controllers/transactionsController.ts - Summary Reporting → Input Validation: validates dates
src/controllers/summaryController.ts - Authentication → PostgreSQL Pool: queries
src/controllers/authController.ts - User Profiles → PostgreSQL Pool: queries
src/controllers/usersController.ts - Account Management → PostgreSQL Pool: queries
src/controllers/accountsController.ts - Category Management → PostgreSQL Pool: queries
src/controllers/categoryController.ts - Transactions → PostgreSQL Pool: queries
src/controllers/transactionsController.ts - Summary Reporting → PostgreSQL Pool: queries
src/controllers/summaryController.ts - JWT Middleware → PostgreSQL Pool: checks user
src/middlewares/authMidddleware.ts - Database Check → PostgreSQL Pool: checks connection
src/controllers/dbTestController.ts - PostgreSQL Pool → PostgreSQL: connects
src/lib/pgInit.ts