Skip to content

Latest commit

 

History

History
104 lines (81 loc) · 3.73 KB

File metadata and controls

104 lines (81 loc) · 3.73 KB

🎟️ Real-Time Event Ticketing System

🚀 Overview
The Real-Time Event Ticketing System is a next-gen platform designed to revolutionize how tickets are managed for live events. Whether you're a vendor releasing tickets or a customer frantically trying to grab the last seat, this system ensures smooth, synchronized, and real-time operations. Powered by cutting-edge multi-threading (Producer-Consumer pattern) and robust backend APIs, it simulates real-world ticketing scenarios. Perfect for students, developers, or anyone ready to embrace the chaos of ticketing management.

🔧 Features

  • Concurrency Handling: Multiple vendors and customers operating simultaneously without skipping a beat.
  • Real-Time Updates: Live dashboard showcasing ticket availability and transaction status.
  • Robust Backend: Built with Node.js, ensuring high-speed, scalable ticket processing.
  • Thread-Safe Operations: Eliminate race conditions and deadlocks with advanced synchronization.
  • Flexible Tech Stack: React.js for the frontend, MongoDB or MySQL for data persistence.
  • Logging & Error Handling: Comprehensive logs to monitor every ticket added, purchased, or error encountered.

💻 Usage Instructions
🔹 Frontend

  1. Navigate to the frontend folder.
  2. Run npm install to install dependencies.
  3. Start the frontend with npm run dev.
  4. Open your browser and visit http://localhost:3000.

🔹 Backend

  1. Navigate to the backend folder.
  2. Run npm install to install backend dependencies.
  3. Start the backend server with npm start.

🛠️ Installation

  1. Clone the Repository:

    git clone https://github.com/your-repo-name/event-ticketing-system.git  
    cd event-ticketing-system  
  2. Setup the Frontend:

    cd frontend  
    npm install  
  3. Setup the Backend:

    cd backend  
    npm install  
  4. Configure Database:

    • Choose between MongoDB or MySQL.
    • Update the database connection in the config file (located in backend/config/db.js).
  5. Run the Project:

    • Run the backend with npm start.
    • Run the frontend with npm run dev.

🎨 Tech Stack

  • Frontend: React.js
  • Backend: Node.js, Express.js
  • Database: MongoDB / MySQL
  • Languages: JavaScript

📊 Key Concepts

  1. Producer-Consumer Pattern**:

    • Vendors act as producers, adding tickets to the pool.
    • Customers are consumers, retrieving tickets from the pool.
  2. Multi-Threading:

    • Simulate real-world concurrency with multiple threads operating in harmony.
  3. Synchronization:

    • Ensure thread-safe operations with synchronized methods.

✨ Advanced Features (Optional)

  • Priority Customers: VIP customers get priority ticket processing.
  • Dynamic Vendor/Customer Management: Add or remove vendors and customers in real-time.
  • Analytics Dashboard: Visualize ticket trends using live charts.
  • Persistent Storage: Store ticket history for audits and reporting.

📋 Dependencies

  • Frontend:

    • React.js
    • Axios (for API calls)
    • React Router (for navigation)
  • Backend:

    • Node.js
    • Express.js
    • MongoDB or MySQL

🛠️ Configuration
To customize your setup, modify the following files:

  1. Database Config: backend/config/db.js
  2. Frontend API URL: frontend/src/config/api.js

🤝 Contributors
Developed by [Your Name]. Want to contribute? Feel free to fork the repository and submit pull requests!

📜 License
This project is open-source under the MIT License.

🎥 Demo
Check out the demo video of the system in action: https://drive.google.com/file/d/1T-mVbomCNdgEGocEJ1FnJ5s2PjFNjOy6/view?usp=sharing