Airline Ticket Reservation System
Airline Ticket Reservation System
Project Report
Submitted by
Jaiprakash S (2023510027)
Dhayanidhi D (2023510022)
Mohamed Imran I (2023510301)
B.tech(3/8)
NOVEMBER/DECEMBER 2024
Abstract: Airline Ticket Reservation System
The application offers core functionalities such as ticket booking, flight search,
passenger registration, and cancellation, enabling efficient management of
travel-related information. It is designed with features like dynamic flight schedules,
real-time seat availability, and secure payment gateways to provide an optimal user
experience.
The database ensures the integrity and accuracy of the stored data, supporting
operations such as retrieving flight details, storing passenger information, and
generating booking reports. The interface is user-friendly and provides easy
navigation, catering to both administrators and end-users.
This project aims to reduce manual errors, enhance data security, and improve
customer satisfaction by automating and optimizing the airline ticket reservation
process. The system serves as a scalable solution adaptable to diverse airline
requirements.
HOME PAGE:
Introduction
The home page of the Airline Ticket Reservation System serves as the central interface
for users to interact with the system. Designed with Python's Tkinter library, it provides a
visually appealing, intuitive, and functional layout to guide users through the system's core
features. The home page is the gateway to functionalities like flight search, booking,
registration, and user account management.
1. Navigation Bar
○ The navigation bar provides quick access to key features such as:
■ Flight Search: Redirects to a form to search available flights based
on departure, destination, and date.
■ Book a Ticket: Leads to the ticket booking section.
■ Cancel Ticket: Enables ticket cancellations.
■ My Bookings: Displays a user's booking history.
2. Welcome Message and System Overview
○ A welcome section greets users and provides a brief description of the
system's purpose and functionalities.
3. Login and Registration Options
○ The home page includes a login section for registered users and a "Register
Now" button for new users to create an account.
4. Dynamic Flight Updates
○ Displays real-time updates of flights, such as recently added routes, current
offers, and seat availability (if applicable).
5. Footer Information
○ The footer contains additional details such as support contact, terms and
conditions, and links to FAQs.
The home page is implemented using Python's Tkinter library. Key widgets include:
The design ensures that every widget is connected to the underlying Oracle SQL database,
enabling seamless user interactions, such as fetching flight details and authenticating users.
BOOKING PAGE
Introduction
The Book Ticket page of the Airline Ticket Reservation System is a crucial component
that allows users to search for and book tickets for flights based on their travel preferences.
It provides a seamless and efficient way to reserve airline seats while integrating user inputs
with real-time data from the Oracle SQL database. The page is designed to be user-friendly
and ensures error-free data entry to enhance the booking process.
1. Header
○ Displays the title "Book a Ticket" along with the system's logo and a
navigation menu for easy access to other sections.
2. Central Form
○ A multi-section form guides users through the booking process.
○ Clear labels and placeholders ensure smooth data entry.
3. Flight Results Table
○ Uses a grid or table format for listing flight options, making it easy to compare
flights.
4. Color Scheme
○ A professional and calming palette (e.g., blue and white) ensures a visually
appealing interface.
5. Buttons and Interactions
○ Buttons for "Search Flights," "Book Ticket," "Proceed to Payment," and
"Confirm Booking" are strategically placed to guide the user step-by-step.
Implementation Details
● Front-End:
○ Developed using Python's Tkinter library, featuring widgets like labels, entry
boxes, combo boxes, and buttons.
● Back-End:
○ Integrated with an Oracle SQL database to fetch flight details, validate
passenger information, check seat availability, and store booking records.
○ SQL queries ensure secure and efficient data transactions.
● Error Handling:
○ Implements validation for mandatory fields, data types, and payment details
to minimize user errors.
Workflow
1. Header Section
○ The page header displays the airline’s logo and the "Book a Flight" title. It also
includes a navigation menu for easy access to other sections like "Home,"
"Manage Booking," and "Flight Search."
2. Central Form Layout
○ The flight search form and passenger details form are organized in a
multi-step process to keep the interface clean and easy to navigate.
○ Progress Indicator: A progress bar or numbered steps helps users track
where they are in the booking process.
3. Flight Results and Selection Table
○ A well-organized table or list format displays flight options with sortable
columns for flight times, prices, and seat availability.
○ Clear call-to-action buttons like "Select Flight" guide users to the next step.
4. Payment and Confirmation
○ The payment section has input fields for credit card information and a
confirmation button.
○ Upon successful payment, a confirmation message appears with a button to
download or email the ticket.
Implementation Details
1. Front-End
○ Developed using Python Tkinter for the graphical user interface.
○ Utilizes various Tkinter widgets such as Entry fields, Buttons, and
Comboboxes to capture user input and display flight options.
2. Back-End
○ The system interfaces with an Oracle SQL database to retrieve flight data,
seat availability, and process booking information.
○ SQL Queries:
■ Queries for flight availability based on the user's search criteria.
■ Queries for booking seat reservations, passenger details, and
payment processing.
3. Error Handling and Validation
○ The system ensures that all mandatory fields are filled in and that data
entered is valid (e.g., valid email, phone number, and payment details).
○ Error messages guide users in correcting issues before proceeding.
4. Security Features
○ Payment data is securely transmitted and processed using encryption to
ensure user data safety.
Workflow
1. User enters the search criteria (departure city, destination, travel date, etc.) and clicks
the Search Flights button.
2. The system queries the database and displays available flights that match the user’s
input.
3. The user selects a flight and enters passenger details, such as name and contact
information.
4. The user selects available seats and proceeds to the payment page.
5. After completing the payment, the user receives a booking confirmation and the ticket
is generated.
1. Header Section
○ The page includes a header with the system’s logo, the title “Select Class,”
and links to other pages (e.g., Home, Book a Ticket, Manage Booking).
2. Class Options Display
○ The class selection is presented as a set of radio buttons or buttons for each
available class. Each button or radio button displays the class name (e.g.,
Economy, Business, First Class), the price, and an icon or image that
represents the class.
○ A clean, organized layout ensures easy comparison and prevents confusion.
3. Flight and Seat Information
○ Below the class options, a summary of the flight and seat availability for each
class is displayed in a concise format.
○ Available seats in each class are highlighted, and if a class is fully booked, it
is marked as unavailable.
4. Action Buttons
○ Select Class: Users click on the class they prefer, which is then highlighted,
and the class is selected.
○ Next Step: After selecting the class, users proceed to the next page for
entering passenger details or other required information.
○ Back Button: Users can also go back to the previous page if they need to
make changes to their flight search or selection.
Implementation Details
1. Front-End Implementation
○ Developed using Python’s Tkinter library, which provides a graphical user
interface with widgets such as buttons, radio buttons, labels, and entry boxes.
○ The class selection buttons are created using Radiobuttons or Buttons to
ensure a smooth user experience. Each class option is linked to a specific
price and seat availability status.
○ Labels are used to display the flight details and price comparison.
2. Back-End Integration
○ The system queries the Oracle SQL database to fetch available flights and
class options based on the user’s search criteria.
○ When a class is selected, the system retrieves seat availability and updates
the displayed flight options accordingly.
○ The class selection is stored temporarily in the session or database for use in
subsequent steps (e.g., ticket booking and payment).
3. Error Handling
○ The page ensures that users cannot proceed without selecting a class. An
error message prompts users to choose a valid class if they attempt to move
forward without making a selection.
○ If no seats are available in the selected class, users are informed and offered
the option to select a different class or flight.
4. Security Features
○ All data entered during the booking process, including class and flight details,
is securely stored and transmitted to protect user privacy.
Workflow
1. The user arrives on the Select Class page after choosing a flight.
2. They are presented with the available class options (e.g., Economy, Business, First
Class), along with prices and seat availability.
3. The user selects the desired class and clicks the Next button to proceed with
booking.
4. If the selected class is unavailable or if there are errors, the system prompts the user
to select another option.
1. Header Section
○ The header includes the system’s logo and the page title “Passenger Details.”
It also provides links to other parts of the application, such as the home page
and flight search.
2. Form Layout
○ The passenger details form is divided into clear sections, such as personal
information, contact details, and identification information. This ensures that
the page is well-organized and easy to navigate.
○ Each section contains relevant input fields with labels for clarity.
3. Input Fields
○ The form uses Entry widgets for text input (name, email, phone number),
Radio buttons for gender selection, and Combo boxes for nationality
selection.
○ Date pickers are used for the date of birth, ensuring users select a valid date.
○ Text boxes are provided for special requests or additional comments.
4. Error Handling and Instructions
○ Clear error messages are displayed next to the relevant field if there are
issues with the entered data (e.g., invalid email format or incomplete fields).
○ An instruction or tooltip may be displayed near certain fields to guide users,
such as formatting guidelines for phone numbers or ID/passport numbers.
Implementation Details
1. Front-End Implementation
○ Built using Tkinter for creating the graphical user interface, utilizing widgets
like Entry, Radiobutton, Combobox, Text, and Button.
○ The form design ensures that each input field is aligned and easy for the user
to fill out. It also offers a seamless experience when moving between
sections.
2. Back-End Integration
○ The system integrates with an Oracle SQL database to store the passenger
details entered on the page. SQL queries are used to ensure that the entered
data is validated and securely stored in the database.
○ For example, once the user submits the form, the system performs SQL
inserts to add the passenger’s details to the database, ensuring a link is
created between the passenger and their booking.
3. Error Handling
○ The system checks for missing or invalid input and prompts users to correct
errors before submitting the form. For example, it ensures the email follows a
valid format, phone numbers are correctly formatted, and mandatory fields
are not left blank.
4. Security Features
○ To ensure data privacy, personal information entered by the user is stored
securely, encrypted, and handled according to the system’s security policies.
All data is transmitted over secure channels (e.g., SSL/TLS) to prevent
unauthorized access.
Workflow
1. The user arrives at the Passenger Details page after selecting a flight and class.
2. The user enters personal details, including name, contact information, and
identification (e.g., passport details).
3. After filling in the necessary fields, the user can click the Next button to proceed with
the booking process (e.g., seat selection or payment).
4. If any field contains an error, an error message appears, and the user is prompted to
correct the information.
5. Once all the data is validated, the user moves on to the next step in the booking
process.
Introduction
The Payment Details page of the Airline Ticket Reservation System plays a crucial role in
completing the flight booking process. It allows users to securely enter their payment
information to purchase flight tickets. This page is designed to provide a smooth, intuitive,
and secure method for users to finalize their booking. The system supports various payment
methods, ensuring flexibility for users while safeguarding sensitive financial data.
1. Header Section
○ The header contains the system’s logo and a link to other parts of the site
(e.g., Home, Manage Booking). The page title, “Payment Details,” is clearly
visible at the top to ensure users know they are in the final step of the booking
process.
2. Payment Information Form Layout
○ The payment form is designed to be simple and intuitive, with input fields
clearly labeled for each type of payment method.
○ Radio buttons or a dropdown menu are used for selecting the payment
method.
○ Text fields for card number, expiry date, CVV, and billing address are neatly
aligned to avoid clutter and enhance user experience.
3. Price Summary Section
○ The price summary is presented in a clear, well-organized box, making it easy
for users to review the total cost before proceeding with the payment.
○ If taxes or additional fees are applicable, they are clearly broken down for
transparency.
4. Action Buttons
○ Submit Payment: A prominent Pay Now button initiates the payment
process.
○ Cancel: A button that allows users to cancel the payment and return to
previous steps (such as reviewing flight details or passenger information).
○ Back: Users can go back to the previous page (e.g., passenger details or
flight selection) if they wish to make changes before proceeding with
payment.
Implementation Details
1. Front-End Implementation
○ The payment page is developed using Python Tkinter for the GUI, providing
a set of text fields, buttons, and dropdowns for the payment process.
○ The payment form is simple yet secure, with validation checks in place to
ensure the correct format for credit card numbers, expiration dates, and other
relevant information.
2. Back-End Integration
○ The system integrates with payment gateways (e.g., Stripe, PayPal, or bank
APIs) to securely process payments. These third-party services handle the
transaction securely, ensuring that sensitive data is never stored in the
airline's system.
○The payment gateway returns a success or failure response, which is
displayed to the user. If the payment is successful, the system updates the
booking status in the database.
3. Payment Gateway API
○ The system communicates with the selected payment gateway’s API,
transmitting the necessary details (e.g., credit card number, amount,
currency) and receiving the payment confirmation or failure status.
○ The transaction is logged, and a receipt is generated that includes the
payment details, booking reference, and flight details.
4. Security and Compliance
○ All payment data is encrypted and processed according to PCI DSS
standards to protect user data.
○ Tokenization may be used for storing payment method information, ensuring
that sensitive data is never stored in an unprotected form.
Workflow
1. The user reaches the Payment Details page after entering passenger details and
confirming their flight selection.
2. The user selects a payment method and fills in the required details, such as credit
card number, expiration date, and billing information.
3. After reviewing the price summary, the user clicks the Pay Now button to proceed
with the payment.
4. The system sends the payment details to the payment gateway for processing. If
successful, the system generates a confirmation message with the booking reference
and a receipt.
5. If payment fails, the user is informed with an error message and given the option to
retry or choose a different payment method
1. Ticket Overview
○ Booking Information: The page provides an overview of the booking,
including:
■ Booking Reference Number: A unique reference ID assigned to the
booking.
■ Flight Details: Flight number, departure and arrival locations, dates,
and times.
■ Passenger Details: A summary of the passenger's name, contact
information, and any additional requested services (e.g., special
meals, seat preferences).
■ Payment Status: Indicates whether the payment for the ticket has
been successfully processed.
2. View Ticket Details
○ Ticket Information: Users can view detailed information about their ticket,
including flight class, baggage allowance, and any other specific services or
discounts applied.
○ Booking History: A history of the flight booking and any changes made to
the original reservation (e.g., seat upgrades, class changes).
○ Download Ticket: Users can download a PDF version of their ticket for their
records.
3. Cancel Ticket Option
○ Cancellation Button: A prominent Cancel Ticket button is provided, which
users can click to initiate the cancellation process.
○ Cancellation Policy: Before confirming cancellation, users are shown the
cancellation policy, including any cancellation fees, deadlines, and eligibility
for refunds.
○ Refund Eligibility: If the ticket is eligible for a refund, users are informed of
the refund amount they will receive. If not, they are informed that no refund is
available.
4. Confirmation of Cancellation
○ Confirmation Dialog: If the user clicks the cancel button, a confirmation
dialog appears, asking whether they are sure about the cancellation. This is
to prevent accidental cancellations.
○ Refund Processing: Once the cancellation is confirmed, the system
processes the cancellation, updates the ticket status, and initiates a refund if
applicable.
○ Cancellation Success Message: After successful cancellation, users receive
a confirmation message along with updated booking information, and they are
informed about the next steps for the refund (if applicable).
5. Error Handling
○ Booking Not Found: If the user enters an incorrect booking reference or
their booking cannot be found, an error message is displayed.
○ Ticket Cannot Be Canceled: If the ticket cannot be canceled due to airline
policies (e.g., no refund, past the cancellation window), the system informs
the user with an appropriate message.
○ Payment Issues: If there are any issues with the payment status (e.g.,
payment was not processed successfully), users are alerted and prompted to
resolve the issue before cancellation.
1. Header Section
○ The header includes the system’s logo, page title “View or Cancel Ticket,” and
a link to return to the home page or manage other bookings.
2. Ticket Details Section
○ The page is divided into clearly labeled sections:
■ Booking Details: Displays flight information, booking reference, and
passenger details in a well-organized layout.
■ Payment and Ticket Status: A summary of the payment status
(successful/failed) and whether the ticket is confirmed or canceled.
○ A Cancel Ticket button is prominently displayed, typically below the ticket
information, making it easy for users to find and click.
3. Cancellation Confirmation
○ A pop-up or confirmation message ensures that users understand the
consequences of canceling a ticket. It provides details such as the
cancellation fee and refund eligibility.
4. Action Buttons
○ Cancel Ticket: Initiates the cancellation process.
○ Download Ticket: Allows users to download a PDF version of their ticket.
○ Back to Homepage: Takes users back to the home page or main booking
page.
Implementation Details
1. Front-End Implementation
○ The page is built using Tkinter for the graphical user interface, using widgets
like Label, Button, Text, and Messagebox to display ticket details, the
cancellation confirmation dialog, and other user interactions.
○ The Cancel Ticket button is prominently displayed and triggers a
confirmation pop-up before proceeding with the cancellation.
2. Back-End Integration
○ The system retrieves ticket information and booking details from the Oracle
SQL database based on the user’s booking reference number.
○ If the user requests to cancel their ticket, the system checks the cancellation
policy in the database (e.g., refundable/non-refundable, cancellation window,
fees) before processing the request.
○ The system then updates the booking status in the database to "canceled"
and processes the refund (if applicable) through integration with payment
gateways or the airline's internal refund system.
3. Cancellation Process
○ Once the cancellation is confirmed, the database records the status change,
and a refund transaction (if applicable) is initiated.
○ The system may send an email or SMS to the user, confirming the
cancellation and detailing the refund process and timeline.
4. Error Handling
○ The system handles errors by displaying relevant error messages if the
booking reference is incorrect, the ticket cannot be canceled, or payment
issues occur.
○ Exception Handling is used to ensure that any unexpected issues (e.g.,
system errors, database failures) are caught and resolved without crashing
the application.
Workflow
1. The user navigates to the View or Cancel Ticket page after logging into their
account or entering their booking reference.
2. The system retrieves and displays the ticket details, including flight information,
passenger details, and payment status.
3. The user clicks the Cancel Ticket button to initiate the cancellation process.
4. A confirmation dialog appears, asking the user to confirm the cancellation.
5. Once confirmed, the system processes the cancellation, updates the booking status,
and issues a refund if applicable.
6. A confirmation message is displayed, and the user can choose to download the
ticket, go back to the homepage, or check the status of the refund.
CONCLUSION: