Professional Documents
Culture Documents
Hotel Management Project Report
Hotel Management Project Report
HOTEL MANAGEMENT
PROJECT REPORT
Submitted by
VISHNU A
CLASS XII
[2021 – 2022]
I
ACKNOWLEDGEMENT
Apart from the efforts of me, the success of any project depends a largely on the
encouragement and guidelines of many other. I take this opportunity to express my
gratitude to the people who have been instrumental in the successful completions of
this project.
I express my deep sense of gratitude to the luminary The Principal, Kurinji Senior
Secondary School, Namakkal who has been continuously motivating on us.
I shall fail in my duty if I didn't thank COMPUTER SCIENCE TEACHER in
charge, a guide, mentor all the above a friend, who critically reviewed my project
and helped in solving each and every problem, occurred during implementation of
the project.
The guidance and support received from all the members who contributed and who
are contributing in this project was vital for the success of the project. I am
gratefully for their constant support and help.
III
ABSTRACT
This application is specially developed to help hotel staff. The project Hotel
Management manages and maintains the records of customers and room in the
hotel. The rooms have different categories such as Standard Non-Ac, Standard Ac
etc. So their charges and records will be maintained accordingly. This software
has been made in a user-friendly interface, so that anyone can add, delete the
entries of customers and handle all the transactions easily. Asset-up-user etc., also
the user name and password get stored in the data base in encrypted format more
dealing with the security. Customer can either make booking in advance, facility to
generate report of transactions made in terms of check-in & check-out, bookings
by day or specified time span.
IV
TABLE OF CONTENTS
Bonofide Certificate ii
Acknowledgement iii
Abstract IV
1. INTODUCTION 1
2. SYSTEM ANALYSIS 2
2.1 Objectives
2.2 Proposed System
2.3 Functionalities provided by python project
on Hotel & room management
3. HARDWARE AND SOFTWARE 4
REQUIREMENTS
4. PROJECT DESCRIPTION 4
4.1 Module
4.2 System Testing
5. RESULT DISCUSSION 6
5.1 Source Code
5.2 Screenshot
6. CONCLUSION 22
7. BIBLIOGRAPHY 22
8. FUTURESCOPE 22
V
HOTEL MANAGEMENT
1. INTRODUCTION
The Hotel Management System Project in Python is a general software developed
(using Python) to simplify hotel operations by automating them. In this tutorial I
will teach you on how to Create Hotel Management System Project in Python.
You don't have to worry because I will expect that I will guide you to the step- by-
step process especially in declaring it variables and modules.
1
1. SYSTEM ANALYSIS
1.1 OBJECTIVES:
Hotel Management System (HMS) is a Hotel Management System to add to the
misery, they are made to carry a long list of Customer reports, Customer Bills,
Room Details, Service Details, and Restaurant Information. Bar Information,
Restaurant bills and Bar bills and so on.
The most affected are the less educated majority and the poor who cannot
maintain these documents in a systematic fashion.
This application gives him the power and flexibility to manage the entire
system from a single online system. Hotel management project provides room
booking, staff management and other necessary hotel management features.
The system allows the manager to post available rooms in the system.
Customers can view and book room online.
2
2.3Functionalities provided by python project on Hotel management
2. Enables distribution:
Hotel booking software enables hotels to be present in the global marketplace in
real time. Competition is extremely stiff in the hospitality industry, and your guests
have numerous hospitality options when they are travelling - B&B's, hostels,
hotels, boutiques, Airbnb and so on. To stay ahead of the competition, you need
to ensure that your hotels are as visible as possible. The hotel booking software
enables hotels to not just maximize bookings via the hotel's own website but also
be present in various online channels - OTA's and GDS. Also with the booking
software, your inventory and rate parity uniformly across all channels via one
platform hotel can manage all the channels via one interface, therefore maintaining
their room rm. This helps simplify operations for your reservations team and also
ensures that issues such as double or overbooking are eliminated.
3
4. Increases multi-tasking:
With the booking system, a hotel with minimal staff can effectively manage
several tasks simultaneously. They can manage group check INS, check out of
other guests, and confirm reservations, and so on, all at the same time.
3. Hardware and software requirements:
1. Operating system: Windows 7 and above
2. Processor: Pentium or amdathalon (3800+4200+dual core)
3. Motherboard: 1.845 or 915.995 for Pentium or msi
k9mm vviaK8m800+8237r
Plus
Chipset for amdathalon
4. Ram: 512+mb
5. Hard disk: sata 40 GB or above
6. Cd/DVD/multi Drive combo: (if backup required).
7. Floppy drive: (if backup required)
8. Monitor, Keyboard, Mouse and Printer
9. Software: Python
4. PROJECT DESCRIPTION
4.1 Modules of Hotel Management system
4
4.2 SYSTEM TESTING
LEVELS OF TESTING:
In order to uncover the errors present in different phases we have the
concept of levels of testing. The basic levels of testing are as shown below.
System Testing:
The philosophy behind testing is to find errors. Test cases are devised with
this in mind. A strategy employed for system testing is code testing.
Code testing:
This strategy examines the logic of the program. To follow this method, we
developed some test data that resulted in executing every instruction in the program
and module i.e. every path is tested. Systems are not designed as entire nor are they
tested as single systems. To ensure that the coding is perfect two types of testing is
performed or for that matter is performed or that matter is performed or for that
matter is performed on all systems.
Unit Testing:
Unit testing focuses verification effort on the smallest unit of software
i.e. the module. Using the detailed design and the process specifications testing
is done to uncover errors within the boundary of the module.
Link Testing:
Link testing does not test software but rather the integration of each module
in system. The primary concern is the compatibility of each module.
Integration Testing:
After the unit testing, we have to perform integration testing. The goal here
is 10 see if modules can be integrated properly, the emphasis being on testing
interfaces between modules. This testing activity can be considered as testing the
design and hence the emphasis on testing module interactions.
5
4.3 Installation process:
Install python 3.4.0 in your device if you do not have python.
Run the file “installationwindow.py”, "loginwindow.py" in your pc to create
splash screen, install window screen and first time install functionality.
Run "Hotelmanagement.py" in the python command to get the output.
6
5. RESUTS DISCUSSION
5.1 SOURCE CODE:
#main.py
from rooms import room_menu
Z = date.today()
d1 = Z.strftime("%d/%m/%Y")
if __name__ == '__main__':
while True:
print()
print("\t\t\t+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
print("\t\t\t+ +")
print("\t\t\t+ WELCOME TO SRI HARISH VEL 5 STAR HOTEL & ROOM SERVICES +")
print("\t\t\t+ +")
print("\t\t\t+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
print_center("0. Exit")
print()
if choice == 1:
room_menu()
elif choice == 2:
customer_menu()
elif choice == 0:
7
break
else:
print_center("GoodBye")
8
#datafile.py
import pickle
class DataFile:
self.name = name
pickle.dump(record, file)
file.close()
def get_records(self):
records = []
try:
except FileNotFoundError:
return records
while True:
try:
record = pickle.load(file)
records.append(record)
except EOFError:
break
file.close()
return records
pickle.dump(record, file)
file.close()
9
#customer.py
from datetime import datetime
class Customer:
self.customer_id = customer_id
self.name = name
self.address = address
self.phone = phone
self.room_no = room_no
self.entry_date = entry_date
self.checkout_date = checkout_date
def print_all(self):
print(str(self.customer_id).ljust(3),
self.name[0:15].ljust(15),
self.address[0:15].ljust(15),
self.phone.ljust(15),
str(self.room_no).ljust(10),
self.entry_date.strftime("%d-%b-%y").ljust(15),
def print_full(self):
print_bar()
print_bar()
10
def create_customer(customer_id, room_no):
entry_date = datetime.now()
def print_header():
print("="*100)
print("id".ljust(3),
"name".ljust(15),
"address".ljust(15),
"phone".ljust(15),
"room no".ljust(10),
"entry".ljust(15),
"check out".ljust(15))
print("="*100)
11
#customers.py
from datetime import datetime
NUMBER_OF_RECORDS_PER_PAGE = 10
customerTable = DataFile("customers.dat")
def add_customer():
if found:
room_no = rooms[position].room_no
customers = customerTable.get_records()
if len(customers) == 0:
customer_id = 0
else:
customer_id = customers[len(customers)-1].customer_id + 1
if confirm.lower() == 'y':
customerTable.add_record(customer)
change_room_status(room_no, False)
print("Operation Successful")
else:
print("Operation Canceled")
def get_and_print_customer_list_by_name():
customers = customerTable.get_records()
12
results = []
if len(customers) == 0:
else:
words = name.split()
if word in customer.name.lower():
results.append(customer)
if len(results) == 0:
else:
print_header()
customer.print_all()
return results
def get_and_print_employee_by_id():
customers = customerTable.get_records()
found = False
position = -1
if len(customers) == 0:
else:
position += 1
if customer_id == customer.customer_id:
13
found = True
break
if not found:
else:
customers[position].print_full()
def get_and_print_customer_list_by_address():
customers = customerTable.get_records()
results = []
if len(customers) == 0:
else:
words = address.split()
if word in customer.address.lower():
results.append(customer)
if len(results) == 0:
else:
print_header()
customer.print_all()
return results
def get_and_print_customer_list_by_phone():
customers = customerTable.get_records()
14
results = []
if len(customers) == 0:
else:
if phone in customer.phone:
results.append(customer)
if len(results) == 0:
else:
print_header()
customer.print_all()
return results
def get_and_print_customer_by_room_no():
customers = customerTable.get_records()
found = False
position = -1
if len(customers) == 0:
else:
position += 1
found = True
break
if not found:
15
print("No matching record")
else:
customers[position].print_full()
def print_customer_list_by_check_in():
customers = customerTable.get_records()
if len(customers) == 0:
else:
results = []
if customer.entry_date.date() == check_in.date():
results.append(customer)
if len(results) == 0:
else:
print_header()
customer.print_all()
def print_current_list_of_customers():
customers = customerTable.get_records()
if len(customers) == 0:
16
else:
results = []
if customer.checkout_date is None:
results.append(customer)
if len(results) == 0:
else:
print_header()
customer.print_all()
def check_out():
if found:
customer = customers[position]
customer.checkout_date = datetime.now()
if confirm == 'y':
customerTable.overwrite(customers)
change_room_status(customer.room_no, True)
print("Operation Successful")
else:
print("Operation Cancelled")
def edit_customer_details():
if found:
customer = customers[position]
17
if len(name) > 0:
customer.name = name
if len(address) > 0:
customer.address = address
if len(phone) > 0:
customer.phone = phone
if confirm == 'y':
customerTable.overwrite(customers)
print("Operation Successful")
else:
print("Operation Cancelled")
def delete_customer():
if found:
confirm = input()
if confirm == 'y':
customers.pop(position)
customerTable.overwrite(customers)
print("Operation Successful")
else:
print("Operation Cancelled")
def view_all_customers():
customers = customerTable.get_records()
if len(customers) == 0:
else:
18
i=0
print_header()
i += 1
customer.print_all()
if i == NUMBER_OF_RECORDS_PER_PAGE:
def customer_menu():
while True:
print()
print("==============================")
print("==========Customer Menu=========")
print("==============================")
print()
print("0. Go Back")
if choice == 1:
add_customer()
elif choice == 2:
19
get_and_print_customer_list_by_name()
elif choice == 3:
get_and_print_employee_by_id()
elif choice == 4:
get_and_print_customer_list_by_address()
elif choice == 5:
get_and_print_customer_list_by_phone()
elif choice == 6:
get_and_print_customer_by_room_no()
elif choice == 7:
print_customer_list_by_check_in()
elif choice == 8:
print_current_list_of_customers()
elif choice == 9:
check_out()
edit_customer_details()
delete_customer()
view_all_customers()
elif choice == 0:
break
else:
20
#room.py
from myprint import print_bar
class Room:
self.room_id = room_id
self.room_no = room_no
self.floor = floor
self.beds = beds
self.available = available
def print_all(self):
print(str(self.room_id).ljust(3),
str(self.room_no).ljust(15),
self.floor.ljust(15),
str(self.beds).ljust(15),
str(self.available).ljust(15))
def print_full(self):
print_bar()
print_bar()
def create_room(room_id):
21
available = True
def print_header():
print("="*100)
print("id".ljust(3),
"room no".ljust(15),
"floor".ljust(15),
"beds".ljust(15),
"available".ljust(15)
print("="*100)
22
#rooms.py
from datafile import DataFile
NUMBER_OF_RECORDS_PER_PAGE = 10
roomTable = DataFile("rooms.dat")
def add_room():
rooms = roomTable.get_records()
if len(rooms) == 0:
room_id = 0
else:
room = create_room(room_id)
roomTable.add_record(room)
print("Operation Successful")
def get_and_print_room_by_no():
rooms = roomTable.get_records()
found = False
position = -1
if len(rooms) == 0:
else:
position += 1
if room_no == room.room_no:
found = True
break
if not found:
else:
rooms[position].print_full()
23
return rooms, found, position
def get_and_print_room_by_beds():
rooms = roomTable.get_records()
results = []
if len(rooms) == 0:
else:
if beds == room.beds:
results.append(room)
if len(results) == 0:
else:
print_header()
room.print_all()
return results
def edit_room_details():
if found:
room = rooms[position]
if len(room_no) > 0:
room.room_no = int(room_no)
if len(floor) > 0:
room.floor = floor
if len(beds) > 0:
22
room.beds = int(beds)
roomTable.overwrite(rooms)
print("Operation Successful")
def delete_room():
if found:
room = rooms[position]
confirm = input()
if confirm.lower() == 'y':
rooms.remove(room)
roomTable.overwrite(rooms)
print("Operation Successful")
else:
print("Operation Canceled")
rooms = roomTable.get_records()
found = False
position = -1
if len(rooms) == 0:
else:
position += 1
if room_no == room.room_no:
found = True
break
if not found:
else:
room = rooms[position]
room.available = available
23
roomTable.overwrite(rooms)
print("Operation Successful")
def view_all_rooms():
rooms = roomTable.get_records()
if len(rooms) == 0:
else:
i=0
print_header()
i += 1
room.print_all()
def room_menu():
while True:
print()
print("============================")
print("==========Room Menu=========")
print("============================")
print()
print("0. Go Back")
if choice == 1:
add_room()
elif choice == 2:
get_and_print_room_by_no()
24
elif choice == 3:
get_and_print_room_by_beds()
elif choice == 4:
edit_room_details()
elif choice == 5:
delete_room()
elif choice == 6:
view_all_rooms()
elif choice == 0:
break
else:
25
#myprint.py
SCREEN_WIDTH = 100
def print_center(s):
x_pos = SCREEN_WIDTH // 2
def print_bar():
print("=" * 100)
def print_bar_ln():
print_bar()
print()
def input_center(s):
x_pos = SCREEN_WIDTH // 2
return input()
26
5.2 Output:
27
28
29
30
31
32
33
34
6. CONCLUSION:
Hotel management system now-a-day have the advantage of modernization.
Computer have done the work more easy. Computer is playing an important role
in management. Reports are made on daily basis for every customer check in or
check out which can easily be seen by the management. Hotel management
system has also primary purpose is to provide facilities to customers. A software
for computers makes the things many times easy, these are made as user friendly
and to keep a check and balance in hotel management and accounts as well. So
these things are important.
7. BIBLIOGRAPHY:
Website: https://itsourcecode.com/freeprojects/python-
projects/hotel management-systemproject-in-python/
With guidelines of computer science staffs.
8. FUTURE SCOPE:
At present this software does not contains credit card facility. We can us
this application in online so that we can reserve the table and do the online
payment. So as the demand increases, we can add these modules as the future
scope.
35