Daisy Foundation Africa
Live nonprofit website and donation backend — public site at daisy-website-gamma.vercel.app, with Spring Boot APIs for donor tracking, PDF receipts, and email confirmations.
- Role
- Backend lead
- Live at
- Vercel
- Stack
- Spring Boot · MySQL
- Timeline
- May 2024
Problem
The Daisy Foundation needed to track donations digitally, issue receipts donors could keep for their records, and notify contributors automatically — replacing manual spreadsheets and inconsistent follow-up.
My role
I led backend development: defined the REST API, implemented authentication, built the receipt generation pipeline, and coordinated backend tasks across the student team.
Implementation
Authentication & API security
Spring Security with JWT protected admin and donor-facing endpoints. Role-based access separated foundation staff operations from public donation flows.
Receipt pipeline
On successful contribution recording, the system generates a PDF receipt via iText with donor details and transaction metadata, then triggers email delivery through JavaMailSender.
Data model
Normalized donor, contribution, and receipt entities with transactional integrity so partial failures never left orphaned records.
Key decisions
- Server-side PDF generation for consistent receipt formatting across devices.
- Idempotent contribution endpoints to prevent duplicate records on retries.
- DTO layer between controllers and entities for stable API contracts.
Outcome
Delivered a working donation backend the foundation could operate with automated receipts and email notifications — plus a live public website at daisy-website-gamma.vercel.app for campaigns, events, and donor engagement.