A professional Railway Reservation System built using Core Java, demonstrating Object-Oriented Programming, Collections, Multithreading, Serialization, Exception Handling, and File Handling.
The Railway Reservation System is a console-based Java application that simulates a real railway ticket reservation platform.
It allows passengers to book tickets, manage waiting lists, cancel reservations, search using PNR numbers, generate reports, and automatically store booking records using Java Serialization.
This project is developed using Core Java only, making it ideal for demonstrating strong Java fundamentals and object-oriented programming skills.
- Book Ticket
- Cancel Ticket
- Search Ticket by PNR
- Reschedule Ticket
- Waiting List
- Automatic Seat Allocation
- Automatic Waitlist Promotion
- Passenger Registration
- Passenger Validation
- Search Passenger
- Booking History
- Add Train
- Remove Train
- Search Train
- Seat Availability
- Seat Map
- Occupancy Report
- General
- Sleeper
- AC 3 Tier
- AC 2 Tier
- AC First Class
- General
- Tatkal
- Ladies
- Senior Citizen
- Physically Challenged
- Distance Based Fare
- Seat Class Multiplier
- Tatkal Charges
- Cancellation Refund
- Revenue Report
- Most Booked Train
- Occupancy Percentage
- Confirmed Tickets
- Waiting List
- Java Serialization
- Automatic Booking Save
- Automatic Booking Load
RailwayReservationSystem
│
├── model
│ ├── Passenger.java
│ ├── Train.java
│ └── Ticket.java
│
├── service
│ └── ReservationSystem.java
│
├── util
│ ├── FileUtil.java
│ └── PNRGenerator.java
│
├── exception
│ ├── SeatNotAvailableException.java
│ └── TicketNotFoundException.java
│
├── Main.java
│
├── bookings.dat
│
└── README.md
| Technology | Purpose |
|---|---|
| Java | Programming Language |
| Collections Framework | Data Management |
| Serialization | Persistent Storage |
| File Handling | Save Booking Data |
| Multithreading | Thread Safety |
| OOP | Application Design |
| Exception Handling | Error Management |
- Object-Oriented Programming
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
- Comparable Interface
- Collections Framework
- Serialization
- File Handling
- Exception Handling
- Multithreading
- Synchronization
- Enums
- Generics
Open using
- Eclipse IDE
- IntelliJ IDEA
- VS Code
Execute
Main.java
=======================================
RAILWAY RESERVATION SYSTEM
=======================================
1. Display Trains
2. Book Ticket
3. Search Ticket
4. Cancel Ticket
5. Display Bookings
6. Revenue Report
7. Exit
========================================
PNR Number : PNR20261001
Passenger Name : Aravindh
Train Number : 12637
Train Name : Pandian Express
Seat : S15
Class : AC_TIER_3
Quota : GENERAL
Status : CONFIRMED
Fare : ₹1750.00
========================================
bookings.dat
Booking records are automatically stored and loaded using Java Serialization.
- Login System
- Admin Dashboard
- Database Integration
- Online Payment
- Email Notifications
- PDF Ticket Generation
- QR Code Ticket
- GUI Version (JavaFX)
- REST API
- Spring Boot Version
This project demonstrates practical knowledge of
- Clean Code
- SOLID Design Principles
- OOP
- Collections
- Serialization
- Multithreading
- Exception Handling
- Java Project Structure
making it suitable for showcasing Java development skills on GitHub.
Aravindh D
Java Developer
⭐ If you found this project useful, consider giving it a star!