PM SHRI
KENDRIYA
VIDYALAYA
BARRACKPORE (ARMY)
COMPUTER SCIENCE Project
Session : 2025-2026
A Project Report On
“RESTAURANT MANAGEMENT SYSTEM”
Name :- MAHABIR PRASAD GUPTA
Class:-XIIth –‘A’
Roll no. (cbse) :-
Under the Guidance of
Mr. Mangal Rai sir
Certificate
This is to certify that MAHABIR PRASAD GUPTA
student of class XIIth -‘A’ has successfully prepared the
report on the
Project entitled “RESTAURANT
MANAGEMENT SYSTEM” under the
guidance of
“[Link] Rai” sir
The report is the result of his efforts & endeavours.
The report is found worthy of acceptance as
final Project report for the subject
computer science of class XIIth (sci.).
Signature of Physics Teacher Signature of External Examiner
Signature of Principal
Acknowledgement
I would like to express a deep sense of thanks and gratitude
to Mr.
Mangal Rai sir for guiding me immensely in the course of the
project. He always evinced keen interest in my project. His
constructive advice & constant motivation have
been responsible for the successful completion of his project.
My sincere thank goes to our principal sir for his co-
ordination in extending every possible support for the
completion of this project.
I must thanks to my classmates for their timely help and
support for completion of this project.
Last but not the least, I would like to thank all those who had
helped directly or indirectly towards the completion of this
project.
TABLE OF CONTENT
[Link] CONTENT PAGE NO
1 INTRODUCTION 1
2 OBJECTIVES OF THE 2
PROJECT
3 SCOPE OF THE PROJECT 3
4 CODE 4-10
5 OUTPUT 11-14
6 HARDWARE AND 15
SOFTWARE
7 BIBLOGRAPHY 16
INTRODUCTION
The Restaurant Management System is a computerized
application developed to manage and organize the daily
activities of a restaurant in an efficient way. In many
restaurants, tasks such as taking orders, storing menu
details, generating bills, and maintaining customer records
are often done manually, which can lead to errors, delays,
and confusion. To overcome these problems, a digital
management system becomes essential.
This project has been created as part of the Class 12
Computer Science curriculum to demonstrate the practical
use of Python programming along with MySQL
database connectivity. Python is used to handle the logic
and user interaction, while MySQL stores the data in a
structured and secure manner. Using the [Link]
library, the project connects Python with the MySQL
database to perform important operations like adding menu
items, saving orders, calculating bills, and displaying
stored information.
The aim of this project is to build a simple, user-friendly,
and reliable system that helps restaurant staff perform their
tasks quickly and accurately. By working on this project,
students gain hands-on experience with database handling,
modular programming, and realworld application
development.
OBJECTIVES OF THE
PROJECT
1. To automate restaurant operations such as order
taking, menu handling, and bill generation,
reducing manual effort and errors.
2. To store and manage data efficiently using a
MySQL database so that menu items, orders, and
customer details can be accessed quickly and
accurately.
3. To integrate Python with MySQL through the
[Link] module and demonstrate
practical use of database connectivity in real-life
applications.
4. To create a user-friendly interface that allows
restaurant staff to perform tasks like adding items,
viewing menu, recording orders, and generating
bills smoothly.
5. To improve accuracy and speed in restaurant
management by automating calculations and
maintaining structured digital records.
6. To provide hands-on experience in programming
concepts such as functions, loops, file/database
handling, and modular program design.
7. To develop a reliable and efficient system that
can be used as a basic model for real-world
restaurant management software.
SCOPE OF THE PROJECT
The Restaurant Management System provides a wide
scope in simplifying and improving the functioning of a
restaurant. This project focuses on automating basic
restaurant activities and can be expanded further based
on requirements.
1. Menu Management:
The system allows storing, updating, and retrieving
menu items from the MySQL database, making it
easy to manage item names, categories, and prices.
2. Order Processing:
It supports taking customer orders, calculating the
total bill, and displaying the final amount
accurately and quickly.
3. Database Storage:
All important data—such as menu items, customer
orders, billing details, and order history—is stored
securely in the MySQL database, ensuring better
organization and easy access.
4. User-Friendly Interface:
Python provides a simple and interactive interface
to perform operations like adding items, viewing
menu, generating bills, and managing orders.
5. Error Reduction:
Automation helps minimize mistakes that
commonly occur in manual order-taking and
billing.
6. Real-Life Application:
The system serves as a basic model for real
restaurant management software and can be
enhanced with advanced features like online
ordering, inventory management, and staff
management.
7. Expandability:
New modules or features can be added easily, such
as customer feedback, GST calculation, graphical
UI, or linking with online payment systems.
CODE
#CONNECTION
import [Link]
x=[Link](host="localhost", user="root", password="admin123", database="mydata")
cbj=[Link]()
#----------------FOR VIEWING MENU SECTION---
def vmen():
q="select * from menu".format()
[Link](q)
menu=[Link]()
if len(menu)>0:
print("\n\n\n-------Available Dishes-------\n\n\n")
for i in menu:
print("DISH NUMBER",i," \n","---->",i," (TYPE:",i,")"," \n","PRICE",i)
print("\n\n")
[Link]()
yn=int(input("DO YOU WANT TO ORDER AN ITEM? type (1 for yes/2 for going back to main page): "))
if yn==1:
byo()
else:
print("THANK YOU")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE")
return
#-----FOR BOOKING ORDER-
def byo():
ID = int(input("ENTER DISH NO. OF THE ITEM YOU WANT TO ORDER:"))
QUANTITY = int(input("ENTER QUANTITY:"))
NAME = input("ENTER YOUR NAME:")
MOBNO = int(input("ENTER YOUR MOBILE NUMBER:"))
ADDRESS = input("ENTER YOUR ADDRESS:"))
a = "select * from menu where ID={}".format(ID)
[Link](a)
a = [Link]()
b = a[0][2] # Assumed index for price based on image logic
c = QUANTITY * b
# String literals for NAME and ADDRESS need single quotes in the SQL insert statement
ins = "insert into cusdet values({},{},'{}',{},'{}',{})".format(ID, QUANTITY, NAME, MOBNO, ADDRESS, c)
[Link](ins)
print("\n", "THANKS FOR YOUR ORDER", " \n \n", "YOUR ORDER HAS BEEN ORDERED SUCCESSFULLY", " \n\n")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE")
[Link]()
#--------------FOR VIEWING ORDER-
def vyo():
c = int(input("enter your number."))
d = "select * from cusdet where MOBNO={}".format(c)
print(" \n", "YOUR RECENT ORDERS", " \n")
[Link](d)
p = [Link]()
for i in p:
# This nested query logic is needed to join menu details with customer details for viewing
r = "select * from menu, cusdet where MOBNO={} and [Link]=[Link]".format(c)
[Link](r)
e = [Link]()
for j in e:
# Assumed indices based on likely database schema
print("ID:", j[0], " \n", "ITEM NAME:", j[1], " \n", "ITEM TYPE:", j[3], " \n", "TOTALPRICE:", j[9], " \n", "MOBILE
NUMBER:", j[7], " \n", "ADDRESS:", j[8], " \n")
[Link]()
#------------------FOR CANCELLING ORDER------------------
def cyo():
c = int(input("enter your number:"))
e = "delete from cusdet where MOBNO={}".format(c)
[Link](e)
print("\n\n", "YOUR ORDER HAS BEEN CANCELLED")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE", " \n\n")
[Link]()
#------------------&&FEEDBACK&&------------------
def fdbck():
fd = input("Enter your name:")
print("Write something about us --")
fdi = input()
q = "insert into feedback values('{}', '{}')".format(fd, fdi)
[Link](q)
print("\n")
print("Thanks for your feedback:) ")
print("\n")
print("YOU HAVE BEEN REDIRECTED TO THE MAIN PAGE")
print("\n")
print("\n")
[Link]()
#----------WELCOME PAGE
def start():
print("\n")
print("\n")
print("--------------------------------------------------")
print("..................................................")
print("------------------WELCOME TO----------------------")
print("--------------------------------------------------")
print("[::>GROVE STREET RESTUARANT<::::::]")
print("--------------------------------------------------")
print("..................................................")
print("--------------------------------------------------")
print("\n")
print("Press assigned keys for going forward*")
print("1. CUSTOMER ")
print("2. EXIT")
#----------WELCOME PAGE II ----------
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:
vmen()
elif ch1 == 2:
vyo()
elif ch1 == 3:
cyo()
elif ch1 == 4:
fdbck()
elif ch1 == 5:
start()
break
else:
print("\n", "INVALID CHOICE", " \n", "TRY AGAIN", " \n")
start1()
start()
#-----------WELCOME PAGE INFINITE LOOP.......
while True:
ch=int(input("enter your choice:"))
if ch==1:
start1()
elif ch==2:
print("thank you")
break
else:
print("INVALID CHOICE"," \n","TRY AGAIN")
start()
DATABASE
# MENU SECTION
# DETAILS OF THE CUSTOMER
# FEEDBACK FROM CUSTOMER
OUTPUT
# WELCOME PAGE AND VIEWING MENU
# ORDERING AN ITEM
# FOR VIEWING YOUR ORDERS
# FOR CANCELLING AN ORDER
# FEEDBACK FROM CUSTOMER
HARDWARE AND SOFTWARE
REQUIRED
● HARDWARE
>PC
>MOBILE PHONE
● SOFTWARE
>PYTHON (latest version)
>MYSql Python Connector
Bibliography
• NCERT Computer Science Textbook – Class XII
Concepts of database management, SQL, and Python
programming.
• Python Official Documentation
Information on Python syntax, functions, and modules.
[Link]
• MySQL Official Documentation
Reference for SQL queries and database connectivity.
[Link]
• [Link] Module Reference Help for
connecting Python with MySQL.
• School Computer Science Notes & Classroom Lectures
Understanding of project development and database
concepts.
• Online Educational Resources
Tutorials on Python programming and MySQL database
handling.
Thank You!!
~ Mahabir prasad gupta