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.
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 Path: real-time-booking-system/Backend
The backend is a Node.js-based application providing APIs for managing customers, tickets, and vendors.
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 - 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.
- Node.js: Backend runtime environment.
- Express.js: Framework for building RESTful APIs.
- MongoDB: Database used for managing application data.
- Mongoose: ODM for MongoDB interactions.
Path: real-time-booking-system/TicketingCLI
A Java-based command-line interface (CLI) for managing tickets and simulating booking events.
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 - 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.
- Java: Programming language for the CLI application.
- JSON: Configuration file format.
Path: real-time-booking-system/frontend
The frontend is a React.js-based web application providing a graphical interface for customers to book tickets.
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 - App.js: The main entry point of the React application.
- components/: Contains reusable components like
Navbar,Footer, andSidebar. - pages/: Page-level components for distinct features like
Home,SignIn, andViewAllTickets. - css/: Contains CSS files for styling individual components and pages.
- React.js: Frontend library for building user interfaces.
- CSS: Styling for components and pages.
- Axios: Library for making API calls to the backend.
- Node.js: v14.17.0 or higher
- Java: JDK 11 or higher
- MongoDB: v4.4 or higher
- npm: v6.14.13 or higher
- Navigate to the backend directory:
cd real-time-booking-system/Backend - Install dependencies:
npm install
- Start the server:
node server.js
- Navigate to the CLI directory:
cd real-time-booking-system/TicketingCLI - Compile the Java source code:
javac src/main/java/com/realtime/ticketing/TicketingApplication.java
- Run the application:
java src/main/java/com/realtime/ticketing/TicketingApplication
- Navigate to the frontend directory:
cd real-time-booking-system/frontend/ticketing-system - Install dependencies:
npm install
- Start the development server:
npm start
- 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.
- Fork the repository.
- Create a new branch for your feature:
git checkout -b feature-name
- Commit your changes with clear messages:
git commit -m "Add feature-name" - Push your branch and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Name: Ravindran Dharshan
- GitHub: https://github.com/DharshanSR