EventPass
Event discovery and booking platform with Stripe payments and role-based access.
- Role
- Solo developer (extended from a course starter project)
- Status
- In production

- Event-list queries
- from N to 1
- Duplicate bookings
- Blocked at the database level
The problem
The starter project had no payments or access control, and it ran one database query per event.
My role
I extended a course starter project with production features; the stack was fixed by the starter.
What I built
- Stripe Checkout with signed webhook verification
- Price checks on the server
- Role-based access control with NextAuth v5
- Query optimisation
Key decisions
- Checked prices on the server against the database so clients can't tamper with them.
- Replaced one query per event with a single MongoDB
$lookupaggregation. - Added a unique compound index on
(eventId, email)to block duplicate bookings.
Results
Secure payments, and event lists load with a single query.


Next projectEasyPRwire