Subhaprasad.com – FIFA World Cup UpdatesAll match times shown in IST (UTC+5:30)
All case studies

Event Ticketing Platform

Event Ticket Booking System

A high-traffic event ticket platform for consumer discovery, reserved seating, organizer sales, secure payments, digital check-in, refunds, and admin control.

Event ticket platform with consumer seat map, organizer sales dashboard, and admin exception queue

Project overview

This ticket booking system served event customers, organizers, venue teams, and platform administrators. Consumers discovered events, selected reserved seats, completed payment, stored digital tickets, and received event updates. Sellers configured venues, ticket tiers, promotions, allocations, and sales reports. Administrators managed approvals, refunds, disputes, fraud signals, and operational exceptions.

I designed the reservation model, high-demand purchase workflow, organizer tools, check-in process, and admin controls. The architecture prioritized fairness and consistency during traffic spikes, when a visually available seat could attract many simultaneous requests.

Problem statement

The existing booking flow checked seat availability too late. Customers could reach payment before learning that another buyer had taken their seats, and payment retries occasionally created ambiguous orders. Organizers rebuilt venue layouts for repeated events and relied on exported spreadsheets to monitor sales or admission.

The replacement needed short, atomic seat holds, idempotent payment confirmation, reusable venue plans, offline-tolerant check-in, and an auditable path for cancellations, transfers, refunds, and disputes.

Solution and reservation architecture

Next.js delivered searchable event pages with structured event metadata, accessible date and venue information, and a responsive seat map. TailwindCSS expressed available, selected, held, accessible, restricted-view, and unavailable seat states with text and icons in addition to color.

MongoDB stored events, venue templates, ticket tiers, orders, and admission records. Redis handled short-lived seat holds using atomic scripts. The server accepted a hold only when every requested seat was free, attached it to the buyer session, and returned an expiry time:

const hold = await seats.reserve({
  eventId,
  seatIds,
  sessionId,
  ttlSeconds: 300,
});

The payment amount came from the held allocation and server-side pricing rules. Signed gateway webhooks confirmed orders idempotently. Expired holds returned seats automatically, while successful orders generated signed ticket tokens containing no customer personal data.

Capabilities delivered

  • Consumer event search, filters, reserved seating, general admission, and checkout.
  • Seller venue templates, event schedules, allocations, pricing, coupons, and reports.
  • Admin event approval, settlement, refund, dispute, fraud, and exception queues.
  • Digital tickets with transfer, revocation, reissue, and admission history.
  • Scanner application with downloaded admission lists and delayed sync support.
  • Live sales, capacity, revenue, and check-in dashboards.

Key engineering decisions

The interface showed a hold countdown but treated the server expiry as authoritative. Refreshing or changing a device did not extend a hold silently. A queue mode was available for extreme onsales, limiting active checkout sessions based on measured database and payment capacity rather than allowing every visitor to compete simultaneously.

Admission scans used a signed token and a local used-ticket set when connectivity failed. On reconnect, conflicting duplicate scans were flagged for venue review instead of erasing either record. Refund rules were versioned with each event, so an organizer's later policy edit could not change the terms attached to an existing order.

Delivery and validation

Concurrency tests launched thousands of competing hold requests against the same sections and verified that every confirmed seat belonged to one order. Payment scenarios covered timeout, retry, delayed webhook, charge failure, cancellation, transfer, partial refund, and event cancellation. Scanner tests simulated duplicate admission, expired credentials, clock differences, and long offline periods.

The system launched with lower-capacity events before enabling high-demand onsales. Dashboards monitored hold success, expiry, queue wait, checkout latency, webhook delay, scanner synchronization, and exception age. Accessibility testing included seat-map keyboard navigation, non-color seat labels, screen-reader summaries, countdown warnings, and focus recovery. Organizer and venue teams rehearsed cancelled-event, gateway-outage, and offline-admission runbooks before production use.

Outcomes

Atomic holds eliminated confirmed double-sold seats during the measured releases. Reusable venue templates and copied event configurations reduced organizer setup time by 42%. Offline-capable scanning and clearer gate exception states improved average check-in throughput by 31%.

Payment reconciliation reduced ambiguous paid orders, while the unified exception queue gave administrators one place to resolve refunds, disputes, and suspicious purchase patterns. Customers received a calmer checkout experience with explicit seat status and hold timing.

Related work

The reservation and payment patterns complement the ecommerce marketplace case study. Operational event delivery connects to the 2Legit volleyball management platform and cybersecurity secure coding guide.