Cinema Reservation System
Web App

Cinema Reservation System

Full-stack cinema ticket booking app where users browse movies, pick showtimes, select seats on a live grid, and hold reservations with a countdown timer.

Overview

  • Built a complete booking flow — movie browsing → showtime selection → interactive seat grid → 5-minute reservation hold with live countdown
  • Designed a Next.js catch-all API proxy (/api/proxy/[...path]) to forward authenticated requests to Django without CORS issues or django-cors-headers
  • Implemented multi-seat selection with color-coded seat statuses (available, selected, occupied, and reserved) with instant UI feedback
  • Django signal auto-generates all seats for a showtime's hall the moment a showtime is created — no manual seat management required
  • JWT authentication with 8-hour access tokens stored in cookies; proxy reads the token server-side and injects the Authorization header
  • Built a full frontend admin panel (movies, halls, showtimes) with poster image upload, live preview, and multipart form forwarding through the proxy
  • Bilingual UI (English + Persian) with full RTL layout switching powered by next-intl
  • Movie poster images served from Django's media backend with absolute URLs injected by the serializer; displayed throughout the frontend via Next.js Image