THE NAVODAYA ACADEMY, NAMAKKAL
ACADEMIC YEAR : 2025-2026
Computer Science – Project on
AeroDB- Airport Management System
ROLL NO :
NAME : A. AADYANTH KRISHNA
CLASS : XII
SUB CODE : 083 (COMPUTER SCIENCE)
PROJECT : MR. V.BALAJI DHANDAPANI
GUIDE PGT(CS)
1|P ag e
CERTIFICATE
This is to certify that student A. AADYANTH
KRISHNA with the Roll No: 0047 has
successfully completed his project work
entitled “AeroDB- Airport Management
System” during the academic year 2025-2026
towards partial fulfillment of Computer Science
Practical Examination conducted by CBSE.
------------------- ---------------------
Teacher’s Signature Principal’s Signature
------------------- Date:
External’s Signature
2|P ag e
ACKNOWLEDGEMENTS
I express my heartfelt gratitude to our Principal,
Mr. A. ANTONY RAJ, M.Com., M.Ed., for his
unwavering support and invaluable guidance. I
deeply appreciate the opportunity he provided to
utilize the campus facilities, which played a crucial
role in the successful completion of this project.
I am profoundly grateful for the guidance and
support of my subject teacher, Mr. V. BALAJI
DHANDAPANI, MCA., M.Phil., B.Ed. His exceptional
ability to guide and correct me in every situation
has been invaluable throughout my journey. I
extend my heartfelt thanks to him.
Finally, I extend my gratefulness for to one and all
whose behind-the-scenes efforts made this project
a success. I am sincerely thankful for their
invaluable support.
3|P ag e
INDEX
S.NO DESCRIPTION PAGE NO.
01 System 05
Implementation
02 Introduction 06
and Aim
03 Proposed 07
System
04 SDLC 09
05 Source Code 11
06 MySQL 23
Databases
07 Output 26
08 Bibliography 36
4|P ag e
SYSTEM IMPLEMENTATION
Hardware:
CPU: Intel Core-i3-4100U
Ram: 8 GB
Storage: 512 GB
Software:
OS: Microsoft Windows 11
Python IDLE (Ver. 3.13.3)
MySQL & MySQL-Connector
Microsoft Word 2021 LTSC
Pretty Table
PyCharm IDE & Notepad++
5|P ag e
Introduction and Aim
Aero-DB Airport Management System is a software
solution designed to streamline and automate the
operations of a typical airport. It aims to improve
efficiency, accuracy and productivity in managing
aircrafts, jet fuel management, runway
maintenance charts ,etc. This system eliminates the
need for manual record-keeping and provides a
user-friendly interface for easy access and retrieval
of information.
To enhance its functionality Aero-DB integrates
MySQL as its backend database. This powerful
database solution not only facilitates efficient data
storage but also prioritizes security , ensuring
sensitive information of the passengers/staff is
protected.
6|P ag e
PROPOSED SYSTEM
The proposed Airport Management System will
offer a comprehensive suite of features designed to
efficiently manage and enhance various aspects of
airport operations. Key modules include Flight
Status Tracking, Runway Maintenance Scheduling,
Jet Fuel Management, and Passenger Services
Management.
Flight Status Tracking:
This module enables users to view both arriving and
departing flights in real time. Flight data is neatly
organized in a tabular format for ease of access and
quick reference.
Runway Maintenance Scheduling:
Designed for airport staff and pilots, this module
provides access to runway condition reports and
maintenance charts. It helps in determining the
suitability of runways for safe takeoff and landing
operations.
7|P ag e
Jet Fuel Management:
This module tracks the quantity of jet fuel supplied
to individual aircraft. It also calculates the
corresponding cost, generating billing information
for the respective airlines.
Passenger Management:
This module maintains records of all passengers
entering the airport. Each passenger is linked to
their flight number, facilitating streamlined
identification and efficient management of
passenger flow.
Note: Only users logged in with administrator
privileges are permitted to modify data within these
modules.
8|P ag e
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
The System Development Life cycle (SDLC) is a
structured approach that outlines the phases
involved in developing and maintaining a software
system. It provides a framework for project
management, ensuring that the system is
developed in a systematic and organized manner.
The SDLC typically consists of the following phases:
Requirement Gathering and Analysis
System Design
Implementation
Testing
Deployment
Operation and
Maintenance
Pictorial
Representation of
SDLC:
9|P ag e
SOURCE
CODE
10 | P a g e
1 import mysql.connector as conn
2 con=conn.connect(host="localhost", user="root",
3 password="admin", database="aerodb")
4 cur=con.cursor()
5
6 #Creating Tables
7 def create_tables():
8 #Runway Maintenance Tracking
9 cur.execute("CREATE TABLE runway_maintenance(maint_id INT
10 PRIMARY KEY,runway_no VARCHAR(5), maint_date DATE, status
11 VARCHAR(20)");
12 #Departures
13 cur.execute("CREATE TABLE DEPARTURES (flight_no VARCHAR(10)
14 PRIMARY KEY, airlines VARCHAR(50), destination VARCHAR(20),
15 d_time DATETIME, gate VARCHAR(10), status VARCHAR(15));")
16 #Arrivals
17 cur.execute("CREATE TABLE arrivals (flight_no VARCHAR(10)
18 PRIMARY KEY, airlines VARCHAR(50), origin VARCHAR(20), a_time
19 DATETIME, gate VARCHAR(10), status VARCHAR(15));")
20 #Jet Fuel Mgmt
21 cur.execute("CREATE TABLE jetfuel (fuel_id INT, flight_no
22 VARCHAR(10), fuel_quantity FLOAT, price DECIMAL(10,2), total
23 DECIMAL(10,2), fueling_time DATETIME);")
24 #Passenger
25 cur.execute("CREATE TABLE pax (p_id INT, p_name VARCHAR(40),
26 p_gender varchar(2), p_flight_no VARCHAR(10), p_age INT,
27 p_nationality VARCHAR(10));")
28 con.commit()
29 conn.close()
30 print("Tables Created Successfully!")
31
32 from prettytable import PrettyTable
33 auth=False
34
35 def view_departures():
36 cur.execute("SELECT * FROM departures")
37 rows = cur.fetchall()
38 cols = [desc[0] for desc in cur.description]
39
40 table = PrettyTable()
41 table.field_names = cols
42 for row in rows:
43 table.add_row(row)
44
45 print(table)
46
47
11 | P a g e
48 def departures2():
49 print("Welcome to the Departures Module!")
50 print("Please Choose from the Options Below \n 1. View
51 Departing Flights \n 2. Add Departing Flights \n 3. Delete
52 Entries")
53 try:
54 x = int(input("Your Choice: "))
55 except ValueError:
56 print("Invalid input! Please enter a number.")
57 return
58 if x == 1:
59 view_departures()
60 if x== 2:
61 if auth==True:
62 add_dept()
63 else:
64 admin()
65 if x == 3:
66 if auth==True:
67 flight_no = input("Enter Flight ID to delete: ")
68 cur.execute("DELETE FROM departures WHERE flight_no
69 = %s", (flight_no,))
70 con.commit()
71 print("Flight deleted successfully.")
72
73 def admin():
74 global auth
75 pwd = input("Enter admin password: ")
76 if pwd == "admin":
77 auth = True
78 print("✅ Admin access granted.")
79 return True
80 else:
81 print("❌ Wrong password.")
82 return False
83 def add_dept():
84 if not auth:
85 print("You must be logged in as admin to add departing
86 flights.")
87 return
88
89 flight_no = input("Enter Flight Number: ")
90 airline = input("Enter Airline Name: ")
91 destination = input("Enter Destination: ")
92 departure_time = input("Enter Departure Time (YYYY-MM-DD
93 HH:MM:SS): ")
94 gate = input("Enter Gate: ")
12 | P a g e
95 status = input("Enter Status (On Time / Delayed /
96 Departed): ")
97
98 try:
99 cur = con.cursor()
100 cur.execute("""
101 INSERT INTO departures
102 (flight_no, airline, destination, departure_time,
103 gate, status)
104 VALUES
105 (%s, %s, %s, %s, %s, %s)
106 """, (flight_no, airline, destination, departure_time,
107 gate, status))
108 con.commit()
109 print("✅ Departing flight added.")
110 except conn.Error as err:
111 print("Error inserting departure:", err)
112 finally:
113 cur.close()
114
115 def add_dept():
116 if not auth:
117 print("You must be logged in as admin to add departing
118 flights.")
119 return
120
121 flight_no = input("Enter Flight Number: ")
122 airlines = input("Enter Airlines: ")
123 destination = input("Enter Destination: ")
124 d_time = input("Enter Departure Time (HH:MM:SS): ")
125 gate = input("Enter Gate: ")
126 status = input("Enter Status (On Time / Delayed /
127 Departed): ")
128
129 try:
130 cur = con.cursor()
131 cur.execute("""
132 INSERT INTO departures
133 (flight_no, airlines, destination, d_time, gate,
134 status)
135 VALUES
136 (%s, %s, %s, %s, %s, %s)
137 """, (flight_no, airlines, destination, d_time, gate,
138 status))
139 con.commit()
140 print("✅ Departing flight added.")
141 except conn.Error as err:
13 | P a g e
142 print("Error inserting departure:", err)
143 finally:
144 cur.close()
145
146 def departures():
147 print("Welcome to the Departures Module!")
148 print("1. View Departing Flights")
149 print("2. Add Departing Flight")
150 print("3. Delete Entry")
151
152 try:
153 choice = int(input("Your Choice: "))
154 except ValueError:
155 print("Invalid input!")
156 return
157
158 if choice == 1:
159 view_departures()
160
161 elif choice == 2:
162 if not auth:
163 if not admin():
164 return
165 add_dept()
166
167 elif choice == 3:
168 if not auth:
169 if not admin():
170 return
171 flight_no = input("Enter Flight Number to delete: ")
172 try:
173 cur = con.cursor()
174 cur.execute("DELETE FROM departures WHERE flight_no
175 = %s", (flight_no,))
176 con.commit()
177 print("✅ Flight deleted.")
178 except conn.Error as err:
179 print("Error deleting flight:", err)
180 finally:
181 cur.close()
182
183 else:
184 print("Invalid option.")
185 def view_arrivals():
186 """
187 Fetch and display all arrivals using PrettyTable
188 """
14 | P a g e
189 try:
190 cur = con.cursor()
191 cur.execute("SELECT flight_no, airlines, origin, a_time,
192 gate, status FROM arrivals")
193 rows = cur.fetchall()
194 cur.close()
195
196 if not rows:
197 print("No arrival flights found.")
198 return
199
200 table = PrettyTable()
201 table.field_names = ["Flight No.", "Airlines", "Origin",
202 "Arr Time", "Gate", "Status"]
203 for r in rows:
204 table.add_row(r)
205 print(table)
206 except conn.Error as err:
207 print("Error viewing arrivals:", err)
208
209 def add_arrival():
210 """
211 Prompt for new arrival flight details and insert into
212 arrivals.
213 """
214 if not auth:
215 print("You must be logged in as admin to add arrival
216 flights.")
217 return
218
219 flight_no = input("Enter Flight Number: ")
220 airlines = input("Enter Airline Name: ")
221 origin = input("Enter Origin City: ")
222 arrival_time = input("Enter Arrival Time (YYYY-MM-DD
223 HH:MM:SS): ")
224 gate = input("Enter Gate: ")
225 status = input("Enter Status (On Time / Delayed /
226 Landed): ")
227
228 try:
229 cur = con.cursor()
230 cur.execute("""
231 INSERT INTO arrivals
232 (flight_no, airlines, origin, a_time, gate,
233 status)
234 VALUES
235 (%s, %s, %s, %s, %s, %s)
15 | P a g e
236 """, (flight_no, airlines, origin, arrival_time, gate,
237 status))
238 con.commit()
239 cur.close()
240 print("✅ Arrival flight added.")
241 except conn.Error as err:
242 print("Error inserting arrival:", err)
243
244 def delete_arrival():
245 """
246 Delete an arrival flight based on flight number
247 """
248 if not auth:
249 print("You must be logged in as admin to delete arrival
250 flights.")
251 return
252
253 flight_no = input("Enter Flight Number to delete: ")
254 try:
255 cur = con.cursor()
256 cur.execute("DELETE FROM arrivals WHERE flight_no = %s",
257 (flight_no,))
258 con.commit()
259 cur.close()
260 print(f"✅ Arrival flight {flight_no} deleted.")
261 except conn.Error as err:
262 print("Error deleting arrival:", err)
263
264 def arrivals():
265 print("=== Arrivals Module ===")
266 print("1. View Arrival Flights")
267 print("2. Add Arrival Flight")
268 print("3. Delete Arrival Flight")
269
270 try:
271 choice = int(input("Your Choice: "))
272 except ValueError:
273 print("Invalid input!")
274 return
275
276 if choice == 1:
277 view_arrivals()
278
279 elif choice == 2:
280 if not auth and not admin():
281 return
282 add_arrival()
16 | P a g e
283
284 elif choice == 3:
285 if not auth and not admin():
286 return
287 delete_arrival()
288
289 else:
290 print("Invalid option.")
291
292
293 def view_maintenance():
294 """Fetch and display all runway maintenance records using
295 PrettyTable."""
296 try:
297 cur = con.cursor()
298 cur.execute("SELECT maint_id, runway_no, maint_date,
299 status FROM runway_maintenance")
300 rows = cur.fetchall()
301 cur.close()
302 if not rows:
303 print("No runway maintenance records found.")
304 return
305
306 table = PrettyTable()
307 table.field_names = ["ID", "Runway No.", "Date",
308 "Status"]
309 for r in rows:
310 table.add_row(r)
311 print(table)
312
313 except conn.Error as err:
314 print("Error viewing maintenance:", err)
315
316 def add_maintenance():
317 """Prompt for a new maintenance record and insert into
318 runway_maintenance."""
319 if not auth and not admin():
320 return
321
322 runway_no = input("Enter Runway No. (e.g. 09L): ")
323 maint_date = input("Enter Maintenance Date (YYYY-MM-DD): ")
324 status = input("Enter Status (Scheduled / In Progress /
325 Completed): ")
326
327 try:
328 cur = con.cursor()
329 cur.execute("""
17 | P a g e
330 INSERT INTO runway_maintenance (runway_no,
331 maint_date, status)
332 VALUES (%s, %s, %s)
333 """, (runway_no, maint_date, status))
334 con.commit()
335 cur.close()
336 print("✅ Maintenance record added.")
337 except conn.Error as err:
338 print("Error inserting maintenance:", err)
339
340 def delete_maintenance():
341 """Delete a maintenance record by its ID."""
342 if not auth and not admin():
343 return
344
345 mid = input("Enter Maintenance ID to delete: ")
346 try:
347 cur = con.cursor()
348 cur.execute("DELETE FROM runway_maintenance WHERE
349 maint_id = %s", (mid,))
350 con.commit()
351 cur.close()
352 print(f"✅ Record {mid} deleted.")
353 except conn.Error as err:
354 print("Error deleting maintenance:", err)
355
356 def runway_maintenance_module():
357 """Main menu for Runway Maintenance."""
358 print("=== Runway Maintenance Module ===")
359 print("1. View Records")
360 print("2. Add Record")
361 print("3. Delete Record")
362
363 try:
364 choice = int(input("Your Choice: "))
365 except ValueError:
366 print("Invalid input!")
367 return
368
369 if choice == 1:
370 view_maintenance()
371 elif choice == 2:
372 add_maintenance()
373 elif choice == 3:
374 delete_maintenance()
375 else:
376 print("Invalid option.")
18 | P a g e
377
378 def jetfuel_module():
379 print("\n--- Jet Fuel Management Module ---")
380 print("1. View Fuel Records\n2. Add Fuel Record\n3. Delete
381 Fuel Record")
382 try:
383 choice = int(input("Enter your choice: "))
384 except ValueError:
385 print("Invalid input! Please enter a number.")
386 return
387
388 if choice == 1:
389 cur.execute("SELECT * FROM jetfuel")
390 records = cur.fetchall()
391 if not records:
392 print("No fuel records found.")
393 return
394 table = PrettyTable(['Fuel ID', 'Flight No', 'Quantity
395 (L)', 'Price (₹/L)', 'Total Cost', 'Fueling Time'])
396 for row in records:
397 table.add_row(row)
398 print(table)
399
400 elif choice == 2:
401 try:
402 flight_no = input("Enter Flight Number: ")
403 fuel_qty = float(input("Enter Fuel Quantity (in
404 litres): "))
405 price = float(input("Enter Price per Litre: "))
406 total = fuel_qty * price
407 fueling_time = input("Enter Fueling Time (YYYY-MM-DD
408 HH:MM:SS): ")
409 cur.execute("INSERT INTO jetfuel (flight_no,
410 fuel_quantity, price, total, fueling_time) VALUES (%s, %s, %s,
411 %s, %s)",
412 (flight_no, fuel_qty, price, total,
413 fueling_time))
414 con.commit()
415 print("Fuel record added successfully!")
416 except Exception as e:
417 print("Error:", e)
418
419 elif choice == 3:
420 fuel_id = input("Enter Fuel ID to delete: ")
421 cur.execute("DELETE FROM jetfuel WHERE fuel_id = %s",
422 (fuel_id,))
423 con.commit()
19 | P a g e
424 print("Record deleted successfully (if existed).")
425
426 else:
427 print("Invalid choice!")
428
429 def main_menu():
430 while True:
431 print("\n========== AeroDB Airport Management
432 ==========")
433 print("1. Arrivals")
434 print("2. Departures")
435 print("3. Jet Fuel Management")
436 print("4. Runway Maintenance")
437 print("5. Passenger Management")
438 print("6. Exit")
439
440 try:
441 choice = int(input("Enter your choice (1-6): "))
442 except ValueError:
443 print("Invalid input! Please enter a number.")
444 continue
445
446 if choice == 1:
447 arrivals()
448 elif choice == 2:
449 departures()
450 elif choice == 3:
451 jetfuel_module()
452 elif choice == 4:
453 runway_maintenance_module()
454 elif choice == 5:
455 manage_passengers()
456 elif choice == 6:
457 print("Exiting the program. Goodbye!")
458 break
459 else:
460 print("Invalid choice. Please select from 1 to 6.")
461
462
463
464
465 def manage_passengers():
466 print("\n===== Passenger Management =====")
467 print("1. View All Passengers")
468 print("2. Add a Passenger")
469 print("3. Delete a Passenger")
470 try:
20 | P a g e
471 choice = int(input("Enter your choice (1-3): "))
472 except ValueError:
473 print("Invalid input. Enter a number.")
474 return
475
476 if choice == 1:
477 cur.execute("SELECT * FROM pax")
478 data = cur.fetchall()
479 if not data:
480 print("No passenger records found.")
481 else:
482 table = PrettyTable(["ID", "Name", "Gender", "Flight
483 No", "Age", "Nationality"])
484 for row in data:
485 table.add_row(row)
486 print(table)
487
488 elif choice == 2:
489 name = input("Enter passenger name: ")
490 gender = input("Enter gender (M/F): ")
491 flight_no = input("Enter flight number: ")
492 age = input("Enter age: ")
493 nationality = input("Enter nationality: ")
494
495 cur.execute(
496 "INSERT INTO pax (p_name, p_gender, p_flight_no,
497 p_age, p_nationality) VALUES (%s, %s, %s, %s, %s)",
498 (name, gender, flight_no, age, nationality)
499 )
500 con.commit()
501 print("Passenger added successfully.")
502
503 elif choice == 3:
504 p_id = input("Enter Passenger ID to delete: ")
505 cur.execute("DELETE FROM pax WHERE p_id = %s", (p_id,))
506 con.commit()
507 print("Passenger deleted successfully.")
508
509 else:
510 print("Invalid choice.")
511
512 main_menu()
513
21 | P a g e
MYSQL
DATABASES
22 | P a g e
AERODB DATABASE:
DEPARTURES TABLE:
ARRIVALS TABLE:
23 | P a g e
RUNWAY MAINTENANCE:
JET FUEL MANAGEMENT:
PASSENGER MANAGEMENT:
24 | P a g e
OUTPUTS
25 | P a g e
Main Menu:
Arrivals Module:
26 | P a g e
View Arriving Flights:
Adding Arriving Flights:
27 | P a g e
Deleting Arriving Flights:
Departures Module:
Deleting Departing Flight:
28 | P a g e
Adding Departing Flight:
Viewing Flights:
29 | P a g e
Jet Fuel Management Module:
Viewing Fuel Records:
Deleting a Fuel Record:
30 | P a g e
Adding a Fuel Record:
Runway Maintenance Module:
Viewing Records:
31 | P a g e
Adding a Record:
Deleting a record:
32 | P a g e
Passenger Management Module:
Viewing All Passengers:
33 | P a g e
Adding a Passenger:
Deleting a Passenger:
34 | P a g e
Exiting the Program:
------AERODB AIRPORT MANAGEMENT SYSTEM------
35 | P a g e
BIBLIOGRAPHY
The following books and websites were instrumental in
guiding me through various phases of the project's
development.
📚 Books:
1. Computer Science with Python –
Sumita Arora
2. 12130 – Computer Science – NCERT
🌐 Websites:
1. https://www.jetbrains.com/pycharm
2. https://www.python.org/
3. https://stackoverflow.com/questions
4. https://www.google.com/
5. https://www.geeksforgeeks.org/dbms/
36 | P a g e