X-Passport
Event management with QR check-in, attendee tracking, and separate roles for organizers, checkers and sales.
2025 — 2026 · Solo build — schema, API, auth, and permissions.
The problem
Event day is the hard part. Organizers publish and edit, staff at the door scan and check people in, and sales need attendee data afterwards — three very different jobs that usually get squeezed into one admin login.
What it does
A complete backend built end to end in about three months: event lifecycle, QR generation and check-in, granular multi-role accounts, notifications and file uploads.
Engineering decisions
Roles modelled as permissions, not as three logins
A checker at the door and a sales user need almost disjoint access to the same event. Modelling that as granular permissions rather than three fixed account types meant the awkward real cases — an organizer who also checks people in — didn't need a fourth role invented for them.
Check-in written to be safe to retry
Door scanning happens on venue wifi, which means duplicate requests and half-finished ones. Check-in is written so that scanning the same code twice is a no-op rather than a second entry, because staff retrying a scan is the normal case, not the exception.
Where it landed
- Event lifecycle, QR check-in and attendee tracking shipped end to end
- Three role types over one permission model
- Built solo in roughly three months