Overview
A fully functional ticket management platform built in C# and .NET, covering the complete lifecycle of event ticketing: event creation, seat configuration, ticket purchasing, order management, and a reporting layer for event organizers.
Problem
The brief was open-ended: build a meaningful application demonstrating applied programming skills. Ticketing forces real complexity — seat availability, purchase state, role separation — without being abstract.
Architecture
Structured around three distinct user roles: Admin, Organizer, and Buyer. Each role has a clearly scoped interface and permission set enforced at the service layer.
Technical challenges
The most interesting problem was preventing double-booking. I implemented a reservation hold pattern — temporarily locking seats during checkout — so availability is accurately reflected in real time.
Building the RBAC system cleanly was the other challenge. Rather than scattering permission checks across the UI, I centralized them in service-layer guards.
I chose a domain with inherent concurrency challenges so that solving them would demonstrate more than just CRUD competency.