🎬 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