projects

FraserTickets

2024

An online ticketing platform for John Fraser Secondary School's student activity council, used across five school events. It handled and scanned over a thousand tickets worth more than $35,000, peaking at 330 people on it at once.

The FraserTickets landing page

What it does

  • Students browse events and pull their ticket up on a phone
  • Organisers create events, issue tickets, and look one up at the door
  • Every scan is recorded against the ticket, up to a limit set per ticket (ex. preventing re-entry)
  • A ticket past its limit is refused, showing the reason to the person scanning

Tickets before accounts

An issue that arose was that students may have not signed into the platform before buying a ticket externally. As such, a ticket can be issued against a student number before that student logs into the site. It sits queued until they sign in for the first time, attaching itself to their account then.

Scanning at the door

Door scanning can't be slow, since the consequence is making people wait unnecessarily. The auth middleware originally verified every JWT with a network request on every call. By switching to local verification and only keeping revocation checks on sensitive operations, ticket scans went from around 200ms to under 5ms.

Next.js · Go · Chi · TypeScript · MongoDB · Tailwind CSS · Google Cloud · Oracle Cloud · Docker