A modern, multi-page flight reservation system built with Python, customtkinter, and SQLite. Book, view, edit, and delete flight reservations with a beautiful, user-friendly interface.
- Book Flights: Add new reservations with passenger details, flight info, and seat selection.
- View Reservations: See all bookings in a stylish, interactive table with selection checkboxes.
- Edit Reservations: Update any reservation’s details with instant validation.
- Delete Reservations: Remove bookings with confirmation dialogs.
- Input Validation: Prevent duplicate bookings, seat conflicts, and invalid data.
- Unique Seat Assignment: No two users can book the same seat on the same flight and date.
- Custom Icon & Modern UI: Professional look using customtkinter and your own app icon.
- Single Executable: Easily package as a Windows .exe for distribution.
Sprints-x-Microsoft-Programing-Using-Python-main/
├── screenshots/
├── main.py # Main application entry point
├── database.py # SQLite database logic
├── home.py # Home page UI
├── booking.py # Flight booking UI
├── reservations.py # Reservation list UI
├── edit_reservation.py # Edit reservation UI
├── flights.db # SQLite database file (auto-created)
├── flight.ico # App icon (add your own)
├── README.md # Project documentation
└── requirements.txt # Python dependencies
- Python 3.8+
- customtkinter
- SQLite3 (bundled with Python)
- Clone the repository:
git clone https://github.com/Abdelwakil-Mansour/Sprints-x-Microsoft-Programing-Using-Python.git cd Sprints-x-Microsoft-Programing-Using-Python-main - Install dependencies:
pip install customtkinter
- (Optional) Add your icon:
Place a
.icofile namedflight.icoin the project directory for a custom app icon.
python main.py- The app window will launch. The database file (
flights.db) is created automatically.
- Install PyInstaller:
pip install pyinstaller
- Build the executable:
pyinstaller --onefile --windowed --icon=flight.ico main.py
- Find your .exe:
- The executable will be in the
distfolder.
- The executable will be in the
- Book a New Flight: Go to the booking form.
- View All Reservations: See all bookings in a table.
- Fill in all fields (Passenger Name, Flight Number, Departure, Destination, Date, Seat Number).
- Click Submit Reservation to save.
- Input validation prevents duplicate bookings and seat conflicts.
- View all reservations in a table with selection checkboxes.
- Select a reservation to Edit or Delete.
- Click Refresh List to reload data.
- Update any field and save changes.
- Validation ensures no seat conflicts or duplicate data.
Pull requests are welcome! For major changes, please open an issue first to discuss what you’d like to change.
This project is open source and available under the MIT License.
Created by Abdelwakil Mansour
- CustomTkinter for the modern UI framework
- PyInstaller for packaging
- Microsoft Sprints & Python Programming resources