A bus reservation platform built using React, Spring Boot, and PostgreSQL, deployed on Render with modern engineering principles, modular backend architecture, and a clean scalable user interface.
👉 https://bus-booking-system-frontend.onrender.com
⚠ Backend + PostgreSQL remain private for security, rate limiting, and user protection.
The Bus Booking System provides a complete end-to-end ticket reservation experience:
- 🔐 JWT-secured authentication
- 🚌 Route-based bus search
- 🎫 Real-time seat availability tracking
- 👥 Multi-passenger booking
- 🧾 Booking history with seat details
- 📡 Fully deployed with CI-friendly architecture
Built for scalability, modularity, and enterprise-readiness.
- Secure registration & login
- Search buses dynamically
- Real-time seat availability
- Multi-passenger booking
- Booking history
- Layered backend architecture
- Robust validation
- Modular React UI
- Strong JWT security
- Clean API design
- React 18
- React Router
- Axios
- CSS Modules
- Java 17+
- Spring Boot 3
- Spring Security (JWT)
- Spring Data JPA
- PostgreSQL 15 (Managed on Render)
- Render Web Service
- Render Static Site
- Render Managed PostgreSQL
- Dockerfile
┌────────────────────────────-┐
│ React Frontend │
│ User Interface + Routing │
└──────────────┬──────────────┘
│ HTTPS (Axios)
▼
┌────────────────────────────┐
│ Spring Boot Backend │
│ API, Auth, Booking Logic │
└──────────────┬─────────────┘
│ JPA Queries
▼
┌────────────────────────────┐
│ PostgreSQL Database │
│ Managed on Render Cloud │
└────────────────────────────┘
bus-booking-system/
│
├── frontend/
│ ├── public/
│ └── src/
│ ├── components/
│ ├── pages/
│ ├── api/
│ ├── hooks/
│ └── styles/
│
├── src/ (Spring Boot Backend)
│ ├── main/java/com/busbooking
│ │ ├── controller/
│ │ ├── service/
│ │ ├── repository/
│ │ ├── model/
│ │ └── security/
│ └── main/resources/
│
├── screenshots/
├── Dockerfile
└── README.md
git clone https://github.com/TheComputationalCore/bus-booking-system.git
cd bus-booking-systemConfigure PostgreSQL:
spring.datasource.url=jdbc:postgresql://HOST:PORT/DATABASE
spring.datasource.username=USER
spring.datasource.password=PASSWORD
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialectStart backend:
mvn spring-boot:runcd frontend
npm install
npm startRuns at: http://localhost:3000
- JWT stored in
localStorage - Auto-injected into Axios headers
- Invalid tokens → 401 → redirect login
POST /api/auth/registerPOST /api/auth/loginGET /api/busesGET /api/buses/{id}POST /api/bookingsGET /api/bookings/history
- Email required
- Password ≥ 6 chars
- Name ≤ 100 chars
- Valid times
- Seats 0–100
- Locations ≤ 100 chars
- Unique seat numbers
- Non-empty passengers
- Ages 1–120
- Static Site
- Build:
npm run build - Publish:
build/
- Web Service using
Dockerfile
- Render Managed PostgreSQL
- Admin Panel
- Payment Gateway
- Email Tickets
- Real-Time Seat Locking
- RBAC
Dinesh Chandra — TheComputationalCore
GitHub: https://github.com/TheComputationalCore
YouTube: https://www.youtube.com/@TheComputationalCore
MIT License
















