Professional Documents
Culture Documents
Project Report
On
Bachelor of Engineering in
Computer
By
Name Roll no.
Prashant Bhalerao 03
Chetan Parse 08
Yash Prajapat 10
Jishan Shaikh 12
Supervisor
Prof. (SUPRIYA PAWAR)
Technology Personified
Department of Computer Engineering
Innovative Engineers’ and Teachers’ Education society’s
Bharat College of Engineering
Badlapur: - 421504
(Affiliated to University of Mumbai)
(2021-22)
Technology Personified
Bharat College of Engineering
(Affiliated to the University of Mumbai)
Badlapur :- 421504.
CERTIFICATE
This is to certify that, the Project titled
Prashant Bhalerao
Chetan Parse
Yash Prajapat
Jishan Shaikh
and is submitted in the partial full-filament of the requirement for the degree of
Bachelor of Engineering in Computer
To the University of Mumbai
Supervisor
Prof. (Supriya Pawar)
The Project HOTEL MANAGEMENT SYSTEM is a web-based application that allows the
hotel manager to handle all hotel activities online. Interactive and the ability to manage
various hotel bookings and rooms make this system very flexible and convenient. The hotel
manager is a very busy person and does not have the time to sit and manage the entire
activities manually on paper. 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 themanager to post available rooms in the system. Customers can view and book room
online. Admin has the power of either approving or disapproving the customer's booking
request. Other hotel services can also be viewed by the customers and can bookthem too. The
system is hence useful for both customers and managers toportably manage the hotel
activities.
i
INDEX
ABSTRACT
1. INTRODUCTON 1
2. ANALYSIS 3
3. DESIGN APPROACH
3.1 DATA FLOW DIAGRAMS
3.2 UML DIAGRAMS 8
3.3 SEQUENCE DIAGRAMS
3.4 CLASS DIAGRAMS
3.5 ER DIAGRAM
6. OUTPUT SCREENSHOTS 28
7. PROBLEM STATEMENT 31
8. CONCLUSION 32
9. REFERENCES 33
i
i
1. INTRODUCTION
1.1 Purpose
The purpose of hotel booking system is to automate the existing manual system by the
help of computerized equipment’s and full-fledged computer software, fulfilling their
requirement, so that their valuable or information can be stored for a longer period with
easy accessing and manipulating of the same. The required software and hardware are
easily available and easy to work with. This proposes that efficiency of hotel
organizations could be improved by integrating service-oriented operations
1
service-oriented operations with project management principles. Such integration would
instill innovation, proactive attitudes and regulated risk-taking needed to pursue ongoing
improvement and proactive response to change. By managing each change as a project,
embedded in smoothly running operations, hotels would extend their life span by
continuously reinventing themselves.
1.1.1 Advantages:
The advantages of booking a hotel online add up long before your arrival. Our legendary
customer service extends to the web One advantage of booking with the hotel directly is
the use of the hotel's full cancellation policy as well as not needing a deposit in most
situations. Read reviews and compare prices for Online Hotel Booking. The most
important advantage of online hotel booking is convenience, you can book your room by
simply sitting in home. Internet helps you to browse through the hotels around the world
and compare the facilities and rates easily.
1.2 Scope
1.2.1 Existing System with Limitations:
In this step, we provide a detailed description about the existing system and the problems
faced in the existing system. This stage there is no existing system previously; we are
developing a new system. Till now no system is available with this type of features and
facilities. This system is developed for the all types of users with highly flexible and
configurable product is envisaged to ensure global marketing.
2
2. ANALYSIS
Requirement analysis for web applications encompasses three major tasks: formulation,
requirements gathering and analysis modeling. Duringformulation, the basic motivation and
goals for the web application are identified, and the categories of users are defined. In the
requirements gathering phase, the content and functional requirements are listed and
interaction scenarios written from end-user’s point-of-view are developed. This intent is to
establish a basic understanding of why the web applications built, who will use it, and what
problems it will solve for its users.
3
compute the bill etc. which has to be performed repeatedly on regular basis. To provide
efficient, fast, reliable and user-friendly system is the basic motto behind this exercise. Let us
now discuss how different functions handle the structure and datafiles:
1. Password In this module, this website is for multiple users. If a Use renter a password and
the software check its validity. If the password invalid then option is given to change the
password, otherwise “Invalid User/Password” message is displayed. There is an option for
password recovery, log out, login, new users sign in. The Administrator can also update
changes in the site after login.\
2. Creating new Entity (Hotel, Room, Customers, Members etc.) This issued to add a new
employee detail, delete entity details and view the details. In that screen, the automatic item is
created. In this function, whenever a new entity is required to be added the corresponding
forms are opened and the database is manipulated to check whether the data is already
existing or not. If it already exists, then it prompts that “Entry already existing” and if not
than the data is entered with the various validation checks.
3.Function NEW_ROOM () This is the function used to open a new room for a customer so
that he/she can assign a separate room. In that screen, the automatic room number is created.
After opening a new room for the customer, finally a room is assigned to a customer and the
room records are appended in the data file.
4.Function CHECKIN_CUSTOMER () This function is used to admit a customer in our
hotel after entering his all-personal details like Name, Address, Phone, Sex and then he/she is
assigned a room fromNEW_ROOM () function.
5.Function CHECKOUT_CUSTOMER () This function is used to check out the customer
details from database. When the user inputs his roomnumber, the same room number will be
checked in the database, if the room number is matched in the database, then the customer
will be check-
out from the database and transferred the record of the checkout to another
table of database so that the Hotel Management has the record of
customers who have check-out to fulfill his legal liabilities.
8: Validation of Data Entered by the User & Error Handling In this function, the validity
of data entered by the user during the various business processes are checked through various
validation checks. For example, there should not be any characters entered in the numeric
fields, likewise, if there is any error occurs than it should handle that particular error and give
the required messages
9: Searching In this function, room, customer well as members can search
details from the database according to their authentications.
4
10: Report Generation In this function reports are generated for the
following entities:
a) Customer Details.
b) Requirements of the Customers
c) Rooms Details
d) Bill Details
e) Checking
5
2.3 Function Requirements
Module Description
The HOTEL MANAGEMENT SYSTEM consists of 2 modules and 3
categories.
The categories are as follows:
Advanced Search
Booking
Payment
6
User Module:
The Functionalities of the User is: A new User can register with the application by entering
his appropriate details. The User should login into the system with unique his/her password
and username. If the username and password is validated then he can gain access to the
system. The User can change his password, To change the password, it should ask for the old
password, new password and confirm new password View the Categories.
7
3. DESIGN APPROACH
8
Detailed Level DFD:
9
In Detailed D.F.Ds the main process is divided into sub processes and we try to find out the
flow from one process to another process. We find the interaction among External
entities, processes, subprocesses and database.
10
Fig. Data Flow: Record Modification
11
3.2 UML DIAGRAMS
Activity diagrams are used to document workflows in a system, from the business level
down to the operational level. When looking at an activity diagram, you'll notice elements
from state diagram, the Activity diagram is a variation of the state diagram where the "states"
represent operations, and the transitions represent the activities that happen when the
operation is complete. The general purpose of Activity diagrams is to focus on flows driven
by internal processing vs. external events.
3.2.1 Activity Diagrams:
An activity diagram shows the flow from activity to activity. An activity is an ongoing non-
atomic execution within a state machine. Activities ultimately result in some action, which is
made up of executableatomic computations that result in a change in state of the system or
thereturn of a value. Activity diagrams commonly contain Activity states and action
statesTransitionsObjectsLike all other diagrams, activity diagrams may contain notes and
constrains
LoginProcess:
12
Fig.1.2 UML Diagram: New Customer Registration
13
3.3 Sequence Diagram
UML sequence diagrams model the flow of logic within your system in a visual manner,
enabling you both to document and validate your logic, and are commonly used for both
analysis and design purposes. Sequence diagrams are the most popular UML artifacts for
dynamic modeling, which focuses on identifying the behavior within your system.
14
Sequence Diagram An interaction diagram shows an interaction, consisting of a set of objects
and their relationships, including the messages that may be dispatched among them. A
sequence diagram is an interaction diagram that emphasizes the time ordering of messages.
Graphically, a sequence diagram is a table that shows objects arranged along x-axis and
messages, ordered in increasing time, along the y-axis. ContentsSequence diagrams
commonly contain the following: ObjectsLinksMessagesLike all other diagrams, sequence
diagrams may contain notes and constrains.
15
A class diagram describes the static structure of the symbols in your new
system. It is a graphic presentation of the static view that shows a collection of
declaratives (static) model elements, such as classes, types, and their contents
and relationships. Classes are arranged in hierarchies sharing common structure
and behavior, and are associated with other classes
3.4 ER Diagram: Entity – Relationship Diagram: This depicts relationship between data
objects. The attribute of each data objects noted in the entity- relationship diagram can be
described using a data object description. Data flow diagram serves two purposes:1. To
provide an indication of how data are transformed as they move through the system.2. To
depict the functions that transformation the data flow.
16
Fig. ER Diagram Hotel Management System
17
4. SYSTEM STUDY AND TECHNOLOGY
18
5. IMPLEMENTATION / CODE
import os
import pickle
details_list=[]
l2=[]
G = []
def file_save():
NAME_PRO = details_list[0]
ADDRESS_PRO = details_list[1]
MOBILE_NO_PRO = details_list[2]
ROOM_NO_PRO = details_list[3]
PRICE_PRO = details_list[4]
f = open("hotel.dat", "ab")
a=save(NAME_PRO,ADDRESS_PRO,MOBILE_NO_PRO,ROOM_NO_PR
O,PRICE_PRO)
pickle.dump(a,f,protocol=2)
f.close()
restart_program()
def restart_program():
python = sys.executable
os.execl(python, python, * sys.argv)
class save:
def __init__(self, NAME_PRO, ADDRESS_PRO, MOBILE_NO_PRO,
ROOM_NO_PRO, PRICE_PRO):
self.name=NAME_PRO
self.address=ADDRESS_PRO
self.mobile_no=MOBILE_NO_PRO
self.room_no=ROOM_NO_PRO
self.price=PRICE_PRO
print(self.name,self.address,self.mobile_no,self.room_no,self.price)
19
import sys
try:
from Tkinter import *
except ImportError:
from tkinter import *
try:
import ttk
py3 = False
except ImportError:
import tkinter.ttk as ttk
py3 = True
class HOTEL_MANAGEMENT:
def __init__(self):
def gotinfo():
self.gettininfo = str(self.gather.get())
print("\n")
if self.gettininfo.isdigit() == True and len(self.gettininfo) != 0:
self.Text1.insert(INSERT, "Valid room number ""\n")
else :
self.Text1.insert(INSERT,"invalid room number""\n")
try:
n=0
f2 = open("hotel.dat", "rb")
while True:
s = pickle.load(f2)
a = str(s.room_no)
if self.gettininfo == a:
n=1
print("NAME-", "\t", "\t", s.name)
print("\n")
print("ADDRESS-", "\t", s.address)
print("\n")
print("MOBILE NO.-", " ", s.mobile_no)
print("\n")
20
print("TOTAL BILL IS $", s.price)
elif EOFError:
if n == 0:
print("NO GUEST IN ROOM ", self.gettininfo)
else:
n=0
continue
except EOFError:
pass
f2.close()
root = Tk ()
'''This class configures and populates the toplevel window.
top is the toplevel containing window.'''
_bicolor = '#d9d9d9' # X11 color: 'gray85'
_fgcolor = '#000000' # X11 color: 'black'
_compcolor = '#d9d9d9' # X11 color: 'gray85'
_ana1color = '#d9d9d9' # X11 color: 'gray85'
_ana2color = '#d9d9d9' # X11 color: 'gray85'
font10 = "-family {Segoe UI} -size 17 -weight bold -slant " \
"roman -underline 0 -overstrike 0"
font11 = "-family {Segoe UI} -size 28 -weight bold -slant " \
"roman -underline 0 -overstrike 0"
font9 = "-family {Segoe UI} -size 23 -weight bold -slant roman" \
" -underline 0 -overstrike 0"
root.geometry("881x582+249+104")
root.title("Hotel Management System")
root.configure(background="#d9d9d9")
self.Frame1 = Frame(root)
self.Frame1.place(relx=0.02, rely=0.03, REL height=0.94, relwidth=0.94)
self.Frame1.configure(relief=GROOVE)
self.Frame1.configure(borderwidth="2")
self.Frame1.configure(relief=GROOVE)
self.Frame1.configure(background="#d9d9d9")
self.Frame1.configure(width=825)
21
self.Text1 = Text(self.Frame1)
self.Text1.place(relx=0.04, rely=0.46, relheight=0.48, relwidth=0.93)
self.Text1.configure(background="white")
self.Text1.configure(font="TkTextFont")
self.Text1.configure(foreground="black")
self.Text1.configure(highlightbackground="#d9d9d9")
self.Text1.configure(highlightcolor="black")
self.Text1.configure(insertbackground="black")
self.Text1.configure(selectbackground="#c4c4c4")
self.Text1.configure(selectforeground="black")
self.Text1.configure(width=764)
self.Text1.configure(wrap=WORD)
self.Label1 = Label(self.Frame1)
self.Label1.place(relx=0.12, rely=0.15, height=48, width=377)
self.Label1.configure(background="#d9d9d9")
self.Label1.configure(disabledforeground="#a3a3a3")
self.Label1.configure(font=font9)
self.Label1.configure(foreground="#000000")
self.Label1.configure(text='''ENTER THE ROOM NO. :''')
self.Entry1 = Entry(self.Frame1)
self.gather=StringVar()
self.Entry1.place(relx=0.65, rely=0.17,height=40, relwidth=0.1)
self.Entry1.configure(background="white")
self.Entry1.configure(disabledforeground="#a3a3a3")
self.Entry1.configure(font="TkFixedFont")
self.Entry1.configure(foreground="#000000")
self.Entry1.configure(insertbackground="black")
self.Entry1.configure(width=84)
self.Entry1.configure(textvariable=self.gather)
self.Button1 = Button(self.Frame1)
self.Button1.place(relx=0.39, rely=0.29, height=74, width=197)
self.Button1.configure(activebackground="#d9d9d9")
self.Button1.configure(activeforeground="#000000")
self.Button1.configure(background="#d9d9d9")
self.Button1.configure(disabledforeground="#a3a3a3")
22
self.Button1.configure(font=font10)
self.Button1.configure(foreground="#000000")
self.Button1.configure(highlightbackground="#d9d9d9")
self.Button1.configure(highlightcolor="black")
self.Button1.configure(pady="0")
self.Button1.configure(text='''SUBMIT''')
self.Button1.configure(width=197)
self.Button1.configure(command=gotinfo)
self.Message1 = Message(self.Frame1)
self.Message1.place(relx=0.22, rely=0.02, relheight=0.12, relwidth=0.56)
self.Message1.configure(background="#d9d9d9")
self.Message1.configure(font=font11)
self.Message1.configure(foreground="#000000")
self.Message1.configure(highlightbackground="#d9d9d9")
self.Message1.configure(highlightcolor="black")
self.Message1.configure(text='''GET INFO HERE ..!!''')
self.Message1.configure(width=460)
root.mainloop()
if __name__ == '__main__':
GETINFO=HOTEL_MANAGEMENT ()
import os
from subprocess import call
import sys
try:
from Tkinter import *
except ImportError:
from tkinter import *
try:
import ttk
23
py3 = False
except ImportError:
import tkinter.ttk as ttk
py3 = True
def click_checkinn():
call(["python", "checkin_gui_and_program.py"])
def click_list():
call(["python", "listgui.py"])
def click_checkout():
call(["python", "checkoutgui.py"])
def click_getinfo():
call(["python","getinfoui.py"])
class HOTEL_MANAGEMENT:
def __init__(self):
root = Tk()
_bgcolor = '#ffffff' # X11 color: 'gray85'
_fgcolor = '#000000' # X11 color: 'black'
_compcolor = '#ffffff' # X11 color: 'white'
_ana1color = '#ffffff' # X11 color: 'white'
_ana2color = '#ffffff' # X11 color: 'white'
font14 = "-family {Segoe UI} -size 15 -weight bold -slant " \
"roman -underline 0 -overstrike 0"
font16 = "-family {Swis721 BlkCn BT} -size 40 -weight bold " \
"-slant roman -underline 0 -overstrike 0"
font9 = "-family {Segoe UI} -size 9 -weight normal -slant " \
"roman -underline 0 -overstrike 0"
root.geometry("963x749+540+110")
root.title("Hotel Management System")
root.configure(highlightbackground="#d9d9d9")
root.configure(highlightcolor="black")
self.menubar = Menu(root,font=font9,bg=_bgcolor,fg=_fgcolor)
root.configure(menu = self.menubar)
24
self.Frame1 = Frame(root)
self.Frame1.place(relx=0.02, rely=0.03, relheight=0.94, relwidth=0.96)
self.Frame1.configure(relief=GROOVE)
self.Frame1.configure(borderwidth="2")
self.Frame1.configure(relief=GROOVE)
self.Frame1.configure(highlightbackground="#d9d9d9")
self.Frame1.configure(highlightcolor="black")
self.Frame1.configure(width=925)
self.Message6 = Message(self.Frame1)
self.Message6.place(relx=0.09, rely=0.01, relheight=0.15, relwidth=0.86)
self.Message6.configure(font=font16)
self.Message6.configure(foreground="#000000")
self.Message6.configure(highlightbackground="#d9d9d9")
self.Message6.configure(highlightcolor="black")
self.Message6.configure(text='''Hotel Management System''')
self.Message6.configure(width=791)
self.Button2 = Button(self.Frame1)
self.Button2.place(relx=0.18, rely=0.17, height=103, width=566)
self.Button2.configure(activebackground="#d9d9d9")
self.Button2.configure(activeforeground="#000000")
self.Button2.configure(disabledforeground="#bfbfbf")
self.Button2.configure(font=font14)
self.Button2.configure(foreground="#000000")
self.Button2.configure(highlightbackground="#d9d9d9")
self.Button2.configure(highlightcolor="black")
self.Button2.configure(pady="0")
self.Button2.configure(text='''1.CHECK IN''')
self.Button2.configure(width=566)
self.Button2.configure(command=click_checkinn)
self.Button3 = Button(self.Frame1)
self.Button3.place(relx=0.18, rely=0.33, height=93, width=566)
self.Button3.configure(activebackground="#d9d9d9")
self. Button3.configure(activeforeground="#000000")
self.Button3.configure(disabledforeground="#bfbfbf")
self.Button3.configure(font=font14)
self.Button3.configure(foreground="#000000")
25
self.Button3.configure(highlightbackground="#d9d9d9")
self.Button3.configure(highlightcolor="black")
self.Button3.configure(pady="0")
self.Button3.configure(text='''2.SHOW GUEST LIST''')
self.Button3.configure(width=566)
self.Button3.configure(command=click_list)
self.Button4 = Button(self.Frame1)
self.Button4.place(relx=0.18, rely=0.47, height=93, width=566)
self.Button4.configure(activebackground="#d9d9d9")
self.Button4.configure(activeforeground="#000000")
self.Button4.configure(disabledforeground="#bfbfbf")
self.Button4.configure(font=font14)
self.Button4.configure(foreground="#000000")
self.Button4.configure(highlightbackground="#d9d9d9")
self.Button4.configure(highlightcolor="black")
self.Button4.configure(pady="0")
self.Button4.configure(text='''3.CHECK OUT''')
self.Button4.configure(width=566)
self.Button4.configure(command=click_checkout)
self.Button5 = Button(self.Frame1)
self.Button5.place(relx=0.18, rely=0.61, height=103, width=566)
self.Button5.configure(activebackground="#d9d9d9")
self.Button5.configure(activeforeground="#000000")
self.Button5.configure(disabledforeground="#bfbfbf")
self.Button5.configure(font=font14)
self.Button5.configure(foreground="#000000")
self.Button5.configure(highlightbackground="#d9d9d9")
self.Button5.configure(highlightcolor="black")
self.Button5.configure(pady="0")
self.Button5.configure(text='''4.GET INFO OF ANY GUEST''')
self.Button5.configure(width=566)
self.Button5.configure(command=click_getinfo)
self.Button6 = Button(self.Frame1)
self.Button6.place(relx=0.18, rely=0.77, height=103, width=566)
self.Button6.configure(activebackground="#d9d9d9")
self.Button6.configure(activeforeground="#000000")
self.Button6.configure(disabledforeground="#bfbfbf")
26
self.Button6.configure(font=font14)
self.Button6.configure(foreground="#000000")
self.Button6.configure(highlightbackground="#d9d9d9")
self.Button6.configure(highlightcolor="black")
self.Button6.configure(pady="0")
self.Button6.configure(text='''5.EXIT''')
self.Button6.configure(width=566)
self.Button6.configure(command=quit)
root. mainloop()
if __name__ == '__main__':
GUUEST=HOTEL_MANAGEMENT()
try:
from Tkinter import *
except ImportError:
from tkinter import *
try:
import ttk
py3 = False
except ImportError:
import tkinter.ttk as ttk
py3 = True
fo1=open("receipt.txt","r")
list1=fo1.readlines()
del list1[1]
del list1[2]
del list1[3]
del list1[4]
del list1[5]
list1[0]=list1[0][:-1]
list1[1]=list1[1][:-1]
list1[2]=list1[2][:-1]
27
list1[3]=list1[3][:-1]
list1[4]=list1[4][:-1]
p='''
========== Hotel Management System ==========
NAME-%s
ADDRESS-%s
MOBILE NO.-%s
YOUR TOTAL BILL IS $-%s
YOUR ROOM NUMBER IS %s
'''%(list1[0],list1[1],list1[2],list1[4],list1[3])
class recipt:
def __init__(self):
root=Tk()
'''This class configures and populates the toplevel window.
top is the toplevel containing window.'''
_bgcolor = '#d9d9d9' # X11 color: 'gray85'
_fgcolor = '#000000' # X11 color: 'black'
_compcolor = '#d9d9d9' # X11 color: 'gray85'
_ana1color = '#d9d9d9' # X11 color: 'gray85'
_ana2color = '#d9d9d9' # X11 color: 'gray85'
root.geometry("800x800")
root.title("receipt")
root.configure(background="#d9d9d9")
self.Label1 = Label(root)
28
self.Label1.configure(background="#d9d9d9")
self.Label1.place(relx=0, rely=0, height=800, width=800)
self.Label1.configure(disabledforeground="#a3a3a3")
self.Label1.configure(foreground="#000000")
self.Label1.configure(text=p)
self.Label1.configure(anchor=N)
self.Label1.configure(wraplength=1000)
self.Label1.configure(justify =LEFT)
self.Label1.configure(width=582)
root.mainloop()
if __name__ == '__main__':
recipt1=recipt()
29
6. OUTPUT SCREENSHOTS
30
Screenshot 1: Check in of a customer
31
Screenshot 3: Allotted room and details of new customer
32
7. PROBLEM STATEMENT
The old manual system was suffering from a series of drawback. Since whole of the
system was to be maintained with hands the process of keeping, maintaining and retrieving
the information was very tedious and lengthy. The records were never used to be a systematic
order there used to be lots of difficulties in associating any particular transaction with a
particular context. If any information was to be found it was required to go through the
different registers, documents there would never exit anythinglike report generation. There
would always be unnecessary consumption of time while entering records and retrieving
records. Once the records were entered it was very difficult to update these records.
FOLLOWING POINTS SHOULD BE CONSIDERED: - Details of the information needed
for each document and report. - The required frequency and distribution for each document. -
Probable sources of information for each document and report.
Disadvantages:
The booking process usually requires a customer identity which the system cannot detect. It
requires a reliable internet connection.
Applications:
This system can be applied in hotels. It can also be implemented in resorts.
33
8. CONCLUSION
34
9.REFERENCES
Books referred:
1. Dr. R. Nageswara Rao, “Core Python Programming”, Dreamtech Press
2. Beginning Python: Using Python 2.6 and Python 3.1. James Payne, Wrox
3. Anurag Gupta, G. P. Biswas, “Python Programming”, McGraw-Hill4 E.
Balagurusamy,
4. “Introduction to computing and problem-solving using python”, McGraw Hill
EducationLearn Python the Hard Way
5. 3rd Edition, Zed Shaw's Hard Way Series.Laura Cassell, Alan Gauld, “Python
Projects”, Wrox Publication
Website referred:
1. 1."The Python Tutorial”, http://docs.python.org/release/3.0.1/tutorial/
2. Beginning Perl, https://www.perl.org/books/beginning-perl/
3. http://spoken-tutorial.org
4. https://starcertification.org/Certifications/Certificate/python
35