← Selected work04 / 12

2024 · Event ticketing & organiser operations · .NET 9 · Angular · zotic.net

Zotic

Ticketing for Saudi venues that wanted to stop paying Eventbrite up to 10% a ticket.

  • 228 API endpoints
  • 46 domain entities
  • 82 permissions · 17 groups
  • 30+ Flutter screens
Zotic public event discovery page with featured events
Attendee side: event discovery.

The problem

Event companies were paying global platforms 3–10% of every ticket, for weak Arabic, no local payment methods and no ownership of their own customer data. Nothing verified a ticket at the gate, which cost another 5–15% to fraud. A custom build had been quoted at $100K and a year.

What we built

One multi-tenant platform covering three event shapes: sports matches with teams, championships and stadium layouts; conferences with tracks, sessions and speakers; and everything else. Pricing by category, seat assignment, bulk ticket ranges, and a gift flow where a ticket can be sent, accepted, rejected or left to expire.

The part that pays for itself is the gate. Every ticket carries an AES-256 encrypted QR that staff scan from the phone or the dashboard. A forged code fails, and a ticket gets in once: scan it again, original or screenshot, and the gate shows when it was first used.

Inside the system

  • Telr in SAR with webhook callbacks and automatic reservation expiry on abandoned carts.
  • Gift tickets cleaned up by Hangfire when nobody responds.
  • 82 permissions across a 91-component organiser dashboard.
  • 30+ screen Flutter app for browsing, purchase, QR display and gifting.
  • Live availability over SignalR, push over Firebase, Arabic and English with SSR.

Screens