How lycorecoil/ccva-c3m works
C3M is a mobile-money payment and caisse-management system, with a customer payment portal, an offline-capable staff PWA, and a backend that also supports station/account administration, reporting, notifications, audit, and support. The customer journey is operator and service selection, payment details and OTP confirmation, then success/receipt; staff can manage caisse operations and synchronize offline payments. The tree and sampled controllers establish key responsibilities, but no README or route wiring was supplied, so uncertain frontend-to-backend and unsampled service relationships are omitted.
Main entry points: sync.controller.js Offline sync API · payment.service.js Payment processing · payment.controller.js Payment API · reports.controller.js Reports
Components 29
Customer portal
- Portal app
portail-client/src/App.jsx - Choose operator
portail-client/src/pages/ChooseOperator.jsx - Choose service
portail-client/src/pages/ChooseService.jsx - Payment details
portail-client/src/pages/PaymentForm.jsx - OTP confirmation
portail-client/src/pages/OtpConfirm.jsx - Payment success
portail-client/src/pages/Success.jsx - Portal API client
portail-client/src/services/api.service.js
Staff PWA
- Staff app
frontend-pwa/src/App.jsx - Offline entry
frontend-pwa/src/pages/OfflineEntry.jsx - Offline queue
frontend-pwa/src/offline/queue.js - PWA API client
frontend-pwa/src/services/api.service.js
Payments backend
- Offline sync API
backend/src/sync/sync.controller.js - Offline sync
backend/src/sync/sync.service.js - Caisse operations
backend/src/caisses/caisses.service.js - Payment API
backend/src/payments/payment.controller.js - Payment processing
backend/src/payments/payment.service.js - Operator adapters
backend/src/operators/operator.factory.js
Operations backend
- Authentication
backend/src/auth/auth.service.js - Accounts
backend/src/accounts/accounts.service.js - Stations
backend/src/stations - Service catalog
backend/src/services/services.service.js - Reports
backend/src/reports/reports.controller.js - Notifications
backend/src/notifications/notifications.service.js - Audit log
backend/src/audit/audit.service.js - Support tools
backend/src/support/support.service.js
Runtime infrastructure
- Database pool
backend/src/db/pool.js - Realtime sockets
backend/src/realtime/socket.js
Other components
- Customer
- Staff user
Connections 8
- Customer → Portal app: uses
- Staff user → Staff app: uses
- Payment API → Payment processing: invokes
- Offline sync API → Offline sync: invokes
- Offline sync API → Caisse operations: finds caisse
- Offline sync API → Audit log: records action
- Payment processing → Operator adapters: operator selection
- Reports → Database pool