How kiptoo345/umoja-sacco-system works
Umoja SACCO is a role-based web system for member savings, deposits, loans, and administration. Staff register members and record deposits; accountants verify deposits and record repayments; loan officers review applications; members track balances and apply for loans; administrators manage accounts and audit activity. React screens call an Express API, which uses MySQL for persistent records. The sampled code supports the loan repayment flow and API routing; other feature links reflect README documentation and the source index, not inspection of those implementations.
Main entry points: api.js API client · server.js API router · loans.js Loan routes · auth.js Login and reset
Components 28
Web application
- Member services
frontend/src/Pages/MemberDashboard.jsx - Member registration
frontend/src/Pages/RegisterMember.jsx - Deposit entry
frontend/src/Pages/RecordDeposit.jsx - Deposit verification
frontend/src/Pages/VerifyDeposits.jsx - Bank ledger
frontend/src/Pages/BankTransactions.jsx - Loan repayments
frontend/src/Pages/LoanRepayments.jsx - Application review
frontend/src/Pages/PendingApplications.jsx - Admin console
frontend/src/Pages/admin - API client
frontend/src/api.js
API and access
- API router
backend/src/server.js - Login and reset
backend/src/routes/auth.js - Token and roles
backend/src/auth.js - Request validation
backend/src/util.js
SACCO operations
- Member routes
backend/src/routes/members.js - Deposit routes
backend/src/routes/deposits.js - Loan routes
backend/src/routes/loans.js - Bank routes
backend/src/routes/bank.js
Administration
- Admin routes
backend/src/routes/admin.js - Audit trail
backend/src/audit.js
Persistent data
- Database access
backend/src/db.js - SACCO database
database/Umoja_sacco_db.sql - Procedures and triggers
database - Member dashboard view
database/View_MemberDashboard.sql
Other components
- Staff
- Accountant
- Member
- Loan officer
- Administrator
Connections 36
- Staff → Member registration: registers
README.md - Staff → Deposit entry: records
README.md - Accountant → Deposit verification: verifies
README.md - Accountant → Bank ledger: maintains
README.md - Accountant → Loan repayments: records
README.md - Member → Member services: views
README.md - Member → Application review: applies
README.md - Loan officer → Application review: decides
README.md - Administrator → Admin console: manages
README.md - Member registration → API client: submits via
frontend/src/Pages/RegisterMember.jsx - Deposit entry → API client: submits via
frontend/src/Pages/RecordDeposit.jsx - Deposit verification → API client: submits via
frontend/src/Pages/VerifyDeposits.jsx - Bank ledger → API client: requests via
frontend/src/Pages/BankTransactions.jsx - Loan repayments → API client: requests via
frontend/src/Pages/LoanRepayments.jsx - Application review → API client: requests via
frontend/src/Pages/PendingApplications.jsx - Member services → API client: requests via
frontend/src/Pages/MemberDashboard.jsx - Admin console → API client: requests via
frontend/src/Pages/admin/Reports.jsx - API client → API router: calls
README.md - API router → Login and reset: routes
backend/src/server.js - API router → Member routes: routes
backend/src/server.js - API router → Deposit routes: routes
backend/src/server.js - API router → Loan routes: routes
backend/src/server.js - API router → Bank routes: routes
backend/src/server.js - API router → Admin routes: routes
backend/src/server.js - Loan routes → Token and roles: checks access
backend/src/routes/loans.js - Login and reset → Token and roles: authenticates
backend/src/routes/auth.js - Loan routes → Database access: queries and transacts
backend/src/routes/loans.js - Login and reset → Database access: queries
backend/src/routes/auth.js - Admin routes → Database access: queries
backend/src/routes/admin.js - Loan routes → Audit trail: records actions
backend/src/routes/loans.js - Login and reset → Audit trail: records actions
backend/src/routes/auth.js - Loan routes → Request validation: validates input
backend/src/routes/loans.js - Database access → SACCO database: connects to
backend/src/db.js - Loan routes → Procedures and triggers: calls approval procedure
backend/src/routes/loans.js - Loan routes → SACCO database: reads and writes
backend/src/routes/loans.js - Member routes → Member dashboard view: uses dashboard data