{"id":24081720,"url":"https://github.com/dummumounika/bookmyshow","last_synced_at":"2026-04-07T22:31:11.127Z","repository":{"id":270449366,"uuid":"910410502","full_name":"DummuMounika/BookMyShow","owner":"DummuMounika","description":"This repository contains a fully functional microservices-based BookMyShow platform, designed for managing movie ticket bookings efficiently. This project ensures scalability, security, and reliability and to handle high traffic while maintaining system stability.","archived":false,"fork":false,"pushed_at":"2025-04-20T16:09:38.000Z","size":444,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-20T17:24:29.604Z","etag":null,"topics":["circuit-breaker","docker","docker-compose","docker-container","docker-image","eureka-discovery-service","feign-client","java","jpa-hibernate","microservice","netfix-api-gateway","postgresql-database","rate-limiting","restful-webservices","retry","spring-security","springboot","zipkin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DummuMounika.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-31T07:41:13.000Z","updated_at":"2025-04-20T16:09:41.000Z","dependencies_parsed_at":"2024-12-31T09:17:33.964Z","dependency_job_id":"b6ea537d-f054-429a-843c-f3b9db091053","html_url":"https://github.com/DummuMounika/BookMyShow","commit_stats":null,"previous_names":["dummumounika/bookmyshow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DummuMounika/BookMyShow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DummuMounika%2FBookMyShow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DummuMounika%2FBookMyShow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DummuMounika%2FBookMyShow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DummuMounika%2FBookMyShow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DummuMounika","download_url":"https://codeload.github.com/DummuMounika/BookMyShow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DummuMounika%2FBookMyShow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31532155,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["circuit-breaker","docker","docker-compose","docker-container","docker-image","eureka-discovery-service","feign-client","java","jpa-hibernate","microservice","netfix-api-gateway","postgresql-database","rate-limiting","restful-webservices","retry","spring-security","springboot","zipkin"],"created_at":"2025-01-09T23:25:51.470Z","updated_at":"2026-04-07T22:31:11.115Z","avatar_url":"https://github.com/DummuMounika.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BookMyShow - Microservices Project 🎬\n\n## Overview  \nBookMyShow is a microservices-based platform that simplifies movie ticket bookings. The project is designed for scalability and security, leveraging **Spring Boot** and **Docker**. This README provides an overview of the platform's architecture, deployment, and key technologies used.\n\n## 🏗️ Microservices Architecture\nBookMyShow follows a modular microservices approach, enabling flexibility and high availability. The core microservices include:\n\n- **User Service**: Manages authentication and user profiles.\n- **Admin Service**: Manages all entities entry\n- **Search Service**: Handles movie, theater, show, and  seat details and schedules.\n- **Booking Service**: Processes ticket bookings and payments.\n- **Payment Service**: Ensures secure and seamless transactions.\n- **Notification Service**: Sends booking confirmations and alerts.\n- **Eureka Discovery Service**: Enables service discovery.\n- **API Gateway**: Acts as a central entry point for client requests.\n- **Spring Config Server**: Manages Common Configuration.\n\n## 🛠️ Infrastructure\n- **Spring Cloud Config Server**: Centralized configuration management.\n- **Netflix Eureka Naming Server**: Facilitates service discovery.\n- **API Gateway**: Routes client requests to the respective services.\n- **Feign Client**: Simplifies inter-service communication.\n- **Circuit Breaker (Resilience4J)**: Improves fault tolerance by preventing cascading failures.\n- **Rate Limiting**: Protects the system from excessive API requests.\n- **Retry Mechanism (Resilience4J)**: Enhances API reliability by retrying failed requests.\n- **Zipkin Distributed Tracing Server**: Provides request tracing across services.\n- **PostgreSQL Database**: Ensures efficient data storage and retrieval.\n- **ELK Stack**: Monitoring \u0026 Logging\n\n## 🚀 Deployment\nBookMyShow supports deployment in various environments with the following technologies:\n\n- **Containerization**: Docker ensures consistency across environments.\n\n## 📌 API Endpoints\n### 🎭 User Service (USER-SERVICE)\n- `GET /api/userDetails?userId= - Retrieve user detail\n- `POST /api/register` - Register a new user\n- `POST /api/login` - Authenticate a user\n\n### 🎭 Admin Service (ADMIN-SERVICE)\n- `POST /api/addShow = - Adds new show\n- `POST /api/addShowSeatDetails` - Adds new seats for shows\n\n### 🔍Search Service (SEARCH-SERVICE)\n- `GET /api/cities` - Retrieve all cities\n- `GET /api/v2/cities` - Retrieve all cities with names and IDs\n- `GET /api/movie/search?movieName=` - Search Movies based on movie name\n- `GET /api/v2/movie/search?movieName=` - Search Movies based on movie names and IDs\n- `GET /api/showdetails?showId=` - Retrieve Show details by show ID\n- `GET /api/theater/seats?showId=` - Retrieve Show seat details by show ID\n- `POST /api/shows/search?movieName=City=` - Search Theaters based on movie name and city\n- `POST /api/v2/shows/search?movieName=City=` - Search Theaters based on movie and city IDs\n\n### 🎟️ Booking Service (BOOKING-SERVICE)\n- `POST /api/addBooking` - Book movie tickets\n- `PATCH api/booking/changeseatstatus?seatUniqueIds=\u0026status=\u0026showId=` - Change Seat status from Available-\u003ePending-\u003eBooked\n- `POST /api/booking/summary` - Retrieve Booking summary\n\n### 💳 Payment Service (PAYMENT-SERVICE)\n- `POST api/payment` - Process a payment\n\n### 🔔 Notification Service (NOTIFICATION-SERVICE)\n- `POST api/sendNotification` - Send notifications\n\n## 🎯 Setup \u0026 Installation\n### Prerequisites\n- **Docker \u0026 Docker-Compose** installed\n- **Java 17+**\n- **PostgreSQL**\n\n### Steps to Run\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/DummuMounika/BookMyShow.git\n   cd BookMyShow\n   ```\n2. Start the services using Docker Compose:\n   ```bash\n   docker-compose up --build\n   ```\n3. Access the services:\n   - **Eureka Dashboard**: `http://localhost:8761`\n   - **API Gateway**: `http://localhost:8080`\n   - **PostgreSQL Admin**: `http://localhost:5432`\n   - **Log Monitoring**: `http://localhost:5601`\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdummumounika%2Fbookmyshow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdummumounika%2Fbookmyshow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdummumounika%2Fbookmyshow/lists"}