Skip to content

sudesharoshaseneviratne/Event-Ticketing-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎟️ 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors