How spark1805/railway_reservation_system works
This is a Spring Boot railway reservation backend. Users search trains and seat availability, then submit passenger and schedule details to create a booking; they can also retrieve booking history or cancel a ticket. Search and booking are distinct stages, with service logic using JPA repositories for persistence. README documents JWT authentication, but the supplied tree and source excerpts do not show its implementation or endpoint wiring; meal and fare services are present, but their callers are not shown.
Main entry points: BookingService.java Booking Logic · TrainService.java Train Search · TicketRepository.java Ticket Repository · ScheduleRepository.java Schedule Repository
Components 18
REST API
- Train API
src/main/java/com/prnv/jfsd/trs/controller/TrainController.java - Booking API
src/main/java/com/prnv/jfsd/trs/controller/BookingController.java - Ticket API
src/main/java/com/prnv/jfsd/trs/controller/TicketController.java - User API
src/main/java/com/prnv/jfsd/trs/controller/UserController.java
Reservation Services
- Train Search
src/main/java/com/prnv/jfsd/trs/service/TrainService.java - Seat Availability
src/main/java/com/prnv/jfsd/trs/service/SeatAvailabilityService.java - Booking Logic
src/main/java/com/prnv/jfsd/trs/service/BookingService.java - Seat Allocation
src/main/java/com/prnv/jfsd/trs/service/SeatAllocationService.java
Persistence Access
- Route Repository
src/main/java/com/prnv/jfsd/trs/repository/RouteRepository.java - Schedule Repository
src/main/java/com/prnv/jfsd/trs/repository/ScheduleRepository.java - Coach Repository
src/main/java/com/prnv/jfsd/trs/repository/CoachRepository.java - Ticket Repository
src/main/java/com/prnv/jfsd/trs/repository/TicketRepository.java - Passenger Repository
src/main/java/com/prnv/jfsd/trs/repository/PassengerRepository.java - User Repository
src/main/java/com/prnv/jfsd/trs/repository/UserRepository.java
Ancillary Services
- Fare Calculation
src/main/java/com/prnv/jfsd/trs/service/FareService.java - Meal Pricing
src/main/java/com/prnv/jfsd/trs/service/MealService.java
Other components
- User
- MySQL Database
Connections 22
- User → Train API: searches trains
- Train API → Train Search: calls search
- Train Search → Route Repository: finds routes
- Train Search → Schedule Repository: loads schedules
- Train Search → Seat Availability: gets availability
- Seat Availability → Coach Repository: loads coaches
- User → Booking API: submits booking
- Booking API → Booking Logic: creates booking
- Booking Logic → User Repository: loads user
- Booking Logic → Schedule Repository: loads schedule
- Booking Logic → Ticket Repository: counts and saves tickets
- Booking Logic → Passenger Repository: saves passengers
- User → Ticket API: cancels ticket
- Ticket API → Ticket Repository: finds and updates ticket
- User → User API: requests history
- User API → Ticket Repository: loads bookings
- Route Repository → MySQL Database: queries routes
- Schedule Repository → MySQL Database: reads schedules
- Coach Repository → MySQL Database: reads coaches
- Ticket Repository → MySQL Database: reads and writes tickets
- Passenger Repository → MySQL Database: writes passengers
- User Repository → MySQL Database: reads users