Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚆 Railway Reservation System

A Professional Core Java Console Application

Java Core Java Collections Serialization Thread Safe License

A professional Railway Reservation System built using Core Java, demonstrating Object-Oriented Programming, Collections, Multithreading, Serialization, Exception Handling, and File Handling.


📖 About The Project

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.


✨ Features

🚆 Reservation

  • Book Ticket
  • Cancel Ticket
  • Search Ticket by PNR
  • Reschedule Ticket
  • Waiting List
  • Automatic Seat Allocation
  • Automatic Waitlist Promotion

👤 Passenger Management

  • Passenger Registration
  • Passenger Validation
  • Search Passenger
  • Booking History

🚄 Train Management

  • Add Train
  • Remove Train
  • Search Train
  • Seat Availability
  • Seat Map
  • Occupancy Report

💺 Reservation Categories

  • General
  • Sleeper
  • AC 3 Tier
  • AC 2 Tier
  • AC First Class

🎫 Booking Quotas

  • General
  • Tatkal
  • Ladies
  • Senior Citizen
  • Physically Challenged

💰 Fare Management

  • Distance Based Fare
  • Seat Class Multiplier
  • Tatkal Charges
  • Cancellation Refund

📊 Reports

  • Revenue Report
  • Most Booked Train
  • Occupancy Percentage
  • Confirmed Tickets
  • Waiting List

💾 Data Storage

  • Java Serialization
  • Automatic Booking Save
  • Automatic Booking Load

🏗️ Project Structure

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

⚙️ Technologies Used

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

🧠 Core Java Concepts Used

  • Object-Oriented Programming
  • Encapsulation
  • Abstraction
  • Inheritance
  • Polymorphism
  • Comparable Interface
  • Collections Framework
  • Serialization
  • File Handling
  • Exception Handling
  • Multithreading
  • Synchronization
  • Enums
  • Generics

🚀 How To Run

Clone this Repository

Open Project

Open using

  • Eclipse IDE
  • IntelliJ IDEA
  • VS Code

Run

Execute

Main.java

💻 Sample Menu

=======================================

     RAILWAY RESERVATION SYSTEM

=======================================

1. Display Trains

2. Book Ticket

3. Search Ticket

4. Cancel Ticket

5. Display Bookings

6. Revenue Report

7. Exit

🎟 Sample Ticket

========================================

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

========================================

📂 Output Files

bookings.dat

Booking records are automatically stored and loaded using Java Serialization.


📈 Future Enhancements

  • Login System
  • Admin Dashboard
  • Database Integration
  • Online Payment
  • Email Notifications
  • PDF Ticket Generation
  • QR Code Ticket
  • GUI Version (JavaFX)
  • REST API
  • Spring Boot Version

⭐ Why This Project?

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.


👨‍💻 Author

Aravindh D

Java Developer


⭐ If you found this project useful, consider giving it a star!

About

This project is developed using **Core Java only**, making it ideal for demonstrating strong Java fundamentals and object-oriented programming skills.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages