How taskininorizon-dev/inorizon-efms works
Inorizon EFMS is a browser-based expense and fund management system backed by an Express API and MongoDB. Visitors enter a keyword for read-only access; an Admin signs in to manage members and record or amend ledger transactions. The client loads dashboard summaries and reports from the API, while server controllers enforce ledger rules, persist transactions, and record audit events. Voucher uploads use Cloudinary. The sampled source confirms the transaction, authentication, and dashboard paths; other documented capabilities are represented at their listed route/controller paths, with uncertain internal wiring omitted.
Main entry points: app.js Express API · transaction.controller.js Transaction handling · audit.service.js Audit logging · Transaction.js Transactions
Components 27
Client experience
- Workspace UI
client/src/App.jsx - API client
client/src/api/client.js
API and access
- Express API
server/src/app.js - Authentication routes
server/src/routes/auth.routes.js - Authentication
server/src/controllers/auth.controller.js - Member routes
server/src/routes/member.routes.js - Member management
server/src/controllers/member.controller.js
Ledger and finance
- Transaction routes
server/src/routes/transaction.routes.js - Finance routes
server/src/routes/finance.routes.js - Transaction handling
server/src/controllers/transaction.controller.js - Fund and expense handling
server/src/controllers/finance.controller.js - Ledger rules
server/src/services/ledger.service.js
Reporting and oversight
- Dashboard routes
server/src/routes/dashboard.routes.js - Dashboard analytics
server/src/controllers/dashboard.controller.js - Report routes
server/src/routes/report.routes.js - Reports
server/src/controllers/report.controller.js - Audit routes
server/src/routes/audit.routes.js - Audit logging
server/src/services/audit.service.js - Settings routes
server/src/routes/setting.routes.js - Settings
server/src/controllers/setting.controller.js
Persistent state
- Transactions
server/src/models/Transaction.js - Users
server/src/models/User.js - Refresh tokens
server/src/models/RefreshToken.js - Audit logs
server/src/models/AuditLog.js
Other components
- Visitor or Admin
- MongoDB
- Cloudinary
Connections 39
- Visitor or Admin → Workspace UI: uses
- Workspace UI → API client: requests data
- API client → Express API: calls API
- Express API → Authentication routes: dispatches
- Express API → Member routes: dispatches
- Express API → Transaction routes: dispatches
- Express API → Finance routes: dispatches
- Express API → Dashboard routes: dispatches
- Express API → Report routes: dispatches
- Express API → Audit routes: dispatches
- Express API → Settings routes: dispatches
- Authentication routes → Authentication: dispatches
- Member routes → Member management: dispatches
- Transaction routes → Transaction handling: dispatches
- Finance routes → Fund and expense handling: dispatches
- Dashboard routes → Dashboard analytics: dispatches
- Report routes → Reports: dispatches
- Audit routes → Audit logging: dispatches
- Settings routes → Settings: dispatches
- Authentication → Users: reads and updates
- Authentication → Refresh tokens: rotates sessions
- Authentication → Audit logging: records events
- Transaction handling → Ledger rules: checks ledger
- Transaction handling → Transactions: reads and writes
- Transaction handling → Audit logging: records changes
- Transaction handling → Cloudinary: deletes assets
- Fund and expense handling → Ledger rules: creates and summarizes
- Fund and expense handling → Transactions: lists transactions
- Fund and expense handling → Audit logging: records events
- Dashboard analytics → Ledger rules: gets summary
- Dashboard analytics → Transactions: aggregates activity
- Member management → Users: manages members
- Audit logging → Audit logs: writes logs
- Reports → Transactions: queries transactions
- Settings → MongoDB: stores settings
- Transactions → MongoDB: persists
- Users → MongoDB: persists
- Refresh tokens → MongoDB: persists
- Audit logs → MongoDB: persists