Skip to main content

Flight-Booking Reservation System

A comprehensive desktop reservation and seat allocation system built with C# and .NET.

Enterprise · 2021 · Sole Developer

Technology

  • C#
  • .NET Framework
  • WinForms
  • SQL Server
  • ADO.NET

Overview

An older project, and a good one to point to if you want to see layered desktop architecture without any of the modern web tooling: a C# WinForms flight reservation system backed by SQL Server, handling passenger registration, seat class allocation, and ticket generation.

Shared publicly on GitHub as a reference for that layering pattern and straightforward SQL database connectivity.

Seat allocation is the one part of a booking system that can't just be 'insert a row' — two passengers selecting the same seat in the same cabin class at nearly the same moment is the exact race condition every reservation system has to handle, even a desktop one with a single shared database backing it.

The challenge

Problem: A straightforward 'check if seat is free, then book it' flow has a race window between the check and the write — on a shared SQL Server backend, two near-simultaneous bookings from different terminals could both pass the check before either one commits, resulting in a double-booked seat.

Approach: Used parameterized SQL with a conditional update (the booking write only succeeds if the seat's status is still 'available' at write time, checked and updated in the same statement) instead of a separate read-then-write, closing the race window instead of just narrowing it.

Result: Seat booking became safe under concurrent access without needing a full transaction-isolation redesign — a small, deliberate fix that's easy to miss if you're thinking about a booking system as 'just CRUD.'

Key features

  • Interactive seat selection and cabin class tiering (Economy, Business, First)
  • Passenger manifest logging and ticket booking verification
  • Race-condition-safe seat booking via conditional check-and-update SQL statements
  • Flight schedule dispatch, delay management, and route mapping
  • SQL Server ADO.NET database operations with parameterized queries

← All projects