2026
Airline Reservation System
- Java
- JavaFX
- AtlantaFX
- SQLite
- Bouncy Castle (Argon2id)
- Apache PDFBox
- JUnit
- jpackage
- Inno Setup
Overview
A desktop flight booking app with flight search, a visual seat map, online check-in and a staff panel. Passengers manage their tickets with a booking code and last name; staff manage flights and passenger lists.
01 · Problem
A flight booking system must never sell the same seat twice, must price fares correctly by load and time, and must apply check-in and refund rules based on the time left before departure. Passengers also need safe access to their booking without an account.
02 · Solution
I built a two-sided desktop app in Java and JavaFX. The passenger side has flight search with a date strip, a visual seat map for three aircraft types, a four-step booking flow, and seat changes, check-in and cancellation with a booking code and last name. The staff side has a dashboard, new flights, delays, cancellations and passenger lists. Prices are always recalculated in the service layer. A partial unique index in SQLite prevents double-selling a seat. Booking codes are random and failed lookups are throttled. Staff passwords are stored with Argon2id.
03 · Outcome
A Turkish and English app with light and dark themes, distributed as a Windows installer. Sample data with 1,296 flights and about 130,000 tickets loads with one click. E-tickets and barcoded boarding passes can be saved as PDF. It has 34 unit tests; one of them checks that when 16 threads try to buy the same seat at once, only one succeeds.