MukeshStorge / MTBS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MTBS - Movie Ticket Booking System

Table of Contents
  1. About The Project
  2. HLD - High Level Design
  3. LLD - Low Level Design
  4. Points to Highlight
  5. API Endpoints and Docs
  6. License

About The Project

Movie ticket booking system with below features,

image

Tech Stack

  • Java 8 (Pre-Install)
  • Redis (Pre-Install)
  • Maven (Pre-Install)
  • Postgresql (Pre-Install)
  • Spring Boot 2.4.5
  • Lombok
  • OpenAPI

HLD

image

LLD

Redis Data Model

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

image

ER-Diagram

image

API Endpoints and Docs

Note:

Ticket booking endpoint & Sample request:

**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 } }

Points to Hightlight

  • It supports multiple Theaters and Screens.
  • Used disjoint set for concurrent request prioritizing.
  • Configurable errors and logs.

License

Distributed under the MIT License. See LICENSE for more information.

About

License:MIT License


Languages

Language:Java 88.0%Language:PLpgSQL 12.0%