https://github.com/sayantand99/system-design-bookmyshow
Book My Show System Design
https://github.com/sayantand99/system-design-bookmyshow
bookmyshow java low-level-design machine-coding spring-boot system-design
Last synced: 8 months ago
JSON representation
Book My Show System Design
- Host: GitHub
- URL: https://github.com/sayantand99/system-design-bookmyshow
- Owner: SayantanD99
- Created: 2024-04-12T15:24:19.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-19T03:14:09.000Z (about 1 year ago)
- Last Synced: 2025-02-03T15:53:38.755Z (9 months ago)
- Topics: bookmyshow, java, low-level-design, machine-coding, spring-boot, system-design
- Language: Java
- Homepage:
- Size: 98.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# System-Design-BookMyShow
This repository contains a simplified version of Book My Show system, an online platform for booking entertainment tickets.
This project aims to replicate core functionalities such as user authentication, seat selection, and payment processing.
## Design Book My Show
### Requirements :
Build an online movie ticket booking system that can support the following requirements:
- Support for multiple cities
- Each City will have multiple cinemas
- Each cinema can have multiple halls
- Each hall will play one movie at a time
- A cinema will play multiple movies
- Each hall can have multiple types of seats:
- Gold
- Diamond
- Platinum
- Allow the user to search a movie by name
- Allow the user to filter movies by the following fields:
- Location
- Cinema
- Language
- Rating
- Category
- Each movie can have multiple slots
- Users can book tickets and pay via multiple payment methods:
- UPI
- Credit Card
- Net Banking
- A user can apply a coupon or a promo code at checkout
- A user can see the availibility of seats in a hall
- The price of a ticket will be decided by multiple parameters:
- Seat Type
- Day of the week
- Time of the Day
- Movie
- Cinema Hall
- A user can also cancel or update booking
- A user cannot book or cancel after the cutoff time which is 1 hour before movie starts
### Class Diagram :

### Technologies Used
- **Spring Boot**: For creating stand-alone, production-grade Spring-based applications.
- **Java**: As the main programming language.
- **Model-View-Controller (MVC)**: For separating the application's concerns.
- **MySQL**: For database management.
- **Java Persistence API (JPA)**: For ORM-based data access.
### Features
- **User Authentication**: Secure sign-in and sign-up processes.
- **Seat Booking**: Real-time seat selection and booking.
- **Payment Gateway**: Integrated system for processing payments.