How krushnamajhi/mindyourmoney-back works
MindYourMoney is a backend API for user accounts and shared-expense tracking. Clients use the Express routes to register or log in, manage groups and expenses, record settlements, and retrieve debt balances. Expense handling includes split-based allocation and filtering; the balance endpoints summarize what users owe or are owed. TypeORM connects the feature services to persisted entities. The graph follows sampled route/controller/service calls; several service implementations and route indexes were not sampled, so uncertain internal links are omitted.
Main entry points: app.util.ts Route and DB setup · app.ts Express app · user.routes.ts User routes · expense.service.ts Expense and splits
Components 24
API runtime
- Express app
src/main/app.ts - Route and DB setup
src/main/app.util.ts - Authentication middleware
src/middlewares/auth.middleware.ts - Error handler
src/middlewares/errorhandler.middleware.ts
User accounts
- User routes
src/features/user/routes/user.routes.ts - User controller
src/features/user/controllers/user.controller.ts - User service
src/features/user/services/user.service.ts
Expense tracking
- Expense routes
src/features/expensetracker/routes/expense.routes.ts - Expense controller
src/features/expensetracker/controllers/expense.controller.ts - Expense and splits
src/features/expensetracker/services/expense.service.ts - Group routes
src/features/expensetracker/routes/group.routes.ts - Group controller
src/features/expensetracker/controllers/group.controller.ts - Group service
src/features/expensetracker/services/group.service.ts - Category routes
src/features/expensetracker/routes/expense-catagory.routes.ts - Category controller
src/features/expensetracker/controllers/expense-category.controller.ts - Category service
src/features/expensetracker/services/expense-catagory.service.ts
Balances and settlement
- Peer debt controller
src/features/expensetracker/controllers/simplified-peer-debts.controller.ts - Peer debt service
src/features/expensetracker/services/simplified-peer-debts.service.ts
Persistence
- Expense records
src/features/expensetracker/entities/expense.ts - Split records
src/features/expensetracker/entities/debt-member-split-expense-line.ts - Simplified debt view
src/features/expensetracker/entities/simplified-peer-debt.view.ts - TypeORM configuration
src/config/database.ts - MySQL database
Other components
- API client
Connections 20
- API client → Express app: sends requests
- Express app → Route and DB setup: sets up
- Route and DB setup → User routes: mounts routes
- Route and DB setup → Expense routes: mounts routes
- User routes → User controller: dispatches
- User routes → Authentication middleware: guards current-user
- User controller → User service: calls
- Expense routes → Expense controller: dispatches
- Expense controller → Expense and splits: calls
- Group routes → Group controller: dispatches
- Group controller → Group service: calls
- Category routes → Category controller: dispatches
- Category controller → Category service: calls
- Peer debt controller → Peer debt service: calls
- Expense and splits → Expense records: persists expenses
- Expense and splits → Split records: persists splits
- Route and DB setup → TypeORM configuration: initializes
- TypeORM configuration → MySQL database: connects to
- Express app → Error handler: handles errors
- Peer debt service → Simplified debt view: reads balances