A comprehensive web application for booking bus, rail, airways, and metro tickets online with a unified experience.
Transport Wizard is a modern, full-stack web application that revolutionizes the way users book transportation tickets. By providing a unified platform for multiple transport modes (bus, rail, air, and metro), users can easily compare options, select seats, and complete bookings all in one place.
- Unified Experience: One platform for all transport modes
- Time-Saving: Compare multiple options quickly
- User-Friendly: Intuitive interface with responsive design
- Secure: Safe payment processing and data protection
- Multi-Modal Search: Search across bus, rail, air, and metro services
- Advanced Filtering: Filter by date, time, price, operator, and duration
- Seat Selection: Interactive seat maps for buses and trains
- Booking Management: View, modify, and cancel existing bookings
- Real-time Updates: Live status updates for schedules and availability
-
Search for Transportation
- Enter origin and destination
- Select travel date and time
- Choose transport mode (bus/rail/air/metro)
-
Filter and Compare
- Use filters to narrow down options
- Compare prices, duration, and amenities
- Read reviews and ratings
-
Book Your Trip
- Select preferred option
- Choose seats (if applicable)
- Enter passenger details
- Complete payment
-
Manage Bookings
- View booking history
- Download tickets
- Cancel or modify bookings
- HTML5/CSS3/JavaScript
- Framework: React.js / Vue.js (specify your choice)
- UI Library: Bootstrap / Material-UI / Tailwind CSS
- State Management: Redux / Vuex
- Build Tool: Webpack / Vite
- Runtime: Node.js
- Framework: Express.js
- Authentication: JWT
- Validation: Joi / Yup
- API Documentation: Swagger/OpenAPI
- Primary: MongoDB / PostgreSQL
- Caching: Redis
- Search: Elasticsearch (optional)
- Version Control: Git
- Package Manager: npm / yarn
- Testing: Jest / Mocha
- Linting: ESLint + Prettier
- CI/CD: GitHub Actions
- Containerization: Docker
- Deployment: AWS / Heroku / Vercel
Ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- npm (v9.0.0 or higher) or yarn
- Git (latest version)
- MongoDB / PostgreSQL (depending on your database choice)
- Redis (for caching)
node --version
npm --version
git --version-
Clone the repository
git clone https://github.com/Manishnm10/Transport-Wizard.git cd Transport-Wizard -
Install dependencies
# Install root dependencies npm install # Install client dependencies cd client npm install cd .. # Install server dependencies cd server npm install cd ..
Option 1: Using concurrently (recommended)
# Run both client and server simultaneously
npm run devOption 2: Run separately
# Terminal 1 - Backend server
cd server
npm run dev
# Terminal 2 - Frontend client
cd client
npm start# Build the application
npm run build
# Start production server
npm start# Build and run with Docker Compose
docker-compose up --build
# Run in detached mode
docker-compose up -dApplication URLs:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- API Documentation: http://localhost:5000/api/docs
-
Fork the repository
# Click the "Fork" button on GitHub, then: git clone https://github.com/your-username/Transport-Wizard.git cd Transport-Wizard git remote add upstream https://github.com/Manishnm10/Transport-Wizard.git
-
Create a feature branch
git checkout -b feature/amazing-feature # or git checkout -b fix/bug-description -
Make your changes
- Write clear, maintainable code
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
-
Commit your changes
git add . git commit -m "feat: add amazing new feature"
-
Push and create a Pull Request
git push origin feature/amazing-feature
Then create a Pull Request on GitHub.
- Use ES6+ features
- Follow ESLint configuration
- Use Prettier for formatting
- Write JSDoc comments for functions
- Use functional components with hooks
- Follow React best practices
- Use PropTypes or TypeScript for type checking
- Use BEM methodology for naming
- Mobile-first responsive design
- Consistent spacing and typography
Before submitting a Pull Request:
- ✅ Run tests:
npm test - ✅ Run linting:
npm run lint - ✅ Format code:
npm run format - ✅ Update documentation if needed
- ✅ Add tests for new features
- ✅ Ensure CI passes
- ✅ Write a clear PR description