Full Project
Full Project
Full Project
DECLARATION
Name : __________________________________________________
Roll No.: ______________________
Class : _____________
4
ACKNOWLEDGEMENT
I take this opportunity to express mv deep sense of gratitude to all those who have been
instrumental in preparation of this project.
I feel great pleasure to express my obligation to (Bijayant Kumar). Principal of A’la
Anglaise School.
I am also sincerely grateful to Baibhav Kumar PGT (Computer Science), A’la Anglaise
School for his encouragement and valuable guidance during the entire period of work.
I would also thank all my parents and friends for their wholehearted support and
encouragement without with this project would not have been successful.
I could not forget Internet. Textbooks which provided me with sufficient matter for
reference.
5
TABLE OF CONTENT
INTRODUCTION
PROBLEM STATEMENT
Problem Statement
The tourism industry is a complex sector that requires efficient management of various
operations, such as bookings, tour scheduling, and customer interactions. Traditional
methods, relying heavily on manual processes or outdated systems, often lead to
inefficiencies, errors, and limited data-driven insights. These limitations create challenges
such as:
1. Booking Inefficiencies: Manual handling of bookings can result in double bookings,
loss of customer data, and difficulty in tracking payment statuses.
2. Tour Management Challenges: Keeping tour details, schedules, and package
offerings up to date is cumbersome and prone to inaccuracies.
3. Customer Data Handling: Storing, retrieving, and updating customer information
manually is time-consuming and error prone.
4. Lack of Insights: Traditional systems lack the ability to analyse data effectively,
limiting insights into customer preferences, booking trends, and revenue
generation, which are crucial for business growth.
To address these challenges, there is a need for a Tours & Travels Management System
that:
Automates core operations like bookings, tours management, and customer data
handling.
Provides a reliable and user-friendly platform for managing travel-related activities.
Incorporates data visualization to analyse trends and patterns, enabling informed
decision-making.
The proposed solution developed using Python, CSV files, and the Matplotlib library, aims
to bridge these gaps by offering a lightweight, efficient, and insightful system tailored to
the needs of the tourism industry.
8
OBJECTIVE
PROJECT SCOPE
The "Tours & Travels Management System" is designed to address the operational needs
of travel agencies and customers by automating and streamlining key activities. The scope
of the project includes:
1. Core Functionalities:
o Managing bookings, including recording and updating customer reservations.
o Handling tour operations, such as adding, updating, or removing tour packages,
destinations, and schedules.
o Maintaining customer information for efficient data retrieval and updates.
2. Data Storage:
o Using CSV files for lightweight and easily accessible data storage without the
need for complex databases.
3. Data Visualization:
o Providing visual insights into booking trends, popular destinations, customer
demographics using the Matplotlib library.
4. Technological Integration:
o Leveraging Python’s capabilities, including file handling, modular
programming, and library support, to deliver a robust and scalable solution.
5. Future Enhancement Possibilities:
o Potential integration with payment gateways, real-time notifications, and
advanced analytics tools.
The project is intended to simplify travel management operations, provide valuable
insights, and showcase the practical application of Python in addressing industry-specific
challenges.
10
Software Requirements:
Operating System Window-10 and later versions (32bit, 64 bit)
Language Python
Platform Python IDLE 3.7 (min)
Database CSV file
Database driver MS Excel
Plotting Matplotlib
Hardware Requirements:
Processor Pentium Dual Core (min) 32bit or 64 bit
Hard-Disk 160GB (min)
RAM 1GB (min)
Input/output Requirements:
Input Output
Mouse (any) Monitor (any)
Keyboard Printer (any)
11
OVERVIEW OF PYTHON
A CSV (Comma-Separated Values) file is a simple and widely used file format for storing
and exchanging tabular data. It is lightweight and compatible with various programming
languages and tools, making it a popular choice for data handling in software applications.
Key Features of CSV Files:
1. Structure:
o Data is organized in rows and columns, with each row representing a record
and each column representing a field.
o Fields in a row are separated by commas (or other delimiters like tabs or
semicolons).
2. Simplicity:
o CSV files are plain text files, making them easy to read and edit using basic text
editors or spreadsheet programs like Microsoft Excel or Google Sheets.
3. Portability:
o CSV files are platform-independent and can be used across different operating
systems and applications.
4. Lightweight:
o They have a small file size compared to other data storage formats, making
them ideal for simple data storage needs.
5. No Complex Structure:
o Unlike databases or XML/JSON files, CSV files do not support nested data
structures, relationships, or metadata.
13
PROJECT MODULES
The "Tours & Travels Management System" is divided into the following key modules to
ensure an organized and efficient workflow:
1. Booking Module: Handles customer bookings, Records details, Allows modification
and cancellation of bookings
2. Tours Management Module: This module helps you to add, modify, and delete tours
and packages
3. Customer Management Module: This module helps you to add, modify, and delete
customer information, including names, contact details, and booking history.
4. Data Storage Module: Uses CSV files to store and retrieve data
5. Data Visualization Module:
Generates insights from stored data using the Matplotlib library.
Provides visual representations such as:
o Booking trends over time.
o Most popular destinations/packages.
o Revenue patterns and customer demographics.
These modules work together to deliver a complete and efficient travel management
system, addressing the operational needs of the tourism industry while enhancing user
experience and decision-making capabilities.
14
MENU
DATA
TOURS CUSTOMER BOOKING GUIDE
VISIULIZATION
Customers.csv
Bookings.csv
Guides.csv
16
17
print("\t ==========================")
print("\t TOUR AND TRAVELS MANAGEMENT SYSTEM ")
print("\t ==========================")
- Guide Manage our team of expert guides for an enriched travel experiences.
- Visualiza on: Dive into data with interac ve plots,
- Explore informa on about the least popular tours for a unique travel
- Reach out for assistance with our dedicated helpline providing a
Our system not only streamlines day-to-day opera ons but also offers a glimpse too.
Whether you are a travel enthusiast or a management.
Let's make your travel dreams a reality!
""")
print("+" + "-" * 60 + "+")
elif choice == 1:
print ("\t Tour Opera ons")
print("""
+-------------------------------------------------------------------------+
| Op ons | Opera ons |
+-------------------------------------------------------------------------+
| 1 |Add a new tour |
| 2 |Modify an exis ng tour |
| 3 |Remove a tour |
| 4 |View tour informa on |
| 5 |Top Tours |
| 6 |Least Tours |
| 7 |Back to Main Menu |
+-------------------------------------------------------------------------+
""")
tour_op on = int(input("Choose Your Desired Op on: "))
if tour_op on == 1:
print("\t Adding a New Tour")
tour_name = input("Enter Tour Name: ")
tour_des na on = input("Enter Tour Des na on: ")
tour_price = input("Enter Tour Price : ")
start_date = input("Enter Tour Start Date (YYYY-MM-DD): ")
end_date = input("Enter Tour End Date (YYYY-MM-DD): ")
elif tour_op on == 2:
print("\t Modifying an Exis ng Tour")
tour_id = input("Enter Tour ID: ")
19
elif tour_op on == 3:
print("\t Removing an Exis ng Tour")
tour_id = input("Enter Tour ID: ")
if remove_confirm.lower() in "y":
Tours.drop(tour_id, axis=0, inplace=True)
Tours.to_csv("Tours.csv")
print("Tour Removed Successfully")
input("Press Enter to con nue: ")
else:
print("Tour Not Removed")
input("Press Enter to con nue: ")
elif tour_op on == 4:
print("\t Viewing Tour Informa on")
tour_id = input("Enter Tour ID: ")
elif choice == 2:
if customer_op ons == 1:
print("\tAdding a New Customer")
customer_name = input("Enter Customer Name: ")
customer_address = input("Enter Customer Address: ")
customer_phone = input("Enter Customer Phone Number: ")
customer_email = input("Enter Customer Email: ")
customer_id = Customers.index
customer_id = customer_id[-1]
customer_id = customer_id[1:]
customer_id = int(customer_id) + 1
customer_id = "C" + str(customer_id)
print("Your Customer Id is ", customer_id)
Customers.loc[customer_id] = [customer_name, customer_address, customer_phone,
customer_email]
Customers.to_csv("Customers.csv")
print("New Customer added")
print(Customers.loc[customer_id])
input("Press any key to con nue: ")
if remove_confirm.lower() in "y":
Customers.drop(customer_id, axis=0, inplace=True)
Customers.to_csv("Customers.csv")
print("customer Removed Successfully")
input("Press Enter to con nue: ")
else:
print("customer Not Removed")
input("Press Enter to con nue: ")
else:
input("Back to Main Menu, Press Enter to con nue: ")
if booking_op ons == 1:
print("\tAdding a New Booking")
tour_id = input("Enter Tour ID: ")
customer_id = input("Enter customer ID: ")
tour_info = Tours.loc[tour_id]
# Display the available dates for the selected tour
print(f"Available Tour Dates for {tour_info['tour_name']}:")
print(f"Start Date: {tour_info['start_date']}")
print(f"End Date: {tour_info['end_date']}")
# Capture the booking date as the tour's star ng date
tour_info = Tours.loc[tour_id]
booking_date = tour_info['start_date']
want_guid = input("Do you want a guide for this booking? (Y/N): ").lower()
if want_guid == 'y':
print("\nAvailable Guides:")
print (Guides)
guide_id = input(" Enter Guide ID from the list above: ")
booking_id = booking_id[-1]
booking_id = booking_id[1:]
booking_id = int(booking_id) + 1
booking_id = "B" + str(booking_id)
Bookings.loc[booking_id] = [tour_id, customer_id, "No Guid", booking_date]
Bookings.to_csv("Bookings.csv")
print("Booking Added successfully without a guide.")
print("\nBooking Confirma on:")
print(f" Thank you for booking with us! Your booking details are as follows: ")
print(f"Booking ID: {booking_id}")
print(f"Tour Name: {tour_info['tour_name']}")
print(f"Tour Des na on: {tour_info['tour_des na on']}")
print(f"Start Date: {tour_info['start_date']}")
print(f"End Date: {tour_info['end_date']}")
print(f"Booking Date: {booking_date}")
print("Your journey will start from Bhurkunda at 7:00 PM. Have a great trip!")
input("Press Enter to con nue: ")
else:
print("Invalid input. Please enter 'Y' or 'N'.")
input("Press Enter to con nue: ")
# Placeholder: Add logic for valida ng new tour and customer IDs
if new_tour_id not in Tours.index or new_customer_id not in Customers.index:
print("Invalid Tour or Customer ID. Please Check and try again.")
input("Press Enter to con nue: ")
else:
#Update the booking informa on
tour_info = Tours.loc[tour_id]
booking_date = tour_info['start_date']
Bookings.loc[booking_id] = [new_tour_id, new_customer_id,
new_guide_id, booking_date]
Bookings.to_csv("Bookings.csv")
print("Booking Informa on Modified Successfully")
input("Press Enter to con nue: ")
25
if remove_confirm.lower() in "y":
Bookings.drop(booking_id, axis=0, inplace=True)
Bookings.to_csv("Bookings.csv")
print("Booking Removed Successfully")
input("Press Enter to con nue: ")
else:
print("Booking Not Removed")
input("Press Enter to con nue: ")
elif choice == 4:
print("\tGuide Opera ons")
print("""
+-------------------------------+----------------------------------------+
| Op ons | Opera ons |
+------------------------------+-----------------------------------------+
| 1 |Add a new guide |
26
elif guide_op on == 2:
print("\tModifying an Exis ng Guide")
guide_id = input("Enter Guide ID: ")
elif guide_op on == 3:
print("\t Removing an Exis ng Guide")
guide_id = input("Enter Guide ID: ")
elif choice == 5:
if viz_op on == 1:
merged_data = pd.merge(Tours, Bookings, le _index=True, right_on='Tour_ID')
des na on_counts = merged_data['tour_des na on'].value_counts()
28
des na on_counts.sort_values(ascending=False).plot(kind='line',marker='*',line
style='-',color='r')
plt. tle('Number of Bookings for Each Tour Des na on')
plt.xlabel('Tour Des na on')
plt.ylabel('Nunber of Bookings')
plt.grid(True)
plt.show()
elif viz_op on == 2:
# Bar Plot
plt.figure(figsize=(8,4))
Customers.groupby('customer_address').size().sort_values(ascending=False).plot(kind='bar')
plt. tle('Number of Customers in Each Address')
plt.xlabel('Customer Address')
plt.ylabel('Nunber of Customers')
plt.show()
elif viz_op on == 3:
# histogram
plt.figure(figsize=(8,4))
Bookings['Tour_ID'].hist(bins=10,color='skyblue',edgecolor='black')
plt. tle('Distribu on of Booked Tours')
plt.xlabel('Tour ID')
plt.ylabel('Nunber of Bookings')
plt.show()
elif viz_op on == 4:
# Bar Ptot for Popular Tour Des na ons
plt.figure(figsize=(10, 6))
'Email': '[email protected]',
'Address': 'Nagar Mahalla, GB Mall, 2nd floor, Bhurkunda'
}
print("\tHe1p1ine Informa on")
print(f"Phone: {helpline_info['Phone']}")
print(f"Email: {helpline_info['Email']}")
print(f"Address: {helpline_info['Address']}")
input("Press Enter to con nue: ")
elif choice ==7:
print("****** THANK YOU ******")
print("****** SEE YOU SOON ******")
break
else:
print("Invalid choice. Please select a valid op on.")
else:
print("Invalid Password!!!")
30
PROGRAM OUTPUT
Main Menu
Tour Menu
Tour Add
31
DATA VISUALIZATION
33
CONCLUSION
This Tours and Travels Management System is a simple desktop-based application
basically suitable for small organization. It has all basic elements which are used for
managing tour of small organization. We are successful in making the application where
we can insert, delete, update, search and analyse records as per need. This application also
provides a report including chart of tours records to analyse the performance.
We strongly believe that the implementation of this system will surely benefit the
organization.
BIBLIOGRAPHY
References and Bibliography:
Informatics Practices Class-XII NCERT Publication
Informatics Practices Class-XII by Preeti Arora
Think Python by Allen B Downey
Python for everybody by Charles Severance
Learning MYSQL by Seyed M. M. Tahaghoghi
MySQL in a nutshell by Russell J. T. Dyer
www.geeksforgeeks.org
www.ncert.co.in