Flight Booking Management System Project
Flight Booking Management System Project
Programming II
System Users
• Customers: Travelers who book flights and manage their reservations
• Travel Agents: Staff who assist customers with bookings and manage flight information
• System Administrator: Manages system settings and user access
Core Features
1. User Authentication and Profile Management
Features:
• Secure login system with username and password
• Role-based access (customer, agent, administrator)
• User profile creation and management
• Session handling and logout functionality
Requirements:
• Passwords must be at least 6 characters with letters and numbers
• Store user information securely in files
• Implement proper validation for all input fields
• Display appropriate error messages for failed authentication
Sample Scenario:
• Customer enters username "traveler22" and password "trip2023"
• System validates credentials against stored data
• If valid, system displays customer dashboard with booking options
• If invalid, system shows appropriate error message
2. Flight Management Features:
• Flight creation and management
• Search flights by various criteria (origin, destination, date)
• Flight schedule viewing and updates
• Seat availability tracking
Flight Data:
• Flight number, airline, origin, destination
• Departure and arrival times
• Available seat classes (Economy, Business, First Class)
• Pricing for each seat class
• Current seat availability
Sample Scenario:
• Agent selects "Add New Flight" option
• System prompts for flight details (number, airline, route, schedule, pricing)
• System validates data (no duplicate flight numbers, valid airports, etc.)
• System adds flight to database and confirms creation
• Flight becomes available in search results
FCDS
Programming II
User Interface
• Create a console-based menu system
• Display different menus based on user role
• Provide clear feedback messages
• Format output for readability (tables, borders, etc.)
Bonus Features
1. Simple GUI
• Create a basic graphical interface using Java Swing
• Implement forms for flight search and booking
• Display flight schedules in organized grids
• Include navigation menus and dashboard views
2. Database Storage
• Replace file storage with a simple database (SQLite recommended)
• Create appropriate tables for all entities
• Implement proper data relationships
• Use prepared statements for database operations
5. Flight
• Responsibility: Stores flight information and manages seats
• Key Attributes: flightNumber, airline, origin, destination, departureTime, arrivalTime, availableSeats,
prices
• Key Methods: checkAvailability(), updateSchedule(), calculatePrice(), reserveSeat()
FCDS
Programming II
6. Booking
• Responsibility: Manages booking information and status
• Key Attributes: bookingReference, customer, flight, passengers, seatSelections, status, paymentStatus
• Key Methods: addPassenger(), calculateTotalPrice(), confirmBooking(), cancelBooking(),
generateItinerary()
7. Passenger
• Responsibility: Stores passenger information
• Key Attributes: passengerId, name, passportNumber, dateOfBirth, specialRequests
• Key Methods: updateInfo(), getPassengerDetails()
8. Payment
• Responsibility: Handles payment information and processing
• Key Attributes: paymentId, bookingReference, amount, method, status, transactionDate
• Key Methods: processPayment(), validatePaymentDetails(), updateStatus()
9. BookingSystem
• Responsibility: Central coordinator for the booking system
• Key Attributes: users, flights, bookings, payments
• Key Methods: searchFlights(), createBooking(), processPayment(), generateTicket()
10. FileManager
• Responsibility: Handles data persistence using files
• Key Methods: saveUsers(), loadUsers(), saveFlights(), loadFlights(), saveBookings(), loadBookings()