This repository was archived by the owner on Oct 25, 2026. It is now read-only.
Repository navigation
Home
Syed Ahmer Shah edited this page Oct 25, 2026
·
4 revisions
BookMyMovie is an open-source cinema ticketing platform for Pakistan, built with Laravel 12, React 19, Inertia 2, TypeScript and Tailwind CSS 4. Visitors browse films, watch trailers, pick seats on a live seat map (or from inside a 3D model of the hall), add snacks and get a signed QR e-ticket that works offline and goes into Apple or Google Wallet.
Status: complete as a portfolio project. Latest release: v1.0.2. It isn't hosted; clone it and run it locally.
| Page | What it covers |
|---|---|
| Getting started | Requirements, install, seed data, queue worker and scheduler |
| Docker | Production-style stack with MySQL, Redis, a queue worker and the scheduler |
| Configuration | Every optional .env feature: payments, wallets, reCAPTCHA, web push, social sign-in |
| Architecture | How the browser, Laravel, MySQL, the cache and the queue fit together |
| Booking and locking | Seat holds, checkout, status transitions and why a seat can't be sold twice |
| Caching and performance | The five cache layers, image and trailer delivery, code splitting |
| SEO | Title and description limits, JSON-LD, sitemap, robots.txt and llms.txt |
| Testing | Test suite, the 15-user load test, the admin sweep and the security probe |
| Security | Headers, rate limits, bans, captchas, 2FA, signed QR codes |
| Box office guide | The admin area: roles, analytics, refunds, ticket check, audit log |
| Film media | Adding posters, backdrops and trailers for a film |
| FAQ | Common questions about running and changing the project |
| Write-ups | Project page, case study and security write-up |
- BookMyMovie project page
- Case study: building a cinema ticketing platform
- One seat, two buyers: race conditions, IDOR and keys in BookMyMovie
- README with the full data model (ERD)
Built by Syed Ahmer Shah. MIT licence.
BookMyMovie · MIT licence · by Syed Ahmer Shah · Project page
Run it
How it works
Operate it
Read more