Bus Booking System is a web application developed using the MERN stack (MongoDB, Express, React, Node.js) that allows users to book bus tickets. The system includes features for searching buses, viewing schedules, and making bookings.
Explore the live demo here: Bus Booking App
- Search Available Buses: Find buses based on destination, date, and time.
- Bus Schedule: View available routes, departure and arrival times.
- User Authentication: Login and registration features to manage bookings.
- Ticket Booking: Securely book tickets for your desired trip.
- Responsive UI: Built with Material UI and styled-components for a modern, mobile-friendly interface.
- Localization Support: Available in multiple languages using i18next.
- Admin Panel: Manage bus schedules, routes, and user bookings.
- React (18.2.0): React for building dynamic, single-page applications.
- Redux (8.0.5): State management for handling global application state.
- MUI (5.11.8): Material UI for a responsive and clean design.
- React Router (6.8.1): Handles navigation between different views.
- Formik & Formik-MUI: Simplified form management and validation.
- Swiper (9.0.4): Used for carousel functionality, displaying bus schedules.
- Framer Motion: Smooth animations for UI transitions.
- Node.js & Express (4.18.2): Backend server to handle routing and API requests.
- MongoDB (Mongoose): NoSQL database for storing user information, bookings, and bus schedules.
- JWT (JSON Web Tokens): Authentication and authorization of users.
- Bcrypt: Used for hashing passwords for secure user authentication.
- Nodemailer: For sending confirmation emails upon successful bookings.
- Cors: Cross-Origin Resource Sharing middleware for secure API communication.
To set up the project locally, follow these steps:
Make sure you have the following installed:
- Node.js (version 14 or higher)
- npm (Node package manager)
- MongoDB (for database)
Clone the repository to your local machine:
git clone https://github.com/Eng1Mahmoud/Bus-Booking.git
cd Bus-BookingWe welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
We follow conventional commits specification:
feat:New featuresfix:Bug fixesdocs:Documentation changesstyle:Code style changesrefactor:Code refactoringtest:Test updateschore:Build process or auxiliary tool changes
If you discover any bugs, please create an issue here including:
- Bug description
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
Mahmoud Mohamed
- GitHub: @Eng1Mahmoud