Hotel Management System

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 36

PM SHRI KENDRIYA

VIDYALAYA NO. 2
ARMY VADODARA

COMPUTER SCIENCE
PROJECT 2024-25
TOPIC: HOTEL
MANAGEMENT SYSTEM

BY:
KETAN PANDEY
ANAMIKA YADAV
CERTIFICATE
This is to certify that students Ketan
pandey,Anamika yadav of class XII A of PM SHRI
KENDRIYA VIDYALAYA No.2 ARMY
VADODARA have completed the project on
hotel management system under guidance of
Mr. Ashish Kumar Chauradia and Mrs. Rita
Indrajeet Singh, principal during the academic
year 2024-25 for AISSC Computer Science
Practical Examination 2024-25.

External Examiner
Internal Examiner

Principal
Mrs. Rita Indrajeet Singh
ACKNOWLEDGEMEN
T
We would like to express our special thanks to
our school ‘PM SHRI KENDRIYA VIDYALAYA
NO.2 ARMY VADODARA’, principal Mrs. ‘RITA
INDRAJEET SINGH’, to the management team
of our school who gave us the opportunity to do
this project on the topic ‘HOTEL MANAGEMENT
SYSTEM’, which also helped us in doing a lot of
research and we leant about so many new things.
Secondly, we would also like to thank our parents
and friends who helped us a lot in finishing this
project within the limited time.

KETAN PANDEY
ANAMIKA YADAV
XII-A
INTRODUCTION
AND OBJECTIVES
The purpose of the software project is to
develop the Management Information System
(MIS) and to automate the record keeping of
customers, deposit , withdraw and other
transactions with a view to enhance the
decision making of the functionaries.
A MIS mainly consists of a computerized
database, a collection of inter-related tables
for a particular subject or purpose like
reference of acc_id in all tables , capable to
produce different reports relevant to the
user. An application program is tied with the
database for easy access and interface to the
database. Using Application program(Python)
or front-end, we can store, retrieve and
manage all information in proper way.
This software, being simple in design and
working, does not require much of training to
users, and can be used as a powerful tool for
automating a HOTEL MANAGEMENT SYSTEM.
During coding and design of the software
Project, Python IDLE, as a powerful front-end
tool is used for getting Graphical User
Interface (GUI) based integrated platform and
coding simplicity. As a back-end a powerful,
open source RDBMS, MySQL is used as per
requirement of the CBSE curriculum of
Computer Science Course(083).

In its current scope, the software enables


user to retrieve and update the information
from centralized database designed with
MySQL . This software does not require much
training time of the users due to limited
functionality and simplicity.

The proposed system should maintain all the


records and transactions, and should
generate the required reports and
information when required.
To provide graphical and user-friendly
interface to interact with a centralized
database based on client-server architecture.
To identify the critical operation procedure
and possibilities of simplification using
modern IT tools and practices.

SOFTWARE
DEVELOPMENT LIFE
CYCLE
The system development life cycle is a project
management technique that divides complex
projects into a smaller, more easily managed
segments or phases. Segmenting projects allow
managers to verify the successful completion of
project phases before allocating resources to
subsequent phases. Software development
projects typically include planning, creating,
developing, testing and maintenance. However,
the phases may be divided differently depending
on the organization.

Key Stages of SDLC:


 Planning
 Analysis
 Design
 Implementation (Coding)
 Testing
 Deployment
 Maintenance
1. INITIAL INVESTIGATION:
The objective of this initial investigation is to
assess the feasibility and requirements for
developing a hotel management system. This
system aims to enhance user experience,
improve data management and provides a
fulfilling experience to the hotel administration.
Currently, hotels may face many difficulties.
These difficulties can be in attending a large
amount of customers, to store records of each
customer and their transaction records, and
regarding user experience. These inefficiencies
can lead to poor customer service, reduced
customer satisfaction, and increased
operational costs.

2. FEASIBILITY STUDY:
This feasibility study examines the viability of
developing an hotel management system,
focusing on three major perspectives:
technical, economic, and operational study
feasibility.

 Technical Feasibility:
In technically system should be assessed
organizations ability is possible to develop
proposed system. Employees performance to the
system should be consider. technically
understanding the possible target hardware,
software and operating environments are used.

 Economic Feasibility:
It studies whether proposed system will be
feasible financially. in addition, it studies cost
of hardware required to function in system,
operating system needed.

 Economic Feasibility:
Its purpose is to gain an understanding of
degree to which proposed system will likely
solve the organization problems and how much
advantage the project will generate.
Operationally this project will w not affect
dismissal of any kind of hotel staff. This can
increase efficiency and speed of operations if
the employees manage smooth going of
software and efficiently used.

SYSTEM ANALYSIS:
Filtering of information refers to the process of
going through collected data to extract
relevant and useful data. This includes
identifying and focusing on information that is
narrowed down to the objective of the analysis
disregarding irrelevant and unnecessary data.
The aim of filtering data is to make decision-
making less complex and difficult by making it
more accurate and easy to call.

Identifying Key Data Points:


Pinpointing specific pieces of data that are
critical for understanding the current system's
performance and the requirements for the new
system.
Eliminating Irrelevant Data:
Removing data that does not help in the
analysis or decision-making process. This helps
in reducing noise and focusing only on useful
information.
Categorizing Data:
Organizing data into meaningful categories
such as operational efficiency, financial impact,
technical capabilities, and user satisfaction.
This categorization helps in systematically
analysing different aspects of the system.
Prioritizing Information:
Highlighting the most important data points
that will drive decisions. For instance,
identifying the biggest pain points for staff and
members or the areas with the highest
potential for cost savings and revenue growth.
Synthesizing Insights:
Combining the filtered information to draw
comprehensive insights that can inform the
design and implementation of the new system.
This involves understanding the relationships
between different data points and how they
impact overall system performance.
By filtering information, we ensure that the
analysis is meaningful and relevant in making
of the management system and the decisions
regarding the management system are more
effective and manageable.
Target Audience of hotel
management system:
The target audience of our management
system are various hotels that are in need of a
comprehensive and user friendly management
system to improve their efficiency and work
experience. It will also be designed to keep the
needs of users in mind so that the Portal is
easy to use for everyone

3. DESIGN:
5.1 Database Design:
An important aspect of system design is the
design of data storage structure. To begin with a
logical model of data structure is developed first.
A database is a container object which contains
tables, queries, reports and data validation
policies enforcement rules or contraints etc. A
logical data often represented as a records are
kept in different tables after reducing anomalies
and redundancies. The goodness of data base
design lies in the table structure and its
relationship.
This software project maintains a database
named class12 which contains the following
tables:
Table Design:
The database of HOTEL MANAGEMENT SYSTEM
contains 4 tables in database Library. The tables
are normalized to minimize the redundancies of
data and enforcing the validation rules of the
organization. Most of the tables are designed to
store master records.

Table and database structure:


5.
CODING AND TESTING:
PYTHON CODE:

import os
import platform
import mysql.connector
import pandas as pd
import datetime
global z
mydb = mysql.connector.connect(user='root',
password='h', host='localhost', database='hotel')
mycursor=mydb.cursor()
def registercust():
L=[]
name=input("ENTER NAME:")
L.append(name)
addr=input("ENTER ADDRESS:")
L.append(addr)
indate=input("ENTER CHECK IN DATE:")
L.append(indate)
outdate=input("ENTER CHECK OUT DATE:")
L.append(outdate)
cust=(L)
sql="insert into
custdata(name,addr,indate,outdate)values(%s,
%s,%s,%s)"
mycursor.execute(sql,cust)
mydb.commit()

def roomtypeview():
print("Do YOY WANT TO SEE ROOM TYPE
AVAILABLE : ENTER 1 FOR YES :")
ch=int(input("ENTER YOUR CHOICE:"))
if ch==1:
sql="select * from roomtype"
mycursor.execute(sql)
rows=mycursor.fetchall()
for x in rows:
print(x)

def roomrent():
print ("WE HAVE THE FOLLOWING ROOMS FOR
YOU:-")
print ("1. TYPE A---->RS 1000 PN\-")
print ("2. TYPE B---->RS 2000 PN\-")
print ("3. TYPE C---->RS 3000 PN\-")
print ("4. TYPE D---->RS 4000 PN\-")
x=int(input("ENTER YOUR CHOICE PLEASE->"))
n=int(input("FOR HOW MANY NIGHTS DID YOU
STAY:"))
if(x==1):
print ("YOU HAVE OPTED ROOM TYPE A")
s=1000*n
elif (x==2):
print ("YOU HAVE OPTED ROOM TYPE B")
s=2000*n
elif (x==3):
print ("YOU HAVE OPTED ROOM TYPE C")
s=3000*n
elif (x==4):
print ("YOU HAVE OPTED ROOM TYPE D")
s=4000*n
else:
print ("PLEASE CHOOSE A ROOM")
print ("your room rent is =",s,"\n")
def restaurentmenuview():
print("DO YOY WANT TO SEE MEBU AVAILABLE :
ENTER 1 FOR YES :")
ch=int(input("ENTER YOUR CHOICE:"))
if ch==1:
sql="select * from restaurent"
mycursor.execute(sql)
rows=mycursor.fetchall()
for x in rows:
print(x)

def orderitem():
global s
print("DO YOY WANT TO SEE MEBU AVAILABLE :
ENTER 1 FOR YES :")
ch=int(input("ENTER YOUR CHOICE:"))
if ch==1:
sql="select * from restaurent"
mycursor.execute(sql)
rows=mycursor.fetchall()
for x in rows:
print(x)
print("DO YOU WANT TO PURCHASE FROM ABOVE
LIST:ENTER YOUR CHOICE:")
d=int(input("ENTER YOUR CHOICE:"))
if(d==1):
print("YOU HAVE ORDERED TEA")
a=int(input("ENTER QUANTITY"))
s=10*a
print("YOUR AMOUNT FOR TEA IS :",s,"\n")
elif (d==2):
print("YOU HAVE ORDERED COFFEE")
a=int(input("ENTER QUANTITY"))
s=10*a
print("YOUR AMOUNT FOR COFFEE IS :",s,"\n")
elif(d==3):
print("YOU HAVE ORDERED COLDDRINK")
a=int(input("ENTER QUANTITY"))
s=20*a
print("YOUR AMOUNT FOR COLDDRINK IS :",s,"\
n")
elif(d==4):
print("YOU HAVE ORDERED SAMOSA")
a=int(input("ENTER QUANTITY"))
s=10*a
print("your amount fopr samosa is :",s,"\n")
elif(d==5):
print("you have ordered sandwich")
a=int(input("enter quantity"))
s=50*a
print("your amount fopr sandwich is :",s,"\n")
elif(d==6):
print("you have ordered dhokla")
a=int(input("enter quantity"))
s=30*a
print("your amount for dhokla is :",s,"\n")
elif(d==7):
print("YOU HAVE ORDERED KACHORI")
a=int(input("ENTER QUANTITY"))
s=10*a
print("YOUR AMOUNT FOR KACHORI is :",s,"\n")
elif(d==8):
print("YOU HAVE ORDERED MILK")
a=int(input("ENTER QUANTITY"))
s=20*a
print("YOUR AMOUNT FOR MILK IS :",s,"\n")
elif(d==9):
print("you have ordered noodles")
a=int(input("ENTER QUANTITY"))
s=50*a
print("YOUR AMOUNT FOR NOODLES IS :",s,"\n")
elif(d==10):
print("YOU HAVE ORDERED PASTA")
a=int(input("ENTER QUANTITY"))
s=50*a
print("YOUR AMOUNT FOR PASTA IS :",s,"\n")
else:
print("PLEASE ENTER YOUR CHOICE FROM THE
MENU")

def laundarybill():
global z
print("Do yoy want to see rate for laundary :
Enter 1 for yes :")
ch=int(input("enter your choice:"))
if ch==1:
sql="select * from laundary"
mycursor.execute(sql)
rows=mycursor.fetchall()
for x in rows:
print(x)
y=int(input("ENTER YOUR NUMBER OF CLOTHES-
>"))
z=y*10
print("YOUR LAUNDARY BILL:",z,"\n")
return z

def lb():
print(z)

def res():
print(s)
def viewbill():
a=input("ENTER CUSTOMER NAME:")
print("CUSTOMER NAME :",a,"\n")
print("LAUNDAREY BILL:")
print(lb)
print("RESTAURENT BILL:")
print(res)

def Menuset():
print("ENTER 1: TO ENTER CUSTOMER DATA")
print("ENTER 2 : TO VIEW ROOMTYPE")
print("ENTER 3 : FOR CALCULATING ROOM BILL")
print("ENTER 4 : FOR VIEWING RESTAURENT
MENU")
print("ENTER 5 : FOR RESTAURENT BILL")
print("ENTER 6 :FOR LAUNDARY BILL")
print("ENTER 7 : FOR COMPLETE BILL")
print("ENTER 8 : FOR EXIT:")
try:
userinput=int(input("PLEASE SELECT AN ABOVE
OPTION:"))
except ValueError:
exit("\n HI THATS NOT A NUMBER")
userinput=int(input("ENTER YOUR CHOICE"))
if(userinput==1):
registercust()
elif(userinput==2):
roomtypeview()
elif(userinput==3):
roomrent()
elif(userinput==4):
restaurentmenuview()
elif(userinput==5):
orderitem()
elif(userinput==6):
laundarybill()
elif(userinput==7):
viewbill()
elif(userinput==8):
quit()
else:
print("ENTER CORRECT CHOICE")
Menuset()

def runagain():
runagn=input("\n WANT TO RUN AGAIN y/n:")
while(runagn.lower()=='y'):
if(platform.system()=="windows"):
print(os.system('cls'))
else:
print(os.system('clear'))
Menuset()
runagn=input("\n WANT TO RUN AGAIN Y/N:")
runagain()

OUTPUT:
1 enter customer data
2 view roomtype
3 calculating room bill
4 menu for resturant
5 resturant bill
6 laundry bill
DEBUGGING AND
IMPLEMENTATION
For debugging, some changes were made to the
original code so that it can run on all types of
devices without any issues. Also a comment was
added in the Python program as an indication for
the users where to make changes in the original
program before running in their respective
devices.
PRE IMPLEMENTATION:
Before implementation of hotel management
system managing all the tasks was quite difficult
as everything was manual. Chances of errors
were quite high and there was wastage of
precious resources. Paper was wasted for bill

POST IMPLEMENTATION:
After the implementation of hotel management
system, the ease in handling large amounts of
data is one of the key features. The accuracy in
storage of data related to the products, reduced
redundancy, and the ability to check the contents
present in the database anytime is also pleasing.
MAINTAINENCE
AND LIMITATIONS

The program is built in the current generation


versions of Python and MySQL. However, it will
need maintenance every now and then so that its
functionality does not get affected.
First, regular database backups should be
scheduled to prevent data loss, ensuring that the
database remains intact in case of failures. Input
validation is crucial to prevent errors and security
vulnerabilities, such as SQL injection attacks, so
all user inputs should be thoroughly checked
before processing.
It’s also important to regularly update the
software dependencies, including the MySQL
connector and any other libraries used, to protect
against security vulnerabilities. Lastly,
conducting periodic reviews and testing of the
code can help identify any potential bugs or
performance issues, ensuring that the system
continues to operate smoothly as it scales.
It also has some limitations like:
The program still relies heavily on the data
inputted manually. So if there is an error while
inputting the data the management system may
not work as intended or may generate errors.
To use the system effectively the user must have
decent knowledge of computer and should know
how to properly use a computer. The user should
also have basic knowledge about Python and
MySQL.
The user should also have a Python interpreter
and MySQL installed in their device.
The data stored in the computer can easily be
altered if the computer is hacked or if any other
unreliable person has the user ID and password
required to make changes in the table named
“main_table”.
It lacks some features which are difficult to
implement but if added, would enhance the
overall experience while using the management
system.
BIBLIOGRAPHY
https://kvcoders.in/
https://pythonclassroomdiary.wordpress.com/wp-
content/uploads/2020/01/hotel-management-
report.pdf
https://www.mysql.com
https://www.python.org
https://www.geeksforgeeks.org/
Class 12 Sumita Arora’s Computer Science with
Python

You might also like