Loading EpicKod...
Building digital excellence
An NGO and microfinance management platform that replaced spreadsheets and paper files with a single system for beneficiaries, loans, donations, and finances.

Ummeed Esperanza (“hope” in Urdu and Spanish) is a non-profit in Mandi Bahauddin, Pakistan, running business loan programs, student fee support, sponsorships, and community welfare programs.
We built and continue to maintain the organization's operating system: a web platform that manages the full lifecycle of a beneficiary — from registration and loan disbursement to installment collection — alongside donors, sponsors, staff, assets, and the organization's books.
Core goals:
Registrations, loans, installments, donations, sponsorships, and staff records were spread across spreadsheets and paper — with no single source of truth.
Producing a balance sheet or a loan status report meant manually consolidating records, taking hours for every report.
Manually tracked installment and donation records drifted out of sync, making it hard to know what each beneficiary actually owed.
Without timestamped transactions and running balances, verifying historical activity for donors and management was difficult.
The system had to be usable by field workers and office staff, so workflows had to mirror how the organization already operates.
The platform started on Laravel 8 and Vue 2. Keeping it secure and maintainable meant a full framework migration without losing years of live data.
A Vue 3 + Vuetify 3 SPA served by Laravel, giving staff a fast, app-like interface with Pinia state and router guards that verify the session on every navigation.
51 API endpoints across 20 controllers, all business logic behind an authenticated /api layer using Eloquent ORM and the query builder.
A MySQL schema managed through 24 migrations covering people, loans, installments, cashbooks, accounts, donations, sponsorships, employees, and assets.
Token-based auth with database-stored expiry, a dedicated token-expiry middleware, a rate-limited login endpoint, and secure password changes.
19 dedicated Form Request classes validate every write, keeping financial and beneficiary data consistent at the API boundary.
Branded PDF statements (DomPDF on the server, jsPDF + autoTable in the browser) and SheetJS Excel exports on every major data view.
Complete beneficiary profiles with photos, guardian and granter details, family and business records, document attachments, and a printable PDF profile — with full loan and installment history on one screen.
Loan creation and disbursement with amount and duration, generated loan invoices, and return processing — linked directly to the beneficiary and the organization's cashbook.
Installment payments recorded against each loan, with payable vs. paid installment reports and expected receivables so field staff know exactly what is due and what has been collected.
Cash, bank, and mobile-wallet accounts with categorized income and expense entries, per-transaction running balances, inter-account transfers, and date-range filtering.
Donor records and contribution history, sponsors linked to beneficiaries, sponsorship payment tracking, and duration-based sponsor reports for donor accountability.
Balance sheet, trial balance, and cash summary generated from the recorded transactions — replacing hours of spreadsheet reconciliation.
Employee records with monthly salary payments, an organizational asset register, and office inventory — each with date filters and exports.
KPI cards, loan recovery and loans-vs-collections charts, plus yearly, monthly, combined, installment, donation, and sponsor reports — all exportable to branded PDF and Excel.
The platform has been in use since 2022. Rather than rewrite it, we upgraded the entire stack in place while keeping existing data and schema contracts intact.
PHP 7.4 → 8.2, updated middleware, providers, and exception handling; deprecated packages removed.
Vue Router 3 → 4, Vuex → Pinia, Vuetify 2 → 3 across every view and layout.
Webpack/Laravel Mix replaced with Vite 6 and code-split production bundles.
Legacy table and column names kept as schema contracts, so no historical records were lost.
Modules mirror real NGO operations — registration, loans, installments, donors — so non-technical staff adopt the system without retraining their thinking.
Donors, auditors, and management live in PDF and Excel. Making every major view exportable was essential, not optional.
Shipping incrementally and gathering feedback from the people using it kept each module grounded in actual daily workflows.
A careful in-place migration to Laravel 11 and Vue 3 modernized the platform while protecting years of operational data.
From NGOs and microfinance programs to growing businesses, we build management platforms that replace spreadsheets with systems your team can rely on.