Non-profit / Events
Registration, Payment and Check-in Platform for a Charity Race
Registration, payment confirmation and race-day check-in ran through one system with a full audit trail.
- 1,350
- Participants registered
- 94%
- Payments confirmed automatically
- Under 20 seconds
- Check-in per participant
- 10 weeks
- Delivered in
The challenge
A solidarity race with individual, school and company participants needed to take registrations, confirm payments and donations, issue invoices, hand out kits and check people in on the day. A single event date with many people arriving at once does not work with spreadsheets and manual follow-up.
The delivery strategy
Requirements were written first as a register of use cases and functional and non-functional requirements, with UML diagrams and a release plan. Open questions, such as who scans the QR code at pickup, were recorded explicitly rather than guessed. Delivery was sequenced so registration and payment were solid before pickup and check-in.
The solution
A NestJS, Prisma and PostgreSQL API handling event configuration, three registration profiles, webhook-confirmed payments, kilometre-framed donations, invoices, QR codes for pickup and attendance, a volunteer pipeline and bulk messaging. Back-office access uses four roles with a rank hierarchy, TOTP two-factor authentication, audit logs and refresh-token rotation. A WhatsApp chatbot consumes the same API.
The impact
1,350 participants registered, 94% of payments were confirmed automatically without manual follow-up, and race-day check-in took under 20 seconds per person from a scanned QR code. Delivered in 10 weeks with 173 endpoints and 85 automated test files.