TicketHub — Event Ticket Booking Platform

Symfony

TicketHub — Event Ticket Booking Platform

INR 34900

TicketHub is a multi-role event ticket booking platform (BookMyShow-style) with public event browsing, a user booking flow, an organizer event-management console, and a full admin backend. Payments run on an internal virtual-credits ledger, so no live payment gateway is required. The project is engineered around real concurrency problems: two buyers can never grab the same seat, tiers never oversell, and flash-sale windows are enforced on the server.

SKUTICKETHUB-SYM-001 FrameworkSymfony DeliveryInstant download SupportPPT + setup docs
Login To Buy
Try the live demo:

Login is required before purchase so downloads can be attached to your account. Digital purchases are covered by our Refund & Cancellation Policy.

Architecture

Single Page Application: a React 19 frontend calls a Symfony 7 REST API under /api/*, authenticated with JWT. Five layered concurrency safeguards (optimistic locking, soft-lock reservations, unique constraints, pessimistic locking on checkout, and server-side flash-sale time checks) prevent overselling under concurrent load.

Project Includes

JWT auth with 3 roles Flash-sale ticket tiers Cart with 10-min seat holds PDF e-tickets + QR codes Organizer check-in scanner Waitlist & refunds Admin dashboard + error logs cPanel-ready demo-mode branch

Modules

  • Auth Module — Separate user/organizer register flows, JWT login, email verification, forgot/reset password, organizer approval workflow, and rate limiting on login and register.
  • Events Module — Event CRUD with banner upload, categories, venue/online events, status tracking, full-text search (PostgreSQL tsvector with MySQL LIKE fallback), filters, and SEO-friendly slugs.
  • Ticket Tiers & Pricing — Multiple tiers per event (VIP, General, etc.), server-enforced flash-sale windows, base price + fee calculation, and optimistic locking via a version column.
  • Cart & Checkout — 10-minute soft-lock seat reservations, live available-seat calculation, pessimistic row locking on checkout credits, idempotency keys against duplicate bookings, and cron-based release of expired holds.
  • E-Ticket Module — Automatic PDF ticket generation (Dompdf) with a unique QR code per ticket (Endroid), downloadable from the user account.
  • Check-In Module — Live in-browser QR scanner for organizers, duplicate check-in protection, and check-in history.
  • Waitlist Module — Users join a waitlist on sold-out tiers and get an email notification automatically when a seat frees up.
  • Refunds & Cancellation — Admin-triggered refunds with a transaction audit log, plus automatic mass refund and email on event cancellation.
  • Admin Module — Cached stats dashboard, organizer approve/reject workflow, user/category/event management, an error-log viewer, and administrator management.
  • Demo Mode (cPanel branch) — Optional DEMO_MODE flag adds a warning banner and one-click demo credential fill, and blocks destructive admin/organizer actions for public demo deployments.

Database Tables (14)

  • users — All accounts (user/organizer/admin), credits, verification tokens
  • organizer — Organizer profile and approval status
  • category — Event categories
  • events — Events: venue, datetime, status, banner, slug
  • ticket_tier — Tiers per event: price, seats, sold count, sale window, version lock
  • seat — Numbered seats for assigned-seating events
  • seat_reservation — 10-minute cart holds: status and expiry
  • booking — Confirmed bookings: idempotency key, total credits
  • booking_item — Tier line items within a booking
  • e_ticket — QR token, PDF path, check-in timestamp
  • transaction — Credits audit log: purchases and refunds
  • waitlist — Sold-out tier waitlist entries
  • error_log — API exception log, reviewed from the admin panel
  • messenger_messages — Async queue storage (cPanel branch: DB-backed, replaces RabbitMQ)

How To Run Locally

  1. Requirements — PHP >= 8.2, Composer 2, Node.js 20+, and Docker + Docker Compose (for local Postgres, RabbitMQ, Redis and Mailhog).
  2. Get the code — Unzip the delivered source archive (main branch) and cd into the project folder.
  3. Start local services — docker compose up -d — boots PostgreSQL 16, RabbitMQ, Redis and Mailhog for local development.
  4. Configure environment — cp .env .env.local, then set DATABASE_URL, JWT_PASSPHRASE, MESSENGER_TRANSPORT_DSN and MAILER_DSN=smtp://mailhog:1025 in .env.local.
  5. Install PHP dependencies — composer install
  6. Generate JWT keypair — php bin/console lexik:jwt:generate-keypair
  7. Run migrations and demo fixtures — php bin/console doctrine:migrations:migrate --no-interaction && php bin/console doctrine:fixtures:load --no-interaction — seeds the 18 demo accounts across 21 events.
  8. Build frontend assets — npm install && npm run watch — Webpack Encore compiles the React 19 SPA into public/build and rebuilds on file changes.
  9. Serve the app — symfony server:start (or php -S 127.0.0.1:8000 -t public) and open http://localhost:8000.
  10. Start the async worker — php bin/console messenger:consume async -vv — handles waitlist emails and expired seat-hold release.
  11. Log in and explore — Use the seeded Admin, Organizer and User demo accounts above to walk through each role.
  12. Deploying without Docker (cPanel) — Switch to the included cpanel-demo branch — it needs none of the Docker services above (filesystem cache + DB-backed Messenger transport instead of RabbitMQ/Redis); follow the bundled step-by-step cPanel deployment guide.

Delivery Details

Includes full Symfony + React source (main branch), MySQL and PostgreSQL schema/data SQL, a step-by-step cPanel deployment guide, and demo data fixtures (18 seeded accounts across 21 events).

  • Source code archive: Available after payment
  • PPT / presentation: Available after payment
  • Live preview: Available
  • Documentation: Not configured yet

Technical Summary

  • ProductTicketHub — Event Ticket Booking Platform
  • FrameworkSymfony
  • SKUTICKETHUB-SYM-001
  • PriceINR 34900
  • StatusAvailable

Tech Stack

Backend

  • PHP >= 8.2
  • Symfony 7.0.10
  • Doctrine ORM 3.6.3
  • Doctrine DBAL 4.4.3
  • Lexik JWT Bundle 3.2.0
  • Dompdf 3.1.5
  • Endroid QR Code 6.0.9
  • Vich Uploader 2.9.2
  • Twig 3.24.0
  • Nelmio CORS 2.6.1
  • Symfony Messenger 7.0
  • Symfony Rate Limiter 7.0

Frontend

  • React 19.2.5
  • React Router DOM 7.14.1
  • Axios 1.15.0
  • Tailwind CSS 4.2.2
  • Lucide React 1.8.0
  • html5-qrcode 2.3.8
  • Webpack Encore 6.0.0

Database

  • PostgreSQL 16 (local dev)
  • MySQL / MariaDB (cPanel deployment, same codebase)
  • 14 tables

Dev Infrastructure

  • Docker Compose: PostgreSQL, RabbitMQ, Redis, Mailhog (local only)
  • cPanel branch needs none of the above — filesystem cache + DB-backed queue