Back to case studies Business Analysis · Product Case Study

Movie Ticket Booking

A web-based cinema platform that streamlines movie discovery, showtime selection, seat reservation, and booking confirmation while protecting seat availability and giving cinema staff structured schedule control.

RequirementsBooking RulesProcess MappingUser StoriesUse CasesTech Stack

01Business Problem & Objectives

Manual or fragmented cinema booking makes it difficult for customers to compare showtimes, identify available seats, and trust that a reservation is confirmed. Staff must answer repetitive questions and reconcile reservations against auditorium capacity.

  • Objective 1: Give customers one clear journey from movie discovery to confirmation.
  • Objective 2: Prevent the same seat from being confirmed for more than one booking.
  • Objective 3: Provide staff with structured control over movies, screens, and showtimes.
  • Objective 4: Create reliable booking records for operations and reporting.

02As-Is vs To-Be Process

As-Is: Customer checks listings separately → contacts or visits the cinema → staff checks a seating record → seats are selected and recorded manually → confirmation depends on staff availability.

To-Be: Customer browses current movies → selects cinema, date, and showtime → system displays live seat status → selected seats are held during checkout → confirmed booking updates availability → customer receives a booking reference by email.

03Functional Requirements

  • FR1: Customers can browse movies and filter available showtimes by date.
  • FR2: The system displays an auditorium seat map with available, selected, held, and booked states.
  • FR3: Selected seats are held for a defined checkout period and released if the booking is abandoned.
  • FR4: The system validates availability again before confirming a reservation.
  • FR5: Customers receive a booking reference and confirmation email after success.
  • FR6: Authorised staff can manage movies, auditoriums, showtimes, and booking status.

04Non-Functional Requirements

CategoryRequirement
ConcurrencySeat confirmation uses an atomic availability check so two customers cannot book the same seat.
PerformanceMovie, showtime, and seat data loads in under 2 seconds under normal demand.
SecurityAdministrative operations require authenticated, authorised access and validated input.
UsabilitySeat status is distinguishable by label and state, not colour alone.
ReliabilityEmail failure does not reverse a valid booking; confirmation remains available in the system.

05User Story & Acceptance Criteria

As a customer, I want the seats I select to remain temporarily reserved while I complete checkout, so that another customer cannot take them during the same transaction.

  • Given available seats, when the customer selects them, then the system places a time-limited hold and shows the remaining time.
  • Given the hold expires before confirmation, when the customer continues, then the seats are revalidated and unavailable seats cannot be purchased.
  • Given a booking succeeds, when another customer views the same showtime, then those seats appear booked.

06Use Case: Book Cinema Seats

ActorCustomer
PreconditionA published showtime has at least one available seat.
Main flow1. Select movie and showtime. 2. View the seat map. 3. Select seats. 4. System places a temporary hold. 5. Customer enters booking details. 6. System confirms availability and creates the booking. 7. Confirmation is displayed and emailed.
Alternate flowIf a seat is no longer available or the hold expires, the system returns the customer to an updated seat map.
PostconditionThe booking and seat assignments are stored with a unique reference.

Explore the original project

See the product presentation, interface, and engineering details.

View project