Table of Contents
Movie ticket booking system with below features,
- Java 8 (Pre-Install)
- Redis (Pre-Install)
- Maven (Pre-Install)
- Postgresql (Pre-Install)
- Spring Boot 2.4.5
- Lombok
- OpenAPI
Below selected Redis ID is a combination of TheaterId+ShowId+ScreenId+SeatId+Time With MilliSecond. Used to group the concurrent request for that moment. This will be helpfull to find the concurrency by taking the disjoint set using union find. This data will be eventually evicted from system. Refer: RedisConfig.java
- Sample Data added for Users, Theaters, Branches, Screens, Shows, Seats, Movies !!!. Refer: Data.sql
- To change DB config/App port/Max seat size/Log path/Redis port/bucket. Refer: Application.properties
- Use Swagger Ui http://localhost:8081/swagger-ui.html to access APIs.
- Module based package grouping done for readablity.
- Start with ReservationController.java for ticket booking logic.
**Post:** http://localhost:8081/reserve/
{ "theaterId": 1, "branchId": 1, "screenId": 1, "seatIds": [ 1,2 ], "user": { "id": 1, "firstName": "Doni", "lastName": "Singh", "email": "doni@gmail.com", "activeStatus": true } }
- It supports multiple Theaters and Screens.
- Used disjoint set for concurrent request prioritizing.
- Configurable errors and logs.
Distributed under the MIT License. See LICENSE for more information.