SparkFund
SparkFund started as an assigned coursework project — build a crowdfunding and donation system. Before development began, we had to submit a proposal defining our own approach to the brief. R
The Problem
SparkFund started as an assigned coursework project — build a crowdfunding and donation system. Before development began, we had to submit a proposal defining our own approach to the brief. R
The Approach
Built on Laravel with a proper service layer separating concerns — CampaignService, PaymentService, and NotificationService — instead of pushing logic into controllers. Campaign lifecycle eve
The Outcome
Shipped and presented well to panels, with the full donor and campaign-organizer flow working end to end — campaign creation, category browsing, real PayMongo payment processing (GCash/PayMay
Critical Challenges
Reconciling asynchronous payment confirmation
PayMongo's checkout flow doesn't confirm a payment synchronously with the donation request; the actual confirmation comes back through a separate webhook after the donor completes authorizati
Supporting anonymous donations without breaking donor contact
the donation form requires an email and name, but donors can also choose to donate anonymously, meaning there's no linked user account for that donation. Rather than making the anonymous flag