Back to Projects

My Journey of Building a Flight Reservation System

Developed a comprehensive Flight Reservation System using C language with integrated chatbot functionality for efficient flight management and booking.

Building a Flight Reservation System

By the time I started working on this project during my second year at IISER, I already had some experience with programming. But I wanted to challenge myself with something larger than the projects I had built before.

Around that time, I became fascinated by systems that most of us use every day without thinking much about them. Flight booking platforms were one of those systems. Every time someone books a ticket online, an entire chain of operations happens in the background. Seats get updated, passenger information gets stored, records change instantly, and multiple users interact with the same data.

I wanted to understand how all of that worked.

So I decided to build my own Flight Reservation System using C.

At first, I underestimated how complicated the project would become. I thought it would mostly involve storing information and displaying it when needed. Instead, I found myself dealing with booking logic, cancellations, data management, search functionality, and dozens of edge cases I had never considered before.

One thing I quickly learned was that building software is very different from imagining software.

Ideas always seem simple until you start implementing them.

There were moments when a single bug would keep me occupied for an entire evening. Sometimes the system behaved perfectly during testing and then failed immediately when I tried something slightly different. Those moments were frustrating, but they forced me to think more carefully about how users actually interact with software.

One of my favourite additions was the chatbot. Compared to modern AI tools, it was very simple, but I loved the idea of creating something that could guide users through the system instead of forcing them to memorize commands. It made the project feel more interactive and gave me an opportunity to experiment with a completely different way of designing user experiences.

As the project grew, I started appreciating the importance of structure. Without organizing the code properly, even small changes became difficult. I learned why experienced developers spend so much time thinking about architecture before they start building.

The final system allowed administrators to manage flights and users to search, book, and cancel reservations. More importantly, it gave me a much deeper understanding of how larger software systems are designed.

Looking back now, I see this project as a transition point in my journey. Earlier projects taught me how to code. This project started teaching me how to think like a developer.

It pushed me to break problems into smaller parts, anticipate mistakes before they happened, and design software around the people who would eventually use it.

More than the finished application, that's what I'm most proud of.

Because by the end of this project, I wasn't just writing programs anymore—I was beginning to understand how real systems are built.