{"id":23500131,"url":"https://github.com/anuja-rahul/ticketingapp","last_synced_at":"2026-05-07T18:11:24.848Z","repository":{"id":267848414,"uuid":"874381232","full_name":"anuja-rahul/ticketingApp","owner":"anuja-rahul","description":"Built with Spring Boot, TicketingApp backend ensures high performance and responsiveness for managing ticket transactions and event data. It provides secure JWT-based authentication and role-based access control for a dynamic, real-time experience","archived":false,"fork":false,"pushed_at":"2024-12-12T19:34:11.000Z","size":47915,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-24T02:44:56.898Z","etag":null,"topics":["jwt-authentication","learning-by-doing","multithreaded","postgresql","restful-api","spring-boot","spring-jpa"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anuja-rahul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-10-17T18:14:03.000Z","updated_at":"2024-12-12T19:34:15.000Z","dependencies_parsed_at":"2024-12-12T20:47:01.546Z","dependency_job_id":null,"html_url":"https://github.com/anuja-rahul/ticketingApp","commit_stats":null,"previous_names":["anuja-rahul/ticketingapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anuja-rahul/ticketingApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuja-rahul%2FticketingApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuja-rahul%2FticketingApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuja-rahul%2FticketingApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuja-rahul%2FticketingApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anuja-rahul","download_url":"https://codeload.github.com/anuja-rahul/ticketingApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuja-rahul%2FticketingApp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262850261,"owners_count":23374355,"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":["jwt-authentication","learning-by-doing","multithreaded","postgresql","restful-api","spring-boot","spring-jpa"],"created_at":"2024-12-25T06:38:02.015Z","updated_at":"2026-05-07T18:11:19.822Z","avatar_url":"https://github.com/anuja-rahul.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Real-Time Event Ticketing System\n\n![Java](https://img.shields.io/badge/java-000?style=for-the-badge\u0026logo=openjdk\u0026logoColor=f89820)\n![JWT](https://img.shields.io/badge/-JWT-000?style=for-the-badge\u0026logo=json-web-tokens)\n![Spring](https://img.shields.io/badge/spring-000?style=for-the-badge\u0026logo=spring\u0026logoColor=green)\n![HIBERNATE](https://img.shields.io/badge/Hibernate-000?style=for-the-badge\u0026logo=hibernate\u0026logoColor=white)\n![POSTGRES](https://img.shields.io/badge/-postgresql-000?style=for-the-badge\u0026logo=postgresql)\n\n![GitHub](https://img.shields.io/github/forks/anuja-rahul/ticketingApp?style\u0026logo=github)\n\u0026nbsp;\n![GitHub](https://img.shields.io/github/license/anuja-rahul/ticketingApp?style\u0026logo=github)\n\u0026nbsp;\n![GitHub](https://img.shields.io/github/stars/anuja-rahul/ticketingApp?style\u0026logo=github)\n\u0026nbsp;\n![Contributors](https://img.shields.io/github/contributors/anuja-rahul/ticketingApp?style\u0026logo=github)\n\u0026nbsp;\n![Watchers](https://img.shields.io/github/watchers/anuja-rahul/ticketingApp?style\u0026logo=github)\n\u0026nbsp;\n\n```shell\n  _____ _    _       _   _             _   ___ ___\n |_   _(_)__| |_____| |_(_)_ _  __ _  /_\\ | _ \\_ _|\n   | | | / _| / / -_)  _| | ' \\/ _` |/ _ \\|  _/| |\n   |_| |_\\__|_\\_\\___|\\__|_|_||_\\__, /_/ \\_\\_| |___|  v1.0\n                               |___/\n   running on Spring Boot 3.3.4\n```\n\nTicketingApp backend is a state-of-the-art solution built with Spring Boot, designed to efficiently manage ticket transactions and event data. \nUtilizing multithreading and the Producer-Consumer pattern, it ensures high performance and responsiveness. \nThe system follows solid Object-Oriented Programming (OOP) principles, promoting scalability and maintainability. \nSecure JWT-based authentication and role-based access control provide distinct functionalities for admins, vendors, and customers. \nSeamlessly integrating with the frontend, it offers a dynamic, real-time experience for tracking ticket sales and managing events with precision.\n\n[![layers](https://mermaid.ink/img/pako:eNpVUsGO2yAU_BXr7dVxsLGxzVa9NNtTq0q7PVW-vBgco8XGArzdNMq_F5Ooq554M8O8xwAX6I2QwOFkcRmTb8-P3ZwkX62Z_dMskk-73efk8PNHZMN6I74E1RqtpY38B7zJL9K-qV5G7V7fhGe5GKe8seeofcD7HPR4RLcZN7nX6NxBDomQA67aJ4PSmj8QQlIX5r1K_kApvde730r4kZfL-yOkMEk7oRIh1mXr1IEf5SQ74KEUaF876OZr2IerNy_nuQfu7SpTWBeBXh4UhtuY_iefxHZS4ANqF0htUMgAL-DPS7w_5Xzo2Jt5UKeNX60O9Oj94vh-v8nZSflxPWa9mfZOiRGtH99atmcFa7CgktUUK0pFf8zbZijKfBA1yQuE6zWFBeet6zvwhmSkKvKGVoxWtGyqFM7Ac5LlJWN5WbZ0o1nw_DEmpCBZW7O8aauKVbRmpA4GGdN8vz19_AEpWLOexn8Bw7xf0R7x9S-eDK5R?type=png)](https://mermaid.live/edit#pako:eNpVUsGO2yAU_BXr7dVxsLGxzVa9NNtTq0q7PVW-vBgco8XGArzdNMq_F5Ooq554M8O8xwAX6I2QwOFkcRmTb8-P3ZwkX62Z_dMskk-73efk8PNHZMN6I74E1RqtpY38B7zJL9K-qV5G7V7fhGe5GKe8seeofcD7HPR4RLcZN7nX6NxBDomQA67aJ4PSmj8QQlIX5r1K_kApvde730r4kZfL-yOkMEk7oRIh1mXr1IEf5SQ74KEUaF876OZr2IerNy_nuQfu7SpTWBeBXh4UhtuY_iefxHZS4ANqF0htUMgAL-DPS7w_5Xzo2Jt5UKeNX60O9Oj94vh-v8nZSflxPWa9mfZOiRGtH99atmcFa7CgktUUK0pFf8zbZijKfBA1yQuE6zWFBeet6zvwhmSkKvKGVoxWtGyqFM7Ac5LlJWN5WbZ0o1nw_DEmpCBZW7O8aauKVbRmpA4GGdN8vz19_AEpWLOexn8Bw7xf0R7x9S-eDK5R)\n\n## *TicketingAPI Class Diagram*\n\n[![ClassDiagram](diagrams/ticketingappClassDiagramPreview.png)](https://github.com/anuja-rahul/ticketingApp/blob/main/diagrams/ticketingappClassDiagram.png)\n\n## Sequence Diagram (Producer-Consumer)\n\n[![SequenceDiagram](https://mermaid.ink/img/pako:eNrtVsuO2jAU_RXLqxmJoRARFLwYqUO77AY6s6jYuLEHrEns1A_aFPHvvXkBcUKBqt01q9g-576O7esdjhXjmGDDvzkuY_5B0LWm6Uoi-GhslUbPhutqnFFtRSwyKi167-yGSxhSK5ScK2m1SpI-5GcRv3F7GbHkeiti3l1-4ZIpfXZ57oxVKb8M8NxUwCI79PD4eDYhghZ8LYwFGBTjBFV7OsfrMVq7JkjXFu_u0TtET0ze3fcZrXnooTBZBEw8wIKbTEnTTcqvPRAZq2crqI84oR3CjTWH2KrJJsIWpCS1ZCJoSxPBgFZNN7QWqErIc_ZS8aqsXGLPuetVtYm1vdg476X0BtFGzkubrDeS_ip7vIuqPLn8ZlW-uvySJN7ROIrSLPiV-YfCuIz9dWGeS5u3C_Ok3Hpjr9BlyZPkZmEMkP4r82fKLFVyOC-_v1lZKo4XqjPcXEHqVP1Knne1HVm926HYTwueKSOgfeZdePfS_LgF12DlVawPToSEBgEd2KDvwm5ulNQn4wEGUEoFg16_K4ytMOSb8hUm8MuoflvhldwDDtqRWuYyxsRqxwdYF2cFk1eaGBhVe6V-JRxmoc1-Ueo45qxI_VP1tChfGCUGkx3-gUkQjodBNI6ms1E0jaIwCgc4x2QSDmdBMA4mk3A0DWZRsB_gn6XV0TDc_wKz5wu7?type=png)](https://mermaid.live/edit#pako:eNrtVsuO2jAU_RXLqxmJoRARFLwYqUO77AY6s6jYuLEHrEns1A_aFPHvvXkBcUKBqt01q9g-576O7esdjhXjmGDDvzkuY_5B0LWm6Uoi-GhslUbPhutqnFFtRSwyKi167-yGSxhSK5ScK2m1SpI-5GcRv3F7GbHkeiti3l1-4ZIpfXZ57oxVKb8M8NxUwCI79PD4eDYhghZ8LYwFGBTjBFV7OsfrMVq7JkjXFu_u0TtET0ze3fcZrXnooTBZBEw8wIKbTEnTTcqvPRAZq2crqI84oR3CjTWH2KrJJsIWpCS1ZCJoSxPBgFZNN7QWqErIc_ZS8aqsXGLPuetVtYm1vdg476X0BtFGzkubrDeS_ip7vIuqPLn8ZlW-uvySJN7ROIrSLPiV-YfCuIz9dWGeS5u3C_Ok3Hpjr9BlyZPkZmEMkP4r82fKLFVyOC-_v1lZKo4XqjPcXEHqVP1Knne1HVm926HYTwueKSOgfeZdePfS_LgF12DlVawPToSEBgEd2KDvwm5ulNQn4wEGUEoFg16_K4ytMOSb8hUm8MuoflvhldwDDtqRWuYyxsRqxwdYF2cFk1eaGBhVe6V-JRxmoc1-Ueo45qxI_VP1tChfGCUGkx3-gUkQjodBNI6ms1E0jaIwCgc4x2QSDmdBMA4mk3A0DWZRsB_gn6XV0TDc_wKz5wu7)\n\n## JWT Authentication\n\n[![auth](https://mermaid.ink/img/pako:eNqFVFFv2jAQ_iuWnzaNQkJIAD9UmsqqblqlrrBNmngx9kGsBjuzna6s4r_PTgyFJtvygMjdfffdZ3-5Z8wUB0ywgZ8VSAYzQTeabpcSuaek2gomSiotuioESNuOf_q-eF_Z_FoUFnRneg76UTBo574a0DOwVBTmrzVzYJUWdtfOzIQpqWU5aA8uoGO2KyWtVkXRNdiMWrqixlE2uUbfxeXluzNFxE0gObpZLO7QvT8jE3jOqhzsFeoqB_bgi9BCPUDgaH5pYdGtMEbIDVIafZSPtBDc1zb5dnfXvhmPNIOMogS9uVZ6JTgH-baBQWEAfftfq0ZfOG7S1FMLrycNwFDnUe3LIuizory-RRQyL-B2uVdxccrdDTxhDYDTY230eeTpiXbKPDjHEZW1xEPAuwKe7I0q-KGNfw7pLtp5xRgYs5T_4Gv5kaA7asyxLwq8Ly1aCN_mxbMEuSv-RTU_N15t1mNRzRysTNCXCvTuxNpHphCptZ0y3IOttKzznd19fYewALsHUyp5RtSS9Nq7wyhCb8J5HpwruT9Z3MNb0FsquNtHzz61xDaHLSwxcX851Q9LvJR7V0crq-Y7yTCxuoIeruobDrvrPPiBC6s0Jmvqvo8eLpxlwb0-Y7sr_eLbCGNdR6bkWmx8vNKFC-fWloYMBj7d3wibV6s-U9uBETx3WyR_nGaDbJhN6DCBbJzQNEk4W8XTyXo4itd8HMVDivf7HnbLxnd9wmQS9aN0GE-SNEvSZDRJe3iHSRz141GWxaPRNPHhzGF-K-VURP3pOIsn0zTN0mScRWMHgFrNbbOz69Xdw1pVm_wo0PH9qOH1-_4PXujrmQ?type=png)](https://mermaid.live/edit#pako:eNqFVFFv2jAQ_iuWnzaNQkJIAD9UmsqqblqlrrBNmngx9kGsBjuzna6s4r_PTgyFJtvygMjdfffdZ3-5Z8wUB0ywgZ8VSAYzQTeabpcSuaek2gomSiotuioESNuOf_q-eF_Z_FoUFnRneg76UTBo574a0DOwVBTmrzVzYJUWdtfOzIQpqWU5aA8uoGO2KyWtVkXRNdiMWrqixlE2uUbfxeXluzNFxE0gObpZLO7QvT8jE3jOqhzsFeoqB_bgi9BCPUDgaH5pYdGtMEbIDVIafZSPtBDc1zb5dnfXvhmPNIOMogS9uVZ6JTgH-baBQWEAfftfq0ZfOG7S1FMLrycNwFDnUe3LIuizory-RRQyL-B2uVdxccrdDTxhDYDTY230eeTpiXbKPDjHEZW1xEPAuwKe7I0q-KGNfw7pLtp5xRgYs5T_4Gv5kaA7asyxLwq8Ly1aCN_mxbMEuSv-RTU_N15t1mNRzRysTNCXCvTuxNpHphCptZ0y3IOttKzznd19fYewALsHUyp5RtSS9Nq7wyhCb8J5HpwruT9Z3MNb0FsquNtHzz61xDaHLSwxcX851Q9LvJR7V0crq-Y7yTCxuoIeruobDrvrPPiBC6s0Jmvqvo8eLpxlwb0-Y7sr_eLbCGNdR6bkWmx8vNKFC-fWloYMBj7d3wibV6s-U9uBETx3WyR_nGaDbJhN6DCBbJzQNEk4W8XTyXo4itd8HMVDivf7HnbLxnd9wmQS9aN0GE-SNEvSZDRJe3iHSRz141GWxaPRNPHhzGF-K-VURP3pOIsn0zTN0mScRWMHgFrNbbOz69Xdw1pVm_wo0PH9qOH1-_4PXujrmQ)\n\n## 🎫 Real-Time Event Ticketing System Checklist\n\n- [x] **Accept User Prompts at Launch**\n  Prompt users for configuration options before application startup.\n\n- [x] **Error Handling and Input Validation**\n  Ensure robust error handling and validation for all user inputs.\n\n- [ ] **Start and Stop Functionality via CLI Buttons**\n  Implement CLI commands to easily start and stop the system.\n\n- [ ] **Default Configuration Feature**\n  Provide a fallback configuration to use when custom settings are not specified.\n\n- [x] **Dynamic Configuration Feature (Optional)**\n  Allow for real-time, customizable configurations during runtime.\n\n- [x] **Documentation for CLI Usage and Config Options**\n  Provide clear documentation for all available CLI commands and configuration options.\n\n- [x] **Javadoc for All Classes and Methods**\n  Ensure comprehensive Javadoc documentation is provided for maintainability.\n\n  ## 🚀 Getting Started\n\n  ### Prerequisites\n\n  - Java 21 or higher\n  - Maven 3.6.3 or higher\n  - PostgreSQL 13 or higher\n\n  ### Installation\n\n  1. Clone the repository:\n\n      ```shell\n      git clone https://github.com/anuja-rahul/ticketingApp.git\n\n      cd ticketingApp\n      ```\n\n  2. Environment variables Configuration:\n    \n     in the `.env` file\n\n      ```bash\n       # Database connection URL for PostgreSQL\n       SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/ticketingapp\n      \n       # Database username\n       SPRING_DATASOURCE_USERNAME=yourUsername\n      \n       # Database password\n       SPRING_DATASOURCE_PASSWORD=yourPassword\n      \n       # Secret key for JWT authentication (265bit preferably)\n       SECRET_KEY=yourSecretKey\n          \n      ```\n\n  3. Build the project:\n\n      ```shell\n      mvn clean install\n      ```\n\n  4. Run the application:\n\n      ```shell\n      mvn spring-boot:run\n      ```\n\n     ### Running Tests\n\n     To run the tests, use the following command:\n\n     ```shell\n     mvn test\n     ```\n\n     ### Usage\n\n     After starting the application, you can access the API at `http://localhost:8080/api`.\n    \n     ### API Documentation\n\n     After starting the application, you can access the API documentation at `http://localhost:8080/swagger-ui/index.html`.\n     \u003cbr /\u003e\u003cbr /\u003e\n     ![Swagger UI](diagrams/SwaggerUI.gif)\n\n     ## 📄 License\n\n     This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n\u003cbr /\u003e\n\n  [![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=anuja-rahul\u0026repo=ticketingApp\u0026theme=nightowl)](https://github.com/anuja-rahul/ticketingApp/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanuja-rahul%2Fticketingapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanuja-rahul%2Fticketingapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanuja-rahul%2Fticketingapp/lists"}