Skip to content

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

License

Notifications You must be signed in to change notification settings

anuja-rahul/ticketingApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Event Ticketing System

Java JWT Spring HIBERNATE POSTGRES

GitHub   GitHub   GitHub   Contributors   Watchers  

  _____ _    _       _   _             _   ___ ___
 |_   _(_)__| |_____| |_(_)_ _  __ _  /_\ | _ \_ _|
   | | | / _| / / -_)  _| | ' \/ _` |/ _ \|  _/| |
   |_| |_\__|_\_\___|\__|_|_||_\__, /_/ \_\_| |___|  v1.0
                               |___/
   running on Spring Boot 3.3.4

TicketingApp backend is a state-of-the-art solution built with Spring Boot, designed to efficiently manage ticket transactions and event data. Utilizing multithreading and the Producer-Consumer pattern, it ensures high performance and responsiveness. The system follows solid Object-Oriented Programming (OOP) principles, promoting scalability and maintainability. Secure JWT-based authentication and role-based access control provide distinct functionalities for admins, vendors, and customers. Seamlessly integrating with the frontend, it offers a dynamic, real-time experience for tracking ticket sales and managing events with precision.

layers

TicketingAPI Class Diagram

ClassDiagram

Sequence Diagram (Producer-Consumer)

SequenceDiagram

JWT Authentication

auth

🎫 Real-Time Event Ticketing System Checklist

  • Accept User Prompts at Launch Prompt users for configuration options before application startup.

  • Error Handling and Input Validation Ensure robust error handling and validation for all user inputs.

  • Start and Stop Functionality via CLI Buttons Implement CLI commands to easily start and stop the system.

  • Default Configuration Feature Provide a fallback configuration to use when custom settings are not specified.

  • Dynamic Configuration Feature (Optional) Allow for real-time, customizable configurations during runtime.

  • Documentation for CLI Usage and Config Options Provide clear documentation for all available CLI commands and configuration options.

  • Javadoc for All Classes and Methods Ensure comprehensive Javadoc documentation is provided for maintainability.

    🚀 Getting Started

    Prerequisites

    • Java 21 or higher
    • Maven 3.6.3 or higher
    • PostgreSQL 13 or higher

    Installation

    1. Clone the repository:

      git clone https://github.com/anuja-rahul/ticketingApp.git
      
      cd ticketingApp
    2. Environment variables Configuration:

      in the .env file

       # Database connection URL for PostgreSQL
       SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/ticketingapp
      
       # Database username
       SPRING_DATASOURCE_USERNAME=yourUsername
      
       # Database password
       SPRING_DATASOURCE_PASSWORD=yourPassword
      
       # Secret key for JWT authentication (265bit preferably)
       SECRET_KEY=yourSecretKey
          
    3. Build the project:

      mvn clean install
    4. Run the application:

      mvn spring-boot:run

      Running Tests

      To run the tests, use the following command:

      mvn test

      Usage

      After starting the application, you can access the API at http://localhost:8080/api.

      API Documentation

      After starting the application, you can access the API documentation at http://localhost:8080/swagger-ui/index.html.

      Swagger UI

      📄 License

      This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


Readme Card

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages