A comprehensive flight booking system built with Java Swing, utilizing Object-Oriented Programming principles and SQLite for data persistence. The system supports flight management, passenger records, and booking functionality.
- Create and manage flight schedules
- Update flight information (departure times, destinations, status)
- List and search available flights
- Add and manage passenger records
- Store passenger details and contact information
- Create new flight reservations
- Link passengers to flights
- View and manage bookings
- SQLite database for reliable data storage
- Automatic data seeding for demo purposes
- Data integrity maintained across sessions
- Java 8+ - Core programming language
- Java Swing - GUI framework
- SQLite - Embedded database
- JDBC - Database connectivity
flight-system/
├── src/
│ ├── Main.java # Application entry point
│ ├── database/
│ │ ├── DatabaseConnection.java
│ │ └── DataSeeder.java
│ ├── model/
│ │ ├── Flight.java
│ │ ├── Passenger.java
│ │ └── Booking.java
│ ├── dao/
│ │ ├── FlightDAO.java
│ │ ├── PassengerDAO.java
│ │ └── BookingDAO.java
│ └── gui/
│ ├── MainFrame.java
│ ├── FlightPanel.java
│ ├── PassengerPanel.java
│ └── BookingPanel.java
├── lib/
│ └── sqlite-jdbc-3.42.0.0.jar
├── out/ # Compiled classes
└── flight_system.db # SQLite database
- Java JDK 8 or higher
If the project is already compiled (check for out/ folder):
cd flight-system
java -cp "out:lib/sqlite-jdbc-3.42.0.0.jar" MainOn Windows:
java -cp "out;lib/sqlite-jdbc-3.42.0.0.jar" Main-
Clone the repository
git clone <repository-url> cd flight-system
-
Compile the source files
mkdir -p out javac -cp "lib/sqlite-jdbc-3.42.0.0.jar" -d out src/*.java src/**/*.java
-
Run the application
java -cp "out:lib/sqlite-jdbc-3.42.0.0.jar" Main
- Open the project in IntelliJ IDEA, Eclipse, or VS Code
- Add
lib/sqlite-jdbc-3.42.0.0.jarto your project libraries - Run
Main.java
The application uses SQLite with automatic initialization. On first run, it creates flight_system.db with the required tables and sample data.
To reset the database, simply delete flight_system.db and restart the application.