🎬 Movie Ticket Booking System
UML Diagrams (Class, Sequence & State)
📘 UML Class Diagram
classDiagram
class Movie {
movieId : String
title : String
genre : String
duration : int
}
class Seat {
seatNumber : String
isBooked : boolean
}
class Screen {
screenId : String
}
class Theatre {
theatreId : String
location : String
}
class Show {
showId : String
showTime : String
}
class Customer {
customerId : String
name : String
phone : String
}
class Booking {
bookingId : String
totalAmount : double
}
Screen *-- Seat : contains
Theatre o-- Screen : has
Show -- Movie : plays
Show -- Screen : scheduled on
Booking -- Customer : made by
Booking -- Show : for
📙 UML Sequence Diagram
sequenceDiagram
actor Customer
participant App as Main App
participant Movie
participant Theatre
participant Show
participant Seat
participant Booking
Customer->>App: Search Movie
App->>Movie: getMovieDetails()
Movie-->>App: movieInfo
Customer->>App: Select Show
App->>Theatre: getShows()
Theatre-->>App: showList
App->>Show: getShowDetails()
Show-->>App: showInfo
Customer->>App: Select Seats
App->>Seat: checkAvailability()
Seat-->>App: availableSeats
Customer->>App: Confirm Booking
App->>Booking: createBooking()
Booking->>Booking: calculatePrice()
App-->>Customer: Ticket Confirmation
📕 UML State Chart Diagram
stateDiagram-v2
[*] --> Idle
Idle --> MovieSelected : searchMovie
MovieSelected --> ShowSelected : selectShow
ShowSelected --> SeatsSelected : chooseSeats
SeatsSelected --> BookingInProgress : confirmBooking
BookingInProgress --> PaymentProcessing : proceedToPayment
PaymentProcessing --> BookingConfirmed : paymentSuccess
PaymentProcessing --> BookingFailed : paymentFailed
BookingConfirmed --> TicketGenerated : generateTicket
TicketGenerated --> [*]
BookingFailed --> Idle : retryBooking