Skip to content

DharshanSR/Ticket-Booking-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Booking System

Overview

The Real-Time Booking System is a comprehensive application designed to streamline ticketing and booking processes. It features a robust backend, a user-friendly CLI for managing tickets, and a frontend interface for customer interactions. The project is organized into distinct components for modularity and scalability.

Project Structure

Root Directory

real-time-booking-system/
├── idea/                   # Initial ideas and brainstorming files
├── Backend/                # Backend logic and APIs
├── TicketingCLI/           # Command-line interface for ticket management
├── docs/                   # Documentation
├── frontend/               # Frontend application
├── README.md               # Project documentation

Backend

Path: real-time-booking-system/Backend

The backend is a Node.js-based application providing APIs for managing customers, tickets, and vendors.

Directory Structure

Backend/
├── idea/                   # Backend-specific ideas and brainstorming
├── Configurations/         # Configuration files
│   └── ticket-configurations.json  # Ticket-related configurations
├── controllers/            # Business logic controllers
│   ├── Customer.js
│   ├── Ticket.js
│   ├── TicketPool.js
│   └── Vendor.js
├── database/               # Database connection and queries
│   └── database.js
├── middleware/             # Middleware for request handling
│   └── authenticateToken.js
├── models/                 # Data models
│   ├── Customer.js
│   ├── Ticket.js
│   └── Vendor.js
├── routes/                 # API routes
│   ├── customerRoutes.js
│   ├── ticketRoutes.js
│   └── vendorRoutes.js
├── test/                   # Unit tests
│   └── testTicketPool.js
├── .gitignore              # Ignored files for version control
├── README.md               # Backend documentation
├── package-lock.json       # Dependency tree lock file
├── package.json            # Project metadata and dependencies
└── server.js               # Application entry point

Key Files

  • server.js: Entry point for starting the backend server.
  • controllers/: Contains logic for processing customer, ticket, and vendor data.
  • routes/: API endpoints for interacting with the system.
  • middleware/: Middleware to authenticate requests.

Technologies Used

  • Node.js: Backend runtime environment.
  • Express.js: Framework for building RESTful APIs.
  • MongoDB: Database used for managing application data.
  • Mongoose: ODM for MongoDB interactions.

TicketingCLI

Path: real-time-booking-system/TicketingCLI

A Java-based command-line interface (CLI) for managing tickets and simulating booking events.

Directory Structure

TicketingCLI/
├── config/                  # Configuration files
│   ├── configuration.json
│   └── ticket-configuration.json
├── src/                     # Source code
│   ├── main/java/com/realtime/ticketing/
│   │   ├── controller/      # Controllers for CLI interactions
│   │   │   ├── MenuManager.java
│   │   │   └── SimulationManager.java
│   │   ├── model/           # Data models
│   │   │   ├── Configuration.java
│   │   │   ├── ConfigurationHandler.java
│   │   │   ├── Customer.java
│   │   │   ├── Vendor.java
│   │   │   └── TicketPool.java
│   │   ├── util/            # Utilities
│   │   │   └── LoggerUtil.java
│   │   └── TicketingApplication.java        # Application entry point
│   └── test/                # Unit tests
│       ├── controller/
│       │   ├── MenuManagerTest.java
│       │   └── SimulationManagerTest.java
│       ├── model/
│       │   ├── ConfigurationHandlerTest.java
│       │   └── TicketPoolTest.java
│       └── util/
│           └── LoggerUtilTest.java
├── README.md                # CLI documentation
└── LICENSE                  # License file

Key Files

  • TicketingApplication.java: Entry point for the CLI application.
  • MenuManager.java: Handles user interaction and menu navigation.
  • SimulationManager.java: Simulates ticket booking events.
  • TicketPool.java: Manages the pool of available tickets.

Technologies Used

  • Java: Programming language for the CLI application.
  • JSON: Configuration file format.

Frontend

Path: real-time-booking-system/frontend

The frontend is a React.js-based web application providing a graphical interface for customers to book tickets.

Directory Structure

frontend/
├── idea/                   # Frontend-specific ideas
├── ticketing-system/       # Main application
│   ├── public/             # Static assets
│   └── src/                # React source files
│       ├── components/     # Reusable UI components
│       │   ├── Footer.jsx
│       │   ├── Navbar.jsx
│       │   └── Sidebar.jsx
│       ├── pages/          # Page-specific components
│       │   ├── AddConfiguration.js
│       │   ├── BuyTicket.js
│       │   ├── Home.js
│       │   ├── Register.js
│       │   ├── SignIn.js
│       │   ├── TicketLogs.js
│       │   ├── TicketReport.js
│       │   ├── UpdateSingleTicket.js
│       │   └── ViewAllTickets.js
│       ├── css/            # Styling
│       │   ├── Footer.css
│       │   ├── HomePage.css
│       │   ├── Navbar.css
│       │   ├── Responsive.css
│       ├── App.css
│       ├── App.js
│       ├── App.test.js
│       ├── index.css
│       ├── index.js
│       ├── logo.svg
│       ├── reportWebVitals.js
│       └── setupTests.js
├── .gitignore              # Ignored files for version control
├── README.md               # Frontend documentation
├── package-lock.json       # Dependency tree lock file
├── package.json            # Project metadata and dependencies

Key Files

  • App.js: The main entry point of the React application.
  • components/: Contains reusable components like Navbar, Footer, and Sidebar.
  • pages/: Page-level components for distinct features like Home, SignIn, and ViewAllTickets.
  • css/: Contains CSS files for styling individual components and pages.

Technologies Used

  • React.js: Frontend library for building user interfaces.
  • CSS: Styling for components and pages.
  • Axios: Library for making API calls to the backend.

Installation and Execution

System Requirements

  • Node.js: v14.17.0 or higher
  • Java: JDK 11 or higher
  • MongoDB: v4.4 or higher
  • npm: v6.14.13 or higher

Backend

  1. Navigate to the backend directory:
    cd real-time-booking-system/Backend
  2. Install dependencies:
    npm install
  3. Start the server:
    node server.js

CLI

  1. Navigate to the CLI directory:
    cd real-time-booking-system/TicketingCLI
  2. Compile the Java source code:
    javac src/main/java/com/realtime/ticketing/TicketingApplication.java
  3. Run the application:
    java src/main/java/com/realtime/ticketing/TicketingApplication

Frontend

  1. Navigate to the frontend directory:
    cd real-time-booking-system/frontend/ticketing-system
  2. Install dependencies:
    npm install
  3. Start the development server:
    npm start

Summary of Pages

  • AddConfiguration.js: Page to add ticket-related configurations.
  • BuyTicket.js: Interface for users to purchase tickets.
  • Home.js: Landing page displaying system overview.
  • Register.js: User registration page.
  • SignIn.js: User login interface.
  • TicketLogs.js: Displays logs related to ticket bookings.
  • TicketReport.js: Provides ticket usage and sales reports.
  • UpdateSingleTicket.js: Edit specific ticket information.
  • ViewAllTickets.js: Displays all available tickets.

Contribution Guidelines

  1. Fork the repository.
  2. Create a new branch for your feature:
    git checkout -b feature-name
  3. Commit your changes with clear messages:
    git commit -m "Add feature-name"
  4. Push your branch and submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for more details.


Author