{"id":19340945,"url":"https://github.com/belovetech/cineverse","last_synced_at":"2025-04-23T02:31:36.576Z","repository":{"id":180462078,"uuid":"655235673","full_name":"belovetech/cineverse","owner":"belovetech","description":"Distributed movie ticketing system with microservices for authentication, movie management, ticket booking, and notifications.","archived":false,"fork":false,"pushed_at":"2023-09-26T10:07:43.000Z","size":4663,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T06:51:16.710Z","etag":null,"topics":["expressjs","mongodb","mongoose","nodejs","postgresql","rabbitmq","sequelizer","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/belovetech.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-18T09:55:35.000Z","updated_at":"2024-11-23T20:00:26.000Z","dependencies_parsed_at":"2024-11-10T03:29:14.212Z","dependency_job_id":"c1763c28-57b6-4884-a414-5a216bae3fb9","html_url":"https://github.com/belovetech/cineverse","commit_stats":null,"previous_names":["belovetech/movie-ticketing-system","belovetech/cineverse"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belovetech%2Fcineverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belovetech%2Fcineverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belovetech%2Fcineverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belovetech%2Fcineverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/belovetech","download_url":"https://codeload.github.com/belovetech/cineverse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250357653,"owners_count":21417322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["expressjs","mongodb","mongoose","nodejs","postgresql","rabbitmq","sequelizer","typescript"],"created_at":"2024-11-10T03:28:32.589Z","updated_at":"2025-04-23T02:31:35.678Z","avatar_url":"https://github.com/belovetech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Distributed Movie Ticketing System\n\nThe Distributed Movie Ticketing System is a distributed application that allows users to browse and book movie tickets. It is divided into several microservices to handle specific functionalities.\n\n![DESIGN](/images/movie-ticketing-system-design.jpeg)\n\n#### The system consists of the following services:\n\n1. **Authentication Service**: Responsible for user authentication, signup, signin, password management, and user session management.\n\n2. **Movie Service**: Handles movie-related functionalities, including movie listing, movie details retrieval, and movie search.\n\n3. **Ticket Service**: Manages ticket booking and reservation, seat selection, and ticket cancellation.\n\n4. **Notification Service**: Provides notification capabilities, such as sending booking confirmations and updates to users via email or SMS.\n\n### Features\n\n- **Authentication Service:**\n\n  - **User Signup:** Customers can create new accounts by providing their personal details.\n  - **User Signin:** Registered customers can sign in to access their accounts.\n  - **Password Management:** Customers can reset and update their passwords securely.\n  - **User Session Management:** Maintains user sessions and ensures secure access to protected resources.\n\n- **Movie Service:**\n\n  - **Movie Listing:** Displays a list of available movies, including details such as title, genre, duration, and rating.\n  - **Movie Details:** Provides detailed information about a specific movie, including cast, synopsis, and showtimes.\n  - **Movie Search:** Allows users to search for movies based on various criteria, such as title, genre, or release year.\n\n- **Ticket Service:**\n\n  - **Ticket Booking:** Enables users to book movie tickets, select seats, and make payments.\n  - **Ticket Cancellation:** Allows users to cancel their booked tickets and initiate refunds if applicable.\n  - **Seat Availability:** Provides real-time information about seat availability for a particular movie and showtime.\n\n- **Notification Service:**\n\n  - **Booking Confirmation:** Sends booking confirmations to users via email or SMS.\n  - **Update Notifications:** Sends updates, such as changes in showtime or seat availability, to users.\n\n### Getting Started\n\nTo get started with the Distributed Movie Ticketing System, follow the instructions provided in the respective README files for each service:\n\n- Authentication Service: [Readme](https://github.com/belovetech/movie-ticketing-system/tree/main/auth_service)\n- Movie Service: [Readme](https://github.com/belovetech/movie-ticketing-system/tree/main/movie_service)\n- Ticket Service: [Readme](https://github.com/belovetech/movie-ticketing-system/tree/main/ticket_service)\n- Notification Service: [Readme](https://github.com/belovetech/movie-ticketing-system/tree/main/notification_service)\n  Each service has its own set of dependencies and instructions for installation and configuration.\n\n### Technologies Used\n\n- Typescript\n- Node.js\n- Express.js\n- MongoDB (Mongoose)\n- PostgreSQL (Sequelizer)\n- RabbitMQ (Message Queue)\n- JSON Web Tokens (JWT)\n- bcrypt.js\n- SMTP and SMS providers (for the Notification Service)\n\n## Installation\n\n1. clone the repo\n2. Use nx to run other operations\n\n### Running task with [Nx](https://nx.dev/reference/nx-json#)\n\nNx is used for smooth running of operations across the entire monorepo. These commands should be run from the root of the project.\n\n```bash\nnpx nx \u003ctarget\u003e \u003cproject/service\u003e\n\n# build shared library\nnpx nx build @cineverse/libs\n\n# start movie service\nnpx nx dev movie-service\n\n# run in parallel across all services\nnpx nx run-many --target=build --all\n\n# run specific service\nnpx nx run-many --target=build --projects=auth-service,movie-service\n\n# project graph visualization\nnpx nx graph\n```\n\n### ERD\n\n![ERD](/images/cineverse-ERD.jpg)\n\n### Contributing\n\nContributions are welcome! If you encounter any issues or have suggestions for improvement, please open an issue or submit a pull request.\n\n### Contact\n\nFor any inquiries or questions, please contact the project team at [email](belovetech@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbelovetech%2Fcineverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbelovetech%2Fcineverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbelovetech%2Fcineverse/lists"}