Skip to content
md ~/projects/havayolu-rezervasyon-sistemi
Project archive

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.