How smartbuddy1/backend_expense works
ASEMS is a backend API for managing site expenses and cash advances across projects, from submission or request through approval and payment or disbursement. The Express entry point dispatches requests to domain routes; authentication protects access, and Prisma provides persistence. The sampled expense and advance handlers show payment-ledger recording, while receipt uploads can use S3 or local storage. Other route modules are included as documented API branches, but their internal behavior is not inferred from their filenames.
Main entry points: index.js Express API · expenses.js Expenses · db.js Prisma client · advances.js Advances
Components 20
API and access
- Express API
src/index.js - Login and identity
src/routes/auth.js - Auth middleware
src/middleware/auth.js - Users
src/routes/users.js - Prisma client
src/db.js
Project setup
- Organizations
src/routes/organizations.js - Projects
src/routes/projects.js - Team members
src/routes/teamMembers.js
Expense and advance
- Expenses
src/routes/expenses.js - Advances
src/routes/advances.js - Operational heads
src/routes/operationalHeads.js - Public forms
src/routes/publicForms.js
Finance and records
- Settlements
src/routes/settlements.js - Payments ledger
src/routes/paymentsLedger.js - Site logs
src/routes/siteLogs.js - Application database
prisma/schema.prisma - Receipt storage
src/utils/s3.js
Other components
- API client
- AWS S3
- Local uploads
Connections 25
- API client → Express API: sends requests
- Express API → Login and identity: dispatches
- Express API → Users: dispatches
- Express API → Organizations: dispatches
- Express API → Projects: dispatches
- Express API → Team members: dispatches
- Express API → Expenses: dispatches
- Express API → Advances: dispatches
- Express API → Operational heads: dispatches
- Express API → Public forms: dispatches
- Express API → Settlements: dispatches
- Express API → Payments ledger: dispatches
- Express API → Site logs: dispatches
- Login and identity → Prisma client: queries users
- Auth middleware → Prisma client: checks users
- Expenses → Auth middleware: protects routes
- Advances → Auth middleware: protects routes
- Expenses → Prisma client: reads and writes
- Advances → Prisma client: reads and writes
- Prisma client → Application database: persists data
- Expenses → Receipt storage: uploads receipts
- Receipt storage → AWS S3: stores objects
- Receipt storage → Local uploads: stores fallback files
- Expenses → Payments ledger: records payments
- Advances → Payments ledger: records disbursals