How iandolalaina/microfinnance works
This is a Laravel cooperative-finance application: members request savings accounts or loans, agents review requests, and members make deposits or repayments. The documented savings flow includes MVola confirmation, private PDF receipts, withdrawals, and notifications; the loan code supports group-backed requests, review, schedules, and payment application. The README also describes targeted announcements and Web Push. The graph uses the supplied excerpts, source-index references, and README; unverified review and notification dispatch links are dashed rather than asserted.
Main entry points: PaymentConfirmationService.php Payment confirmation · Payment.php Payments and schedules · ClientDepositRequest.php Savings requests · AgentDepositReview.php Account and withdrawal review
Components 24
Member access
- Login and registration
app/Http/Controllers/Auth - Client dashboard
app/Livewire/ClientDashboard.php
Savings payments
- Savings requests
app/Livewire/ClientDepositRequest.php - Account and withdrawal review
app/Livewire/AgentDepositReview.php - MVola adapter
app/Services/Mvola - MVola webhook
app/Http/Controllers/Api/MvolaWebhookController.php - Payment confirmation
app/Services/PaymentConfirmationService.php - Receipt download
app/Http/Controllers/ReceiptController.php
Loan servicing
- Loan request
app/Livewire/ClientLoanRequest.php - Loan review
app/Livewire/LoanRequestReview.php - Loan calculations
app/Services/LoanService.php - Loan payments
app/Livewire/ManualLoanPayment.php
Member communications
- Announcements
app/Services/AnnouncementDeliveryService.php - Push subscriptions
app/Http/Controllers/PushSubscriptionController.php - Payment SMS listener
app/Listeners/SendPaymentReceivedSms.php
Finance records
- Payments and schedules
app/Models/Payment.php - Savings accounts
app/Models/SavingsAccount.php - Loans and schedules
app/Models/Loan.php - Users and groups
app/Models/User.php - Payment received event
app/Events/PaymentReceived.php
Other components
- Member
- Agent
- MVola
- Push service
Connections 34
- Member → Login and registration: signs in
app/Http/Controllers/Auth/LoginController.php - Agent → Login and registration: signs in
app/Http/Controllers/Auth/LoginController.php - Member → Client dashboard: views activity
- Member → Savings requests: requests savings
README.md - Savings requests → Savings accounts: creates and reads
app/Livewire/ClientDepositRequest.php - Savings requests → Payments and schedules: creates payments
app/Livewire/ClientDepositRequest.php - Savings requests → MVola adapter: starts deposit
app/Livewire/ClientDepositRequest.php - MVola adapter → MVola: initiates payment
README.md - MVola → MVola webhook: sends callback
README.md - MVola webhook → Payments and schedules: looks up payment
app/Http/Controllers/Api/MvolaWebhookController.php - MVola webhook → Payment confirmation: confirms payment
app/Http/Controllers/Api/MvolaWebhookController.php - Payment confirmation → Payments and schedules: updates payment
app/Services/PaymentConfirmationService.php - Payment confirmation → Loans and schedules: applies loan payment
app/Services/PaymentConfirmationService.php - Payment confirmation → Payment received event: dispatches event
app/Services/PaymentConfirmationService.php - Payment confirmation → Receipt download: stores receipt
- Member → Receipt download: downloads receipt
README.md - Agent → Account and withdrawal review: reviews requests
README.md - Account and withdrawal review → Savings accounts: approves accounts
- Account and withdrawal review → Payments and schedules: records withdrawals
- Member → Loan request: requests loan
- Loan request → Loans and schedules: reads loan options
app/Livewire/ClientLoanRequest.php - Loan request → Loan calculations: submits loan
app/Livewire/ClientLoanRequest.php - Loan calculations → Loans and schedules: creates schedules
app/Services/LoanService.php - Agent → Loan review: reviews loan
- Loan review → Loan calculations: processes review
- Member → Loan payments: makes repayment
- Loan payments → Payments and schedules: records payment
- Payment received event → Payment SMS listener: triggers listener
app/Providers/AppServiceProvider.php - Agent → Announcements: publishes notice
README.md - Announcements → Member: delivers notice
README.md - Member → Push subscriptions: enables notifications
README.md - Push subscriptions → Push service: registers endpoint
- Announcements → Push service: sends push
README.md - Push subscriptions → Users and groups: stores subscription
app/Http/Controllers/PushSubscriptionController.php