Project
Project
2|Page
INTRODUCTION
The Hotel Management System (HMS) aims to
automate key hotel operations, focusing on guest
bookings and staff management. Using the Python
programming language, this system will help streamline
tasks such as room reservations and staff record
management.
Python is ideal for this project due to its simplicity and
powerful libraries, which enable efficient data handling
and automation. The system will store guest and staff
data in a secure database, using Python’s support for
SQLite, and manage tasks through an easy-to-use
interface created with Tkinter.
The project utilizes Object-Oriented Programming
(OOP) principles to ensure the system is modular,
maintainable, and scalable. By automating routine
tasks, the system will improve efficiency, reduce errors,
and enhance the overall hotel management process.
In conclusion, this Python-based Hotel Management
System will offer an effective solution for managing
bookings and staff details, ultimately improving
operational efficiency and service delivery.
SYSTEM ANALYSIS
3|Page
Existing System
Proposed System
4|Page
FEASIBILITY Study
5|Page
A feasibility study evaluates the viability of a project in terms
of its cost, technical requirements, and operational impact. For
the Hotel Management System (HMS), this study assesses
whether the system can be developed within budget, if the
technology is suitable for implementation, and how easily it
can be integrated into the hotel’s daily operations.
1. Economic Feasibility
The Hotel Management System is economically feasible
because it uses Python, an open-source language, reducing
development costs. The system will automate tasks like
bookings and billing, reducing the need for manual labor and
minimizing errors. This will lead to significant cost savings in
time and staff resources. The system will also improve
operational efficiency, which will result in better customer
service and higher revenue, ensuring a strong return on
investment (ROI).
2. Technical Feasibility
Technically, the system is feasible as it will be developed
using Python, a versatile and widely used language. Python’s
extensive libraries, like Tkinter for the interface and SQLite
for database management, are well-suited for the project’s
6|Page
modular design allows for easy scalability and future
enhancements.
3. Operational Feasibility
The system will be easy to use with an intuitive interface,
reducing training time for hotel staff. It will automate
repetitive tasks like bookings and adding new staff details,
improving overall operational efficiency. The system can be
implemented quickly, and regular maintenance will be
straightforward due to Python's strong community support.
Staff will likely accept the system as it reduces manual work
and improves workflow.
7|Page
SYSTEM DESIGN
PYTHON FILE – PROJECT HOTEL 2024-25.py
STAFF DETAILS
DIRECTORS.csv
MANAGERS.csv
CHEF.csv
8|Page
GROUNDSTAFF.csv
BOOKING DETAILS
BOOKED FOR LAST 7 DAYS.csv
9|Page
LAST 7 DAYS GRAPH.csv
12 | P a g e
SOURCE CODE
print("____________________________________________________")
print(" ","<"*3,"__"*5,"MARRIOT HOTEL","__"*5,">"*3)
print("__"*5,"1st choice for your holidays","__"*5)
print("____________________________________________________")
print("/"*52)
print("\n")
print("/"*52)
import pandas as pd
import matplotlib.pyplot as plt
ce=pd.DataFrame()
df=pd.DataFrame()
oo=pd.DataFrame()
jk=pd.DataFrame()
d=pd.DataFrame()
q=pd.DataFrame()
o=pd.DataFrame()
op=pd.DataFrame()
qr=pd.DataFrame()
ui=pd.DataFrame()
qs=pd.DataFrame()
y=pd.DataFrame()
l=pd.DataFrame()
kk=pd.DataFrame()
l=[]
d1=[]
13 | P a g e
r1=[]
r2=[]
d2=[]
print("~"*20,"*"*5,"~"*23)
pw=int(input("Enter pw="))
if pw ==5005:
print("Welcome admin")
else:
print("Unauthorized user")
print("~"*20,"*"*5,"~"*23)
print("\n")
while True:
print("~"*20,"*"*5,"~"*23)
print("HOTEL DETAILS")
print("____________________")
print("|1. Staff details")
print("|2. Booking details")
print("|3. Room Details")
print("|4. Exit")
print("|___________________|")
print("~"*20,"*"*5,"~"*23)
print("\n")
ch=int(input("Enter your choice="))
print("\n")
if ch==1:
print("~"*20,"*"*5,"~"*23)
print("STAFF")
14 | P a g e
print("__________________")
print("|1. Directors")
print("|2. Managers")
print("|3. Chef")
print("|4. Ground Staff")
print("|5. Exit")
print("__________________")
print("~"*20,"*"*5,"~"*23)
print("\n")
while True:
cho=int(input("Enter your choice="))
print("\n")
print("~"*20,"*"*5,"~"*23)
print("STAFF DETAILS")
print("~"*20,"*"*5,"~"*23)
if cho==1:
print("DIRECTORS")
print("__________________")
print("|1.Adding details")
print("|2.Viewing details")
print("|3.Exit")
print("__________________")
c=int(input("Enter your choice:"))
if c==1:
Name=input("Enter name=")
Ph_no=int(input("Enter phone no.="))
Email_ID=input("Enter email id=")
15 | P a g e
Employee_ID=int(input("Enter employee id="))
DOB=input("Enter dob=")
l.append([Name, Ph_no, Email_ID, Employee_ID, DOB])
ce=pd.DataFrame(l)
ce.to_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\DIRECTORS NEW.csv")
for (col,records) in ce.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
print("Successfully added")
elif c==2:
ce=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\DIRECTORS.csv")
for (col,records) in ce.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
elif c==3:
break
else:
print("Invalid choice.")
elifcho==2:
print("MANAGERS")
print("__________________")
print("|1.Adding details")
print("|2.Viewing details")
print("|3. Exit")
print("__________________")
c=int(input("Enter your choice:"))
16 | P a g e
if c==1:
Name=input("Enter name=")
Designation=input("Enter new designation=")
Employee_ID=int(input("Enter employee id="))
Email_ID=input("Enter email id=")
DOB=input("Enter dob=")
salary=input("Enter salary=")
l.append([Name, Designation, Employee_ID, Email_ID, DOB, salary])
ce=pd.DataFrame(l)
ce.to_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\MANAGERS NEW.csv")
for (col,records) in ce.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
print("Successfully added")
elif c==2:
df=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\MANAGERS.csv")
for (col,records) in df.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
elif c==3:
break
else:
print("Invaild choice")
elifcho==3:
print("CHEF")
print("__________________")
17 | P a g e
print("|1.Adding details")
print("|2.Viewing details")
print("|3. Exit")
print("__________________")
c=int(input("Enter your choice:"))
if c==1:
Name=input("Enter name=")
Designation=input("Enter new designation=")
Employee_ID=int(input("Enter employee id="))
Email_ID=input("Enter email id=")
DOB=input("Enter dob=")
salary=int(input("Enter salary="))
l.append([Name, Designation, Employee_ID, Email_ID, DOB, salary])
ce=pd.DataFrame(l)
ce.to_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\CHEF NEW.csv")
for (col,records) in ce.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
print("Successfully added")
elif c==2:
df=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\CHEF.csv")
for (col,records) in df.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
elif c==3:
break
18 | P a g e
else:
print("Invaild choice")
elifcho==4:
print("GROUND STAFF")
print("__________________")
print("|1.Adding details")
print("|2.Viewing details")
print("|3. Exit")
print("__________________")
c=int(input("Enter your choice:"))
if c==1:
Name=input("Enter name=")
Designation=input("Enter new designation=")
Employee_ID=int(input("Enter employee id="))
Email_ID=input("Enter email id=")
DOB=input("Enter dob=")
salary=int(input("Enter salary="))
l.append([Name, Designation, Employee_ID, Email_ID, DOB, salary])
ce=pd.DataFrame(l)
ce.to_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\GROUND STAFF NEW.csv")
for (col,records) in ce.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
print("Successfully added")
elif c==2:
jk=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\GROUND STAFF.csv")
19 | P a g e
for (col,records) in jk.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
elif c==3:
break
else:
print("Invalid choice=")
elifcho==5:
break
else:
print("Invalid choice")
print("~"*20,"*"*5,"~"*23)
print("\n")
elifch==2:
while True:
print("~"*20,"*"*5,"~"*23)
print("SALES RECORD")
print("___________________________________________")
print("|1. SALES LAST 7 DAYS")
print("|2. SALES LAST 3 SEASON SALES")
print("|3. PREBOOKING FOR NEXT 7 DAYS")
print("|4. Exit")
print("___________________________________________")
print("~"*20,"*"*5,"~"*23)
print("\n")
m=int(input("Enter your choice="))
print("\n")
20 | P a g e
print("~"*20,"*"*5,"~"*23)
if m==1:
st=input("Do you want to find a particular day's sale? (y/n)")
print("\n")
print("~"*20,"*"*5,"~"*23)
if st=='y':
q=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL
MANAGEMENT PROJECT\BOOKED FOR LAST 7 DAYS.csv")
date=input("Enter date=")
for (col,records) in q.iterrows():
if records['Date']==date:
print(records)
print("~"*20,"*"*5,"~"*23)
print("\n")
else:
q=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL
MANAGEMENT PROJECT\BOOKED FOR LAST 7 DAYS.csv")
for (col,records) in q.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
u=input("Do you want to view sales of different rooms? (y/n)")
print("\n")
if u=='y':
print("~"*20,"*"*5,"~"*23)
q=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL
MANAGEMENT PROJECT\LAST 7 DAYS GRAPH.csv")
x=input("Do you want to view in bar chart or line chart? (B\\L)")
if x in "Ll":
21 | P a g e
q.plot(x="Date")
plt.xlabel("Date")
plt.ylabel("Sale of Rooms")
plt.title("LAST 7 DAYS GRAPH")
plt.show()
elif x in "Bb":
q.plot(kind="bar", x="Date", stacked='True')
plt.xlabel("Date")
plt.title("LAST 7 DAYS SALE GRAPH")
plt.ylabel("Sale of Rooms")
plt.show()
else:
print("Invalid choice")
print("~"*20,"*"*5,"~"*23)
else:
print("OK")
print("~"*20,"*"*5,"~"*23)
print("\n")
elif m==2:
o=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL
MANAGEMENT PROJECT\LAST 3 SEASON SALES.csv")
for (col,records) in o.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
x=input("Do you want to view in bar chart or line chart? (B\\L)")
if x in "Ll":
o.plot(x="Seasons")
plt.title("LAST 3 SEASONS SALES")
22 | P a g e
plt.ylabel("Sale of Rooms")
plt.show()
elif x in "Bb":
o.plot(kind="bar", x="Seasons", stacked='True')
plt.title("LAST 3 SEASONS SALES")
plt.ylabel("Sale of Rooms")
plt.show()
else:
print("Invalid choice")
print("~"*20,"*"*5,"~"*23)
print("\n")
elif m==3:
z=input("Do you want to find out a particular day's sale? (y/n)")
print("~"*20,"*"*5,"~"*23)
if z=='y':
op=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL
MANAGEMENT PROJECT\PREBOOKING 7 DAYS.csv")
date=input("Enter date=")
print("\n")
print("~"*20,"*"*5,"~"*23)
for (col,records) in op.iterrows():
if records['Date']==date:
print(records)
print("~"*20,"*"*5,"~"*23)
else:
op=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL
MANAGEMENT PROJECT\PREBOOKING 7 DAYS.csv")
for (col,records) in op.iterrows():
23 | P a g e
print(records)
print("~"*20,"*"*5,"~"*23)
print("\n")
u=input("Do you want to view sales of different rooms? (y/n)")
if u=='y':
print("~"*20,"*"*5,"~"*23)
op=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL
MANAGEMENT PROJECT\NEXT 7 DAYS GRAPH.csv")
x=input("Do you want to view in bar chart or line chart? (B\\L)")
if x in "Ll":
op.plot(x="Date")
plt.title("PREBOOKINGS FOR 7 DAYS")
plt.ylabel("Sales of Rooms")
plt.show()
elif x in "Bb":
op.plot(kind="bar", x="Date", stacked='True')
plt.title("PREBOOKING FOR 7 DAYS")
plt.ylabel("Sales of Rooms")
plt.show()
else:
print("Invalid choice")
print("~"*20,"*"*5,"~"*23)
elif u=='n':
print("OK")
print("~"*20,"*"*5,"~"*23)
print("\n")
else:
print("Invalid choice")
24 | P a g e
print("~"*20,"*"*5,"~"*23)
elif m==4:
break
else:
print("Invalid choice")
print("~"*20,"*"*5,"~"*23)
elifch==3:
print("5 types of room with description")
kk=pd.read_csv(r"C:\Users\Junior lab 5\Desktop\HOTEL MANAGEMENT
PROJECT\ROOMS.csv")
for (col,records) in kk.iterrows():
print(records)
print("~"*20,"*"*5,"~"*23)
elifch==4:
print("Thank you!")
break
else:
print("Invalid choice")
print("~"*20,"*"*5,"~"*23)
25 | P a g e
SCREEN
OUTPUT
26 | P a g e
DIRECTORS NEW.csv
27 | P a g e
28 | P a g e
29 | P a g e
30 | P a g e
31 | P a g e
32 | P a g e
33 | P a g e
34 | P a g e
35 | P a g e
36 | P a g e
37 | P a g e
38 | P a g e
Conclusion
The development of the Hotel Management System (HMS) using
Python has been a highly rewarding and insightful project. Through
this system, we have successfully automated key hotel operations
such as room bookings, guest check-ins/check-outs, billing, and staff
management. The integration of Python’s powerful libraries, such as
Tkinter for the user interface and SQLite for database management,
has allowed us to create a robust, efficient, and user-friendly solution.
39 | P a g e
BIBILIOGRAPHY
Informatics Practices with Python:
Preeti Arora
Informatics Practices Python:
Sumitha Arora
40 | P a g e