0% found this document useful (0 votes)
25 views30 pages

CS Project 2024 25

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views30 pages

CS Project 2024 25

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Computer science project

2024-2025
Topic: hotel management system
Submitted by;
PAVITHRAN.M
Kavin.P
Mukesh aravind.S
Contents
S.NO
Topics
1 Abstract

2 Python Codes

3 MySQL Database

4 Output

5 References
Abstract
A hotel is a commercial establishment that provides
lodging, accommodation, and other services to travellers
or tourists. Hotels typically offer a range of rooms or suites
with varying levels of amenities and services. These
establishments can vary widely in size and style, from
small boutique hotels to large luxury resorts.

The Hotel Management System (HMS) is a comprehensive


software solution designed to streamline and optimize the
operations of hotels and hospitality establishments. This
integrated system combines various modules to efficiently
manage different aspects of hotel functions, from
reservation and guest services to billing and inventory
management.
PYTHON
CODES
import mysql.connector from
tabulate import tabulate
import random
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()

#all details for admin #to


show employee details def
emp_details():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
q="select * from
employees" y.execute(q) r
= y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(r, headers=columns, tablefmt="fancy_grid"))

#to show customer details Defcustomdet():


a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")

y=a.cursor()
x="select * from booking"
y.execute(x) r =
y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(r, headers=columns, tablefmt="fancy_grid"))
a.commit()

#to show room details(all rooms,vacant rooms,booked rooms) def


room_details():
while True:
print("**********ROOM DETAILS**********")
print("1.Show Rooms") print("2.Rooms Vacant")
print("3.Rooms Booked")
print("FOR EXIT ENTER ANY NO.: ")
ch=int(input("Enter your choice: ")) if
ch==1:
show_rooms()
elif ch==2:
room_vacant()
elif ch==3:
rooms_booked()

else:
print("INVALID INPUT")
break
#to show all rooms
def showrooms():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
y.execute("select room_type,prices,count(*) from rooms group by room_type,prices;")
r = y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(r, headers=columns, tablefmt="fancy_grid"))

#to show room vacant def


room_vacant():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor() av="Available"
z="select * from rooms where Status ='{}'".format(av)
y.execute(z)
r = y.fetchall()

columns = [i[0] for i in y.description]


print(tabulate(r, headers=columns, tablefmt="fancy_grid"))

#to show booked rooms def rooms_booked():


a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor() bk="Booked"
x="select * from rooms where Status
='{}'".format(bk) y.execute(x) r = y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(r, headers=columns, tablefmt="fancy_grid"))

#to show restaurant details def


restaurant_details():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
z="select*from orders"
y.execute(z) r =
y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(r, headers=columns, tablefmt="fancy_grid"))
#to show all feedback def fedback():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
x="select * from
fdback" y.execute(x) x
= y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(x, headers=columns, tablefmt="fancy_grid"))

#restaurant def
restaurant():
#VIEW MENU
def menu():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_su nset")
y=a.cursor()
b="select * from menu".format()
y.execute(b) menu=y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(menu, headers=columns, tablefmt="fancy_grid"))
if len(menu)>0:
print("Available")
a.commit()

yn=int(input("Do uou want to order an item ?type(1 for yes/2 for back to main
page):")) if yn ==1: b_order() elif yn==2:
print("THANK YOU")
print("YOU HAVE BEEN REDIRECTED TO MAIN PAGE")
customer_slot()

#BOOKING ORDER def


b_order():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")

y=a.cursor()
Id=int(input("ENTER DISH NO.: "))
Quantity=int(input("ENTER QUANTITY: "))
Name=input("ENTER YOUR NAME: ")
Mobile_No=int(input("Enter mobilr no."))
Address=input("Enter Address:")
f=("select * from menu where
Dish_ID={}").format(Id) y.execute(f)
x=y.fetchall() itn=x[0][1] ip=x[0][3]
tp=ip*Quantity
ins="insert into
orders(ID,Name,Quantity,Item_Price,Total_Price,Mobile_No,Adress)values({},'{}',{},{},{},{},'{}')".format(Id,
itn,Quantity,ip,tp,Mobile_No,Address) y.execute(ins)
print("THANKS FOR THE ORDER","\n\n","YOUR ORDER HAS BEEN
ORDERED SUCCESSFULLY","\n\n")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE")
a.commit()

#VIEW ORDER def


vorders():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
m=int(input("Enter your number :"))
n="select * from orders where Mobile_No={} ".format(m)
print("\n","YOUR RECENT ORDERS","\n")
y.execute(n)
o=y.fetchall()
columns = [i[0] for i in y.description] print(tabulate(o,
headers=columns, tablefmt="fancy_grid")) for i in o:
p="select * from menu,orders where Mobile_No={} and menu.Dish_ID=orders.ID".format(m)
y.execute(p) q=y.fetchall() a.commit()

#cancel order
def corder():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
x=int(input("enter your number:"))
s="delete from orders where Mobile_No={}".format(x)
y.execute(s)
print("\n\n","YOUR ORDER HAS BEEN CANCELLED")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE","\n\n")
a.commit()

#feedback
def fdback():
a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
fdn=input("Enter your name:")
print("Write something about us...")
fdi=input()
x="insert into fdback values('{}','{}')".format(fdn,fdi)
y.execute(x) print("\n\n")
print("THANKYOU FOR YOUR FEEDBACK")
print("\n")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE")
a.commit()
#welcome def
start1():
while True:
print("\n")
print("1. VIEW MENU")
print("2. VIEW YOUR ORDERS")
print("3. CANCEL ORDER")
print("4. FEEDBACK")
print("5. EXIT")
ch1=int(input(" enter your choice:"))
if ch1==1: menu() elif
ch1==2: vorders() elif
ch1==3: corder( ) elif
ch1==4: fdback() elif
ch1==5: break

else:
print("\n","INVALID CHOICE"," \n" ,"TRY AGAIN."," \n")

start1()

#booking rooms section


# Create the table if not exists
create_table = "CREATE TABLE IF NOT EXISTS booking (Booking_ID int(10) PRIMARY
KEY,Room_Type varchar(20) not null,Guest_Name VARCHAR(255),Phone_number varchar(15) not null,
Room_Number int(5) not null, Check_In_Date DATE, Check_Out_Date DATE)" y.execute(create_table) def
booking_id(): return random.randint(10000, 99999)
#to book room def book_room(guest_name, ph_no,ro_no, check_in_date,
check_out_date, td1, pr): try:
a = mysql.connector.connect(host="localhost", user="root", password="admin",
database="hotel_sunset")
y = a.cursor()
b_id = booking_id() #
Fetch available rooms
c = "SELECT * FROM rooms WHERE Status = 'Available' and room_no={}".format(ro_no)
y.execute(c) d = y.fetchall() if not d:
print("No available rooms.")
return None
e = d[0]
# Update room status to 'booked'
update_query = "UPDATE rooms SET Status = 'Booked' WHERE room_no = {}".format(ro_no)
y.execute(update_query)
# Insert booking record
ins = "INSERT INTO booking (Booking_ID, Room_Type, Guest_Name, Phone_number,
Room_Number, Check_In_Date, Check_Out_Date, Total_Days, Price)VALUES ({}, '{}', '{}', {}, {}, '{}', '{}',
{}, '{}')".format(b_id, e[1], guest_name, ph_no, ro_no, check_in_date, check_out_date, td1, pr)
y.execute(ins) print("Room booked successfully! Room Number: ", ro_no) return b_id except:
print("Error")
finally:
a.commit()

#to book delux room def book_delux_room(): a =


mysql.connector.connect(host="localhost", user="root", password="admin",
database="hotel_sunset") y = a.cursor() try:
z=random.randint(101, 111)
ro_no = z
g_name = input("Enter guest name: ") ph_no =
input("Enter your phone number: ") in_date =
input("Enter check-in date (YYYY-MM-DD): ") out_date =
input("Enter check-out date (YYYY-MM-DD):")
total_days_query = "SELECT DATEDIFF('{}', '{}')".format(out_date, in_date)
y.execute(total_days_query)
td1 = y.fetchone()[0]
pr = 15000 * td1
booking_id = book_room(g_name, ph_no,ro_no, in_date, out_date, td1, pr)
# Display booking history for the specific Booking_ID
if booking_id is not None:
q = "SELECT * FROM booking WHERE Booking_ID =
{}".format(booking_id) y.execute(q) print("\nBooking History for
Booking_ID {}: ".format(booking_id)) x = y.fetchall()
columns = [i[0] for i in y.description] print(tabulate(x,
headers=columns, tablefmt="fancy_grid")) except :
print("Error")

#to book double room def book_double_room(): a =


mysql.connector.connect(host="localhost", user="root", password="admin",
database="hotel_sunset") y = a.cursor() try:
z=random.randint(201,211)
ro_no = z
g_name = input("Enter guest name: ") ph_no =
input("Enter your phone number: ") in_date =
input("Enter check-in date (YYYY-MM-DD): ") out_date =
input("Enter check-out date (YYYY-MM-DD):")
total_days_query = "SELECT DATEDIFF('{}', '{}')".format(out_date, in_date)
y.execute(total_days_query)
td1 = y.fetchone()[0]
pr = 25000 * td1
booking_id = book_room(g_name, ph_no,ro_no, in_date, out_date, td1, pr)
# Display booking history for the specific Booking_ID
if booking_id is not None:
q = "SELECT * FROM booking WHERE Booking_ID =
{}".format(booking_id) y.execute(q) print("\nBooking History for
Booking_ID {}: ".format(booking_id)) x = y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(x, headers=columns, tablefmt="fancy_grid"))

except :
print("Error")

#to book king room def


book_king_room():
a = mysql.connector.connect(host="localhost", user="root", password="admin",
database="hotel_sunset") y = a.cursor() try:
z=random.randint(301,311)
ro_no = z
g_name = input("Enter guest name: ") ph_no =
input("Enter your phone number: ") in_date =
input("Enter check-in date (YYYY-MM-DD): ") out_date =
input("Enter check-out date (YYYY-MM-DD):")
total_days_query = "SELECT DATEDIFF('{}', '{}')".format(out_date, in_date)
y.execute(total_days_query)
td1 = y.fetchone()[0]
pr = 40000 * td1
booking_id = book_room(g_name, ph_no,ro_no, in_date, out_date, td1, pr)

# Display booking history for the specific Booking_ID


if booking_id is not None:
q = "SELECT * FROM booking WHERE Booking_ID =
{}".format(booking_id) y.execute(q) print("\nBooking History for
Booking_ID {}: ".format(booking_id)) x = y.fetchall()
columns = [i[0] for i in y.description] print(tabulate(x,
headers=columns, tablefmt="fancy_grid")) except :
print("Error")

#to book balcony rooms def book_balcony_room(): a =


mysql.connector.connect(host="localhost", user="root", password="admin",
database="hotel_sunset") y = a.cursor()
try:
z=random.randint(401,411)
ro_no = z
g_name = input("Enter guest name: ")
ph_no = input("Enter your phone number: ")

in_date = input("Enter check-in date (YYYY-MM-DD): ")


out_date = input("Enter check-out date (YYYY-MM-DD):")
total_days_query = "SELECT DATEDIFF('{}', '{}')".format(out_date, in_date)
y.execute(total_days_query)
td1 = y.fetchone()[0]
pr = 45000 * td1
booking_id = book_room(g_name, ph_no,ro_no, in_date, out_date, td1, pr)
# Display booking history for the specific Booking_ID
if booking_id is not None:
q = "SELECT * FROM booking WHERE Booking_ID =
{}".format(booking_id) y.execute(q) print("\nBooking History for
Booking_ID {}: ".format(booking_id)) x = y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(x, headers=columns, tablefmt="fancy_grid"))
except : print("Error")

#to book cavana room


def book_cavana():
a = mysql.connector.connect(host="localhost", user="root", password="admin",
database="hotel_sunset") y = a.cursor() try:
z=random.randint(501,506)
ro_no = z
g_name = input("Enter guest name: ")
ph_no = input("Enter your phone number: ")
in_date = input("Enter check-in date (YYYY-MM-DD): ")
out_date = input("Enter check-out date (YYYY-MM-DD):")
total_days_query = "SELECT DATEDIFF('{}', '{}')".format(out_date, in_date)
y.execute(total_days_query)
td1 = y.fetchone()[0]
pr = 90000 * td1
booking_id = book_room(g_name, ph_no,ro_no, in_date, out_date, td1, pr)
# Display booking history for the specific Booking_ID
if booking_id is not None:
q = "SELECT * FROM booking WHERE

Booking_ID = {}".format(booking_id)
y.execute(q)
print("\nBooking History for Booking_ID {}: ".format(booking_id))
x = y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(x, headers=columns, tablefmt="fancy_grid"))
except :
print("Error")

#user choice
def bookings():
try:
a = mysql.connector.connect(host="localhost", user="root", password="admin",
database="hotel_sunset")
y = a.cursor()
z="select * from
book_rooms" y.execute(z)
x = y.fetchall()
columns = [i[0] for i in y.description]
print(tabulate(x, headers=columns, tablefmt="fancy_grid"))
roomchoice = int(input("Enter Your Option : ")) if
roomchoice == 1:

book_delux_room()
elif roomchoice == 2:
book_double_room() elif
roomchoice == 3:
book_king_room() elif
roomchoice == 4:
book_balcony_room()
elif roomchoice == 5:
book_cavana()
else:
print("Sorry, May Be You Are Giving Me Wrong Input, Please Try Again !!! ")
except:
print("Error")
finally:
y.close()
a.close()

#gaming section
def gaming():
print("1. Table Tennis -----> 15000 Rs./HR")
print("2. Bowling -----> 10000 Rs./HR") print("3.
Snooker -----> 25000Rs./HR") print("4. VR World
Gaming -----> 40000 Rs./HR") print("5. Video Games
-----> 35000 Rs./HR") print("6. Swimming Pool
Games -----> 50000Rs./HR") print("7. Exit")
game=int(input("Enter What Game You Want To Play : "))
hour=int(input("Enter No Of Hours You Want To Play : "))
if game==1:
print("YOU HAVE SELECTED TO PLAY : Table Tennis")
gamingbill = hour * 15000
price=print("Total price = ",gamingbill,"Rs.")
elif game==2:
print("YOU HAVE SELECTED TO PLAY : Bowling")
gamingbill = hour * 10000
price=print("Total price = ",gamingbill,"Rs.")
elif game==3:
print("YOU HAVE SELECTED TO PLAY : Snooker")
gamingbill = hour * 25000 price=print("Total price =
",gamingbill,"Rs.") elif game==4:
print("YOU HAVE SELECTED TO PLAY : VR World Gaming")
gamingbill = hour * 40000 price=print("Total price =
",gamingbill,"Rs.") elif game==5:
print("YOU HAVE SELECTED TO PLAY :Video Games")
gamingbill = hour * 35000
price=print("Total price = ",gamingbill,"Rs.")
elif game ==6:
print("YOU HAVE SELECTED TO PLAY : Swimming Pool Games")
gamingbill = hour *50000 price=print("Total price =
",gamingbill,"Rs.") else:
print("Sorry ,May Be You Are Giving Me Wrong Input, Please Try Again !!! ")

#feedback to be asked by user def feedback():


a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor()
fdn=input("Enter your name:")
print("Write something about us...")
fdi=input()
x="insert into fdback
values('{}','{}')".format(fdn,fdi) y.execute(x)
print("\n\n")
print("THANKYOU FOR YOUR FEEDBACK")
print("\n")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE")
a.commit()

#for admin def


admin_slot():
while True:
print("*********WELCOME ADMIN*********")
print("1.Employees Details") print("2.Coustomer
Details") print("3.Room Details")
print("4.Feedback") print("5.Restaurant Details")
print("6.Exit")
a=int(input("enter your choice"))
if a==1:
emp_details()
elif a==2:
customdet()
elif a==3:
room_details()
elif a==4:
fedback()
elif a==5:
restaurant_details()
elif a==6: break
else:
print("\n\n","INVALID CHOICE","\n","TRY AGAIN")
#for customer def
customer_slot():
while True:
print("*************NAMASTE*************")
print("1.RESTAURANT") print("2.BOOK
ROOMS") print("3.GAMING")
print("4.FEEDBACK")
print("5.EXIT")
a=int(input("enter your choice"))
if a==1:
restaurant()
elif a==2:
bookings()
elif a==3:
gaming() elif
a==4:
feedback()
elif a==5:
break

else:
print("\n\n","INVALID CHOICE")

#first interface while


True:
print("*********WELCOME TO HOTEL SUNSET*********")
print("1.admin") print("2.customer") print("3.exit")
a=int(input("who are you"))
if a==1:
def admin_login(a, username, password):

a=mysql.connector.connect(host="localhost",user="root",password="admin",database="hotel_sunset")
y=a.cursor() try:

# Check if the provided username and password match an admin record


query = "SELECT * FROM users WHERE username = %s AND password = %s"
y.execute(query, (username, password)) admin_result = y.fetchone() if
admin_result:
print("Login successful. Welcome, Admin!")
else:
print("Invalid username or password. Please try again.")
except Exception as e: print(f"Error: {e}") a.close()
admin_username = input("Enter Admin Username: ")
admin_password = input("Enter Admin Password: ")
admin_login(a, admin_username, admin_password)
admin_slot() elif a==2:
customer_slot()
elif a==3:
break
MYSQL
DATABASE
All tables used:-

Describing all tables:-


1. Booking:

2. Employees:
3. Feedback:

4. Menu:

5. Orders:
6. Rooms:

7. Room Details:

8. Users:
OUTPUTS
 First interface with admin login:

 Customer login:

 From restaurant view menu:


 Order an item:

 View order:

 Canceling an order:

 Feedback of restaurant:
 Book a room:

 Gaming:

 Feedback for hotel:


 Viewing employee details:

 Viewing customer details:

 Viewing room details:


 Showing vacant rooms:

 Showing booked rooms:


 Viewing feedbacks from both hotel and restaurant:

 Viewing restaurant details:


References
 Class 12 CS Sumita Arora book
 Google
 MySQL
 Python IDLE
THANK
YOU

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy