Bursarly
A student payment management platform supporting online and manual payments, receipt generation, payment verification, and financial reporting.

Role & Contributions
Built a payment platform with student-facing checkout (Paystack integration), admin dashboards for multiple roles, PDF receipt generation via Puppeteer, payment verification, expense tracking, financial reporting, and resilience patterns for payment processing.
The Problem
Institutions tracked student payments with paper ledgers, causing lost records, duplicate payments, slow reconciliation, and students lacking proof of payment.
Approach
Separate student and admin experiences. Students pay online or admins record manual payments. Both receive instant PDF receipts. Admins verify, manage records, and access role-scoped financial dashboards.
Solution
Each payment stored as individual transaction. Duplicate detection via E11000 error handling. Dual-path receipt fulfillment: fast in-memory queue plus background sweep ensures no lost receipts. Fee snapshots capture pricing at transaction time.
Technical Deep Dive
Architecture
Student and admin frontends, Express API backend, MongoDB storage
React 19, TypeScript, Vite, Tailwind CSS, React Hook Form, Recharts
Node.js, Express, MongoDB, Puppeteer, Paystack API
Core Features
Online Payment Processing
Students pay via Paystack and receive instant PDF receipts
Manual Payment Entry
Admins record offline payments and generate receipts
Duplicate Payment Prevention
Students see friendly confirmation if already paid, preventing double-charges
Receipt Management
Automatic PDF generation and email delivery
Role-Based Dashboards
Different admin levels see scoped financial data
Financial Reporting
Export transaction records and reconciliation reports
Achievements
Resilient Receipt Processing
Dual-path fulfillment (fast queue + background sweep) ensures no lost receipts even if the server crashes mid-generation.
Duplicate Payment Prevention
Partial unique indexes and E11000 error handling detect duplicates safely without locks.
Fee Snapshot System
Captures pricing at transaction time, survives fee structure changes, and keeps historical accuracy.
Have a similar challenge?
Tell me what you're building, what you need help with, and where you want to take it. If it sounds like a good fit, we can talk through the next steps.