Book My Cinema Springboot Microservices Application
The Book My Cinema project is a Spring Boot implementation of the backend APIs for a ticket booking system similar to the popular platform "BookMyShow". It provides a set of RESTful APIs that enable client applications to interact with the ticket booking system and perform various operations.
- Api Gateway: All api is routing through spring cloud gateway.
- Authentication servie: Centralized authentication server with implmententation of JWT (Register,Tokent and Validate).
- Movie Management: Admin users can add, edit, and remove movie from the system.
- Theater Management: Admin users can add, allocate seats, edit, and remove Theaters from the system.
- User Registration: Users can create an account, log in, and manage their profile information.
- Movie Management: Admin users can add, edit, and remove movie from the system.
- Theater Management: Admin users can add, allocate seats, edit, and remove Theaters from the system.
- Ticket Booking: Users can browse through the available movie, select the desired event, and book tickets for it.
- Seat Selection: Users can choose their preferred seats from the available options for a selected event.
- Booking History: Users can view their booking history and check the details of their past bookings.
- Email Notifications: Users receive email notifications for successful bookings and important updates.
- Java 17
- Spring Boot 3.2.8
- Spring MVC
- Spring Data JPA
- MySQL (as the database)
- Docker
- Kubernete
- Helm Charts
- Maven (for dependency management)
- SMTP Server (for sending email notifications)
To set up the project on your local machine, follow these steps:
- Clone the repository:
git clone https://github.com/umeshsinghse/bookmycinema.git
- Navigate to the project directory:
cd bookmycinema
- Configure the database settings in
application.yml
file. - Build the project using Maven:
mvn clean install
- Build the Docker image " Docker build . imagename.{1.0}"
- Tag the Docker image " Docker tag imagename.{1.0} imagename.{1.0}"
- Push the Docker image " Docker push imagename.{1.0}"
- Create the Helm Chart " helm create helm-bmc"
- Install the helm charts " helm install helm-bmc-service helm-bmc"
api-gateway-server - http://localhost:9000 authenticaiton-service http://localhost:9001 api-loadbalancer-server http://localhost:8761 movie-service http://localhost:8080 show-service http://localhost:8082 theater-service http://localhost:8083 ticket-service http://localhost:8084
This project uses MySQL as the database. Follow these steps to set up the database:
- Install MySQL on your local machine.
- Create a new database named bookmyshow.
- Update the database configuration in
application.properties
file.
The API documentation for this project can be found at http://localhost:8080/swagger-ui.html
. It provides detailed information about each API, including request/response formats and parameters.