A comprehensive Java-based Flight Booking System with flight information management, seat selection, and payment processing capabilities.
- View all available flights
- Search flights by origin and destination
- Display detailed flight information (airline, route, timing, pricing)
- Real-time seat availability tracking
- Visual seat map display (Business and Economy class)
- Real-time seat availability status
- Multiple seat classes with dynamic pricing:
- Business Class: Rows 1-3 (Premium pricing)
- Economy Class: Rows 4-10 (Standard pricing)
- Comprehensive passenger information collection
- Personal details validation
- Passport information storage
- Create new bookings
- Unique booking ID generation
- View all bookings
- Search bookings by ID
- Detailed booking confirmation
Multiple payment methods supported:
- Credit/Debit Card (with validation)
- UPI Payment (user@bank format)
- Net Banking (multiple bank options)
- Secure transaction processing
- Payment confirmation with transaction ID
FlightBookingSystem/
│
├── src/
│ ├── Main.java # Main application entry point
│ │
│ ├── models/ # Data models
│ │ ├── Flight.java # Flight entity
│ │ ├── Seat.java # Seat entity
│ │ ├── Passenger.java # Passenger entity
│ │ └── Booking.java # Booking entity
│ │
│ └── services/ # Business logic layer
│ ├── FlightService.java # Flight operations
│ ├── BookingService.java # Booking operations
│ └── PaymentService.java # Payment processing
│
├── README.md # Project documentation
├── FEATURES.md # Detailed features list
└── HOW_TO_RUN.md # Execution instructions
- Flight: Manages flight details, seat allocation, and availability
- Seat: Represents individual seats with class and booking status
- Passenger: Stores passenger personal and travel information
- Booking: Links passengers, flights, and seats with payment status
- FlightService: Handles flight search, retrieval, and display operations
- BookingService: Manages booking creation, confirmation, and retrieval
- PaymentService: Processes various payment methods securely
- Language: Java (JDK 8 or higher)
- Concepts:
- Object-Oriented Programming (OOP)
- Collections Framework
- Date-Time API (Java 8+)
- Stream API
- Exception Handling
- Input Validation
- Java Development Kit (JDK) 8 or higher
- Any Java IDE (Eclipse, IntelliJ IDEA, NetBeans) or Command Line
# Navigate to the src directory
cd FlightBookingSystem/src
# Compile all Java files
javac Main.java models/*.java services/*.java
# Run the application
java Main- Open the project in your IDE
- Navigate to
Main.java - Right-click and select "Run"
- View All Flights: Display complete flight schedule
- Search Flights: Find flights by route
- Book a Flight: Complete booking process
- View All Bookings: See all confirmed bookings
- View Booking Details: Get specific booking information
- Exit: Close the application
- Select a flight from available options
- Choose your preferred seat (visual seat map)
- Enter passenger information
- Select payment method
- Complete payment
- Receive booking confirmation
The system comes pre-loaded with 6 sample flights:
- AI101: Delhi → Mumbai
- BA202: London → New York
- EK303: Dubai → Singapore
- SG404: Bangalore → Goa
- QR505: Doha → Paris
- LH606: Frankfurt → Tokyo
- Object-Oriented Design: Clean separation of concerns with models and services
- Data Management: Efficient use of Java Collections (ArrayList, Stream API)
- User Interface: Console-based interactive menu system
- Input Validation: Robust validation for payment and booking details
- Business Logic: Real-world flight booking workflow implementation
- Card number validation (16 digits)
- CVV validation (3 digits)
- UPI ID format validation
- Seat booking conflict prevention
- Transaction ID generation for payment tracking
- Database integration (MySQL/PostgreSQL)
- User authentication system
- Email/SMS notifications
- Multi-currency support
- Flight cancellation and refund
- Loyalty points system
- Admin panel for flight management
- Web interface (Spring Boot)
Project: Flight Booking System
Purpose: Java Development Internship 2026 - Task Submission
This project is created for educational purposes as part of the 2026 Internship Program.
Special thanks to the internship program coordinators for providing this learning opportunity.
Happy Coding! ✨