Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 24

SR DESCRIPTION PAGE N

01 PROJECT INTRODUCTION 02

02 HARDWARE & SOFTWARE REQUIREMENTS 04

03 PROPOSED SYSTEM 05

04 OBJECTIVES OF THE PROJECT 05

05 THEORETICAL BACKGROUND (MySQL & Python) 06

06 SYSTEM DEVELOPMENT LIFE CYCLE (SDLC) 12

PHASES OF SYSTEM DEVELOPMENT LIFE


07 13
CYCLE

08 SOURCE CODE 14-19

09 OUTPUT 20-21

11 CONCLUSION 22

13 TESTING 23-24

12 BIBLIOGRAPHY 25

1
1)Introduction:
Airline Reservation System Project

Introduction

The Airline Reservation System project is a graphical desktop


application developed in Python using the Tkinter library. This
system is designed to simulate the functionalities of a real-world
airline reservation system, allowing users to book flights, cancel
reservations, and search for flight details.

Features

1. Flight Booking

Users can input flight details such as flight number, class (Business
or Economy), Aadhar number, and date of travel to book a seat on
a flight. The system provides real-time feedback on seat availability
and calculates the booking amount based on the selected class.

2. Payment Mode Selection

After successful flight booking, users are prompted to choose a


payment mode. The system supports Credit Card, Debit Card, and
PayPal options. A 12-digit card number validation ensures the
integrity of the entered payment details.

3. Reservation Cancellation
2
Users can cancel their reservations by entering the flight number.
The system checks for the existence of the provided flight number
and cancels the reservation, making the seat available for other
passengers.

4. Flight Search

The system enables users to search for flights by entering the flight
number. It displays the route information, including the source and
destination of the selected flight.

Implementation

The project utilizes Tkinter for creating a user-friendly graphical


interface. Various Tkinter widgets such as labels, entry fields,
buttons, and pop-up windows are employed to enhance user
interaction. The implementation includes input validation, ensuring
the accuracy and security of user-provided data.

Conclusion

The Airline Reservation System project demonstrates the practical


use of Tkinter for building desktop applications. It serves as a
foundation for further enhancements, such as database integration
for persistent data storage and retrieval, user authentication, and
additional features to enhance the overall user experience.

This project is an excellent example of combining programming


skills with GUI development to create a functional and intuitive
application for airline reservation management.
3
2) HARDWARE & SOFTWARE REQUIREMENTS

Python 3.12
Python Libraries: Pandas, MySQL Connector
MySQL RDBMS

3) PROPOSED SYSTEM
4
Today one cannot afford to rely on the fallible human beings of be really wants to stand

against today’s merciless competition where not to wise saying “to err is human” no longer

valid, it’s outdated to rationalize your mistake. So, to keep pace with time, to bring about the

best result without malfunctioning and greater efficiency so to replace the unending heaps of

flies with a much sophisticated hard disk of the computer.

One has to use the data management software. Airline management initially hadto maintain a
lot of ledgers and a lot of paperwork has to be done but now software production this
organization has made their work fasterand easier. This prevents a lot of time and money.
Thework becomes fully automated and any information regarding the organization can be
obtained by clicking the button

4) OBJECTIVES OF THE PROJECT


The objective of this project is to let the students apply the programming knowledge into a real-
world situation/problem and exposed the students how programming skills helps in developing
a good software.

1. Write programs utilizing modern software tools.


2. Apply object oriented programming principles effectively when developing small to
medium sized projects.
3. Students will demonstrate ability to conduct a research or applied Computer Science
project, requiring writing and presentation skills which exemplify scholarly style in
computer science.

5)TH E O R E T I C A LB A C K G R O U N D

5
Airline Reservations: Enhancing Travel Efficiency through Digital
Booking Systems

In the dynamic landscape of contemporary travel, the process of


airline reservations plays a pivotal role in shaping the overall travel
experience for passengers worldwide. The evolution of airline
reservation systems has transformed the way individuals plan and
embark on their journeys. This theoretical exploration delves into
the significance, evolution, and technological aspects of airline
reservations, shedding light on how these systems contribute to the
seamless functioning of the aviation industry.

Significance of Airline Reservations

Airline reservations serve as the linchpin of the aviation sector,


facilitating the efficient allocation of resources and ensuring a
streamlined experience for both passengers and airlines. The
primary goal is to manage seat inventory effectively, enabling
airlines to optimize their operations and maximize revenue. From
the passenger's perspective, reservations provide the convenience
of planning and securing a seat on a preferred flight, offering a
sense of assurance and control over their travel arrangements.

Evolution of Airline Reservation Systems:

The genesis of airline reservations dates back to manual processes


involving paper tickets and cumbersome administrative tasks.
However, with the advent of computer technology, the aviation
industry witnessed a transformative shift toward automated
reservation systems. The introduction of computerized reservation
6
systems (CRS) in the 1960s marked a significant milestone,
revolutionizing the way airlines managed bookings and interacted
with passengers.

The subsequent decades saw the emergence of Global Distribution


Systems (GDS), consolidating reservation data and providing a
centralized platform for travel agencies and airlines to access and
manage flight information. The transition from mainframe systems
to more sophisticated, user-friendly interfaces has further enhanced
the efficiency and accessibility of airline reservations.

Technological Advancements:

In the contemporary landscape, airline reservation systems leverage


cutting-edge technologies to offer a seamless and user-centric
booking experience. Web-based reservation platforms and mobile
applications have become integral components, empowering
passengers to make reservations, select seats, and manage their
itineraries at their fingertips. Artificial intelligence (AI) and machine
learning algorithms contribute to predictive analytics, optimizing
seat pricing strategies and enhancing the overall revenue
management process for airlines.

Moreover, the integration of cloud computing has facilitated the


storage and retrieval of vast amounts of reservation data, ensuring
real-time updates and reducing the risk of system downtimes.
Blockchain technology is also making inroads, offering a
decentralized and secure framework for managing reservations and
enhancing data integrity.
7
Challenges and Future Trends:

While the evolution of airline reservation systems has brought


about remarkable improvements, challenges persist. Issues such as
overbooking, system outages, and cybersecurity threats necessitate
continuous innovation and vigilance. Future trends in airline
reservations are poised to embrace biometric authentication,
providing a secure and efficient means of verifying passenger
identity.

6)SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)

The System Development Life Cycle (SDLC) provides a well-structured


framework that gives an idea, of how to build a system. It consists of
8
steps as follows- Plan, Analyze, Design, Develop, Implement and
Maintain. In this article, we will see all the stages of system development.
We will delve into the significance of each stage, emphasizing the critical
role played by System Design in the overall process.

System Development Life Cycle:


The System Development Life Cycle encompasses a series of
interconnected stages that ensure a systematic approach to system
development. The stages include Planning, Analysis, Design,
Development, Implementation, and Maintenance. Each stage contributes
9
to the successful completion of the system, with System Design serving
as a crucial component.
When you're in a development position, you may encounter the system
development life cycle while working on a project. As a professional,
understanding the phases of a system development life cycle and why
they're important may help you more effectively implement it. Learning
about the system development life cycle can give you the knowledge and
skills required to perform your duties effectively throughout a project.
In this article, we discuss the system development life cycle, explain how
it works, list its different phases and offer tips for working within it.
What is the system development life cycle?
The system development life cycle is a series of stages encompassing the
creation and development of a new computer-based system. This life cycle
covers the full process of creation, from ideation through development,
release and maintenance. Using the system development life cycle
provides a structure for the development process and offers guidance to
staff working on the project by clarifying expectations at each phase.

7) PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE

Stage 1: Plan
The Planning stage lays the groundwork for the entire SDLC. It involves
identifying the system’s goals, defining project scope, setting objectives,
establishing timelines, and determining available resources. Planning
ensures that the development process aligns with organizational needs
and sets a clear direction for subsequent stages.

10
Stage 2: Analyze
During the Analysis stage, the focus is on gathering and understanding
the requirements of the system. This includes conducting interviews,
studying existing processes, and identifying stakeholders’ needs. The
gathered information serves as a basis for designing a system that meets
users’ expectations and addresses organizational challenges.
Stage 3: Design
System Design is a critical stage in the SDLC, where the requirements
gathered during the Analysis phase are translated into a detailed technical
plan. It involves designing the system’s architecture, database structure,
and user interface, and defining system components. The Design stage
lays the foundation for the subsequent development and implementation
phases.
Stage 4: Develop
The Development stage involves the actual coding and programming of
the system. Based on the design specifications, developers write code,
create database structures, and implement necessary functionalities.
Rigorous testing and quality assurance are performed to ensure the
system’s accuracy, performance, and adherence to the design
requirements.
Stage 5: Implement
This stage involves deploying the developed system into the production
environment. This includes activities such as system installation, data
migration, training end-users, and configuring necessary infrastructure.
Implementation requires careful planning and coordination to minimize
disruptions and ensure a smooth transition from the old system to the new
one.
Stage 6: Maintain
Maintenance is an ongoing stage that involves monitoring, managing, and
enhancing the system’s performance and functionality. It includes
activities such as bug fixes, updates, security patches, and addressing user
11
feedback. Regular maintenance ensures the system remains reliable,
secure, and adaptable to changing business needs.
Significance of System Design
System Design is a crucial stage in the SDLC as it bridges the gap
between requirements analysis and system development. It transforms
user needs and functional specifications into a detailed technical plan that
guides the development team. Proper system design ensures that the
developed system aligns with the desired functionality, performance, and
scalability requirements.
Conclusion: Software DLC is all about building software in a phase
approach systematically whereas System DLC is about implementing
hardware and software in a phased manner systematically.

12
8)SOURCE CODE

import tkinter as tk
from tkinter import messagebox
class AirlineReservationSystem:
def __init__(self):
self.root = tk.Tk()
self.root.title("Airline Reservation System" # Initialize flights (In-memory database)
self.flights = [
{"flight_no": "ABC123", "source": "New York", "destination": "Chicago",
"seats_available": {"BusinessClass": 10, "Economy": 40}},
{"flight_no": "XYZ456", "source": "Chicago", "destination": "New York",
"seats_available": {"BusinessClass": 5, "Economy": 25}},
{"flight_no": "123", "source": "Delhi", "destination": "Rewa", "seats_available":
{"BusinessClass": 30, "Economy": 50}},
{"flight_no": "ABC", "source": "Mumbai", "destination": "Satna", "seats_available":
{"BusinessClass": 40, "Economy": 60}},
{"flight_no": "12345", "source": "New York", "destination": "MALAYSIA",
"seats_available": {"BusinessClass": 50, "Economy": 440}},
{"flight_no": "XYZ", "source": "USA", "destination": "JAPAN", "seats_available":
{"BusinessClass": 70, "Economy": 40}},
# Add more flights as needed
]# Widgets
self.label = tk.Label(self.root, text="Airline Reservation System", font=("bold", 16))
self.label.pack(pady=10)
self.book_button = tk.Button(self.root, text="Book Flight", command=self.book_flight)
self.book_button.pack(pady=10)
self.cancel_button = tk.Button(self.root, text="Cancel Reservation",
command=self.cancel_reservation)
13
self.cancel_button.pack(pady=10)
self.search_button = tk.Button(self.root, text="Search Flights", command=self.search_flights)
self.search_button.pack(pady=10)

def book_flight(self):
book_window = tk.Toplevel(self.root)
book_window.title("Book Flight")
flight_no_label = tk.Label(book_window, text="Enter Flight No:")
flight_no_label.grid(row=0, column=0)
flight_no_entry = tk.Entry(book_window)
flight_no_entry.grid(row=0, column=1)
class_label = tk.Label(book_window, text="Select Class:")
class_label.grid(row=1, column=0)
class_var = tk.StringVar()
class_var.set("Economy") # Default class
class_option_menu = tk.OptionMenu(book_window, class_var, "BusinessClass",
"Economy")
class_option_menu.grid(row=1, column=1)
aadhar_label = tk.Label(book_window, text="Enter Aadhar No:")
aadhar_label.grid(row=2, column=0)
aadhar_entry = tk.Entry(book_window)
aadhar_entry.grid(row=2, column=1)
date_label = tk.Label(book_window, text="Enter Date (DD-MM-YYYY):")
date_label.grid(row=3, column=0)
date_entry = tk.Entry(book_window)
date_entry.grid(row=3, column=1)

14
book_button = tk.Button(book_window, text="Book", command=lambda:
self.process_booking(flight_no_entry.get(), class_var.get(), aadhar_entry.get(), date_entry.get(),
book_window))
book_button.grid(row=4, column=1)
def process_booking(self, flight_no, selected_class, aadhar_no, date, book_window):
selected_flight = next((flight for flight in self.flights if flight["flight_no"] == flight_no),
None)

if selected_flight:
if selected_flight["seats_available"][selected_class] > 0:
# Calculate the amount based on the class (you can adjust the logic)
amount = 2500 if selected_class == "Economy" else 5000
messagebox.showinfo("Amount", f"Amount to be paid: {amount}")
# Update the database (decrement available seats)
selected_flight["seats_available"][selected_class] -= 1
# You can save the booking details to a database if needed
self.show_payment_window(amount, selected_class, flight_no, book_window)
else:
messagebox.showerror("Error", f"No available seats in {selected_class} class for
Flight {flight_no}.")
else:
messagebox.showerror("Error", f"Flight {flight_no} not found.")
def show_payment_window(self, amount, selected_class, flight_no, book_window):
payment_window = tk.Toplevel(self.root)
payment_window.title("Payment Mode Selection")
payment_var = tk.StringVar()
payment_var.set("Credit Card") # Default selection
credit_card_radio = tk.Radiobutton(payment_window, text="Credit Card",
variable=payment_var, value="Credit Card")
15
credit_card_radio.pack()
debit_card_radio = tk.Radiobutton(payment_window, text="Debit Card",
variable=payment_var, value="Debit Card")
debit_card_radio.pack()

paypal_radio = tk.Radiobutton(payment_window, text="PayPal", variable=payment_var,


value="PayPal")
paypal_radio.pack()
card_number_label = tk.Label(payment_window, text="Enter 12-digit Card Number:")
card_number_label.pack()
card_number_entry = tk.Entry(payment_window)
card_number_entry.pack()
confirm_button = tk.Button(payment_window, text="Confirm Payment",
command=lambda: self.confirm_payment(payment_var.get(), amount, selected_class, flight_no,
book_window, payment_window, card_number_entry.get()))
confirm_button.pack(pady=20)

def confirm_payment(self, payment_mode, amount, selected_class, flight_no, book_window,


payment_window, card_number):
# Validate card number length
if len(card_number) != 12:
messagebox.showerror("Error", "Invalid card number. Please enter a 12-digit card
number.")
return
success_message = f"Flight booked successfully!\nFlight No: {flight_no}\nClass:
{selected_class}\nPayment Mode: {payment_mode}\nAmount: {amount}\nCard Number:
{card_number}"
messagebox.showinfo("Booking Successful", success_message)
book_window.destroy()
payment_window.destroy()
16
def cancel_reservation(self):
cancel_window = tk.Toplevel(self.root)
cancel_window.title("Cancel Reservation")
flight_no_label = tk.Label(cancel_window, text="Enter Flight No:")
flight_no_label.grid(row=0, column=0)
flight_no_entry = tk.Entry(cancel_window)
flight_no_entry.grid(row=0, column=1)
cancel_button = tk.Button(cancel_window, text="Cancel Reservation", command=lambda:
self.process_cancellation(flight_no_entry.get(), cancel_window))
cancel_button.grid(row=1, column=1)
def process_cancellation(self, flight_no, cancel_window):
selected_flight = next((flight for flight in self.flights if flight["flight_no"] == flight_no),
None)
if selected_flight:
# Implement cancellation logic here
# For example, you can increase the available seats for the canceled reservation
# and update any database or data structure accordingly
messagebox.showinfo("Success", f"Reservation for Flight {flight_no} canceled
successfully.")
else:
messagebox.showerror("Error", f"Flight {flight_no} not found.")
cancel_window.destroy()
def search_flights(self):
search_window = tk.Toplevel(self.root)
search_window.title("Search Flights")
flight_no_label = tk.Label(search_window, text="Enter Flight No:")
flight_no_label.grid(row=0, column=0)
flight_no_entry = tk.Entry(search_window)

17
flight_no_entry.grid(row=0, column=1)
search_button = tk.Button(search_window, text="Search Flight", command=lambda:
self.display_route(flight_no_entry.get(), search_window))
search_button.grid(row=1, column=1)
def display_route(self, flight_no, search_window):
selected_flight = next((flight for flight in self.flights if flight["flight_no"] == flight_no),
None)
if selected_flight:
route = f"Route: {selected_flight['source']} to {selected_flight['destination']}"
messagebox.showinfo("Flight Route", route)
else:
messagebox.showerror("Error", f"Flight {flight_no} not found.")
search_window.destroy()

def main():
airline_system = AirlineReservationSystem()
airline_system.root.mainloop()

if __name__ == "__main__":
main()

9) OUTPUT:

18
19
20
10) CONCLUSION

In conclusion, the development and implementation of an Airline


Management System (AMS) represent a pivotal step towards enhancing
efficiency, transparency, and overall performance within the aviation
industry. The comprehensive nature of the system, incorporating
reservation management, scheduling, inventory control, and other key
functionalities, underscores its significance in streamlining operations and
providing a seamless experience for both airlines and passengers.
Through the course of this project, we have delved into the intricate details
of airline operations, addressing challenges and bottlenecks that can be
mitigated through technological solutions. The AMS not only centralizes
crucial information but also facilitates data-driven decision-making,
enabling airlines to optimize resources, improve customer service, and
adapt to dynamic market conditions..
In essence, the Airline Management System stands as a testament to the
transformative power of technology in optimizing complex processes,
fostering operational excellence, and elevating the overall experience for
both airlines and their passengers. As the aviation landscape continues to
evolve, the successful deployment of this system positions our
organization, and the industry at large, for a more efficient, resilient, and
customer-centric future.

11) TESTING
Software Testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or service

21
under test[1] , with respect to the context in which it is intended to operate.
Software Testing also provides an objective, independent view of the
software to allow the business to appreciate and understand the risks at
implementation of the software. Test techniques include, but are not
limited to, the process of executing a program or application with the
intent of finding software bugs.
Software Testing, depending on the testing method employed, can be
implemented at any time in the development process, however the most
test effort is employed after the requirements have been defined and
coding process has been completed.

TESTING METHODS
Software testing methods are traditionally divided into black box
testing and white box testing. These two approaches are used to describe
the point of view that a test engineer takes when designing test cases.

BLACK BOX TESTING


Black box testing treats the software as a "black box," without any
knowledge of internal implementation. Black box testing methods include:
equivalence partitioning, boundary value analysis, all-pairs testing, fuzz
testing, model-based testing, traceability matrix, exploratory testing and
specification-based testing.

22
WHITE BOX TESTING
White box testing, by contrast to black box testing, is when the tester
has access to the internal data structures and algorithms (and the code that
implement these)

CODE COMPLETENESS EVALUATION


White box testing methods can also be used to evaluate the
completeness of a test suite that was created with black box testing
methods. This allows the software team to examine parts of a system that
are rarely tested and ensures that the most important function points have
been tested.

12) BIBLIOGRAPHY

Informatics Practices Class 11th&12th by Sumita Arora.


Websites:
 https://www.w3school.com
 https://www.python.org
 Python Libraries used :Pandas, Numpy, Mysql, tkinter
Connector
 WWW.CHATGPT.COM

23
24

You might also like