Arjya Computer Project
Arjya Computer Project
CERTIFICATE
This is to certify that Arjya Talukdar of Class XII (A) Science at Faculty Higher Secondary
School has successfully completed the project titled "Restaurant Management System" using
Python and MySQL. This project was carried out under the direct supervision of Mr.
Mridulesh Sarma, our Computer Science teacher.
Arjya Talukdar demonstrated excellent dedication, technical skills, and the ability to apply
theoretical knowledge to practical applications throughout the development and
implementation of this project.
The project fulfills the requirements set forth by the school's Computer Science curriculum
and showcases the student's capability in executing a comprehensive and functional
management system.
Date:
Arjya Talukdar
Class XII (A) Science
Faculty Higher Secondary School
INTRODUCTION TO THE RESTAURANT MANAGEMENT SYSTEM
In the modern era, the restaurant industry is continuously evolving, driven by the
increasing demand for efficient and seamless customer experiences. Managing a
restaurant is a multifaceted task that involves overseeing various elements such as
menu management, order processing, customer interaction, and feedback collection.
Traditional manual methods are often inefficient and prone to errors, leading to delays
and dissatisfaction. As restaurants strive to remain competitive, the adoption of
technology has become pivotal. A Restaurant Management System (RMS) not only
streamlines operations but also enhances customer satisfaction by reducing waiting
times, ensuring accurate order management, and maintaining a high level of service.
Python’s extensive library support, along with its capability to handle data processing
and database integration, makes it an ideal choice for building an RMS. This system
provides a user-friendly interface where customers can view the menu, place orders,
check their order status, and leave feedback. It also offers restaurant managers a
centralized platform to manage customer details, orders, and the menu seamlessly.
The system boasts several features that ensure an efficient and enjoyable experience
for both customers and restaurant staff:
• Menu Management: The system displays an updated menu with details such
as dish names, types, and prices.
• Order Booking: Customers can place orders by selecting dishes, specifying
quantities, and providing personal details.
• Order Viewing: Customers can view their recent orders and check the status
using their mobile number.
• Order Cancellation: Users can cancel their orders easily if required.
• Feedback Mechanism: Customers can provide valuable feedback, helping the
restaurant improve its services.
• Database Integration: MySQL is used for storing and retrieving menu details,
customer orders, and feedback, ensuring data consistency and reliability.
• Error Handling: The system validates inputs, such as dish IDs and mobile
numbers, to prevent invalid entries.
• Scalability: The system is designed to accommodate additional features such
as online payment and table booking in the future.
1. Start the Application: The system opens with a welcome page offering
options to either proceed as a customer or exit the application.
2. View the Menu: Customers can browse through an extensive list of dishes
categorized by type and price.
3. Place an Order:
o Enter the dish number and quantity.
o Provide your name, mobile number, and address for delivery.
o Confirm the order, and the system calculates the total price and saves
the details.
4. Check Your Orders: Retrieve order details by entering your registered mobile
number.
5. Cancel an Order: Enter your mobile number to cancel any ongoing or past
orders.
6. Leave Feedback: Share your experience by providing your name and
comments.
7. Exit the Application: Once done, gracefully exit the system with a thank-you
message.
USEFULNESS AND OBJECTIVES OF THE RESTAURANT MANAGEMENT SYSTEM
1. Operational Efficiency:
o Automates routine tasks such as order processing, menu updates, and
feedback collection, reducing the workload on staff.
o Minimizes errors in order taking, ensuring that customers receive the
correct items with accurate billing.
2. Customer Experience:
o Provides a seamless and user-friendly interface for customers to browse
the menu, place orders, and leave feedback.
o Reduces wait times by ensuring quick and accurate processing of orders.
3. Data Management:
o Centralizes the storage of menu details, customer information, and
feedback in a secure database.
o Enables easy retrieval of order history, making it simple for customers
to track their previous orders.
4. Scalability:
o Designed to support additional features such as online ordering,
payment gateways, and table reservation systems, making it adaptable to
future requirements.
5. Cost-Effectiveness:
o Eliminates the need for extensive manual labor and paperwork, reducing
operational costs.
o Provides a comprehensive solution that integrates seamlessly into
existing workflows without significant investment.
6. Improved Feedback Mechanism:
o Offers a platform for customers to share their opinions, helping the
restaurant identify areas for improvement and maintain a high standard
of service.
Steps in Flowchart:
1. Start
2. Display Welcome Screen
3. User Choice:
o View Menu
o Place Order
o View Orders
o Cancel Order
o Feedback
o Exit
4. If "View Menu": Display menu items.
5. If "Place Order":
o Collect order details (dish ID, quantity, name, mobile number, address).
o Calculate total price and save to database.
6. If "View Orders": Fetch and display user orders based on mobile
mobile number.
7. If "Cancel Order": Delete order details from database using mobile number.
8. If "Feedback": Collect feedback and save it to database.
9. Exit
START
If "View
Display
Welcome User Choice
Menu": If "Place If Exit
Screen
Display Order": "Feedback":
menu items Collect
feedback
and save it
View Place View Cancel to database
Feedback Exit
menu order orders orders
Collect order details Calculate
(dish ID, quantity, total price
name, mobile and save to
number, address) database
Input:
Process:
Output:
System Benefits:
• Entities:
o Customer
o Database
• Processes:
o View Menu
o Place Order
o View Orders
o Cancel Order
o Feedback
DFD (Level 1):
1. View Menu:
o Customer → System: Request menu → System: Fetch menu from
database → System: Display menu to customer.
2. Place Order:
o Customer → System: Provide order details → System: Validate dish ID
→ System: Calculate total price → System: Save order in database.
3. View Orders:
o Customer → System: Provide mobile number → System: Fetch order
history from database → System: Display orders to customer.
4. Cancel Order:
o Customer → System: Provide mobile number → System: Delete order
from database → System: Confirm cancellation.
5. Feedback:
o Customer → System: Provide feedback → System: Save feedback in
database → System: Display thank-you message.
Algorithms
1. Start
2. Fetch all items from the menu table.
3. Display items with ID, Name, Type, and Price.
4. End
1. Start
2. Input: Dish ID, Quantity, Name, Mobile Number, Address.
3. Fetch item details from the menu table using Dish ID.
4. Calculate total price: Quantity * Item Price.
5. Insert order details into cusdet table.
6. Display order confirmation.
7. End
1. Start
2. Input: Mobile Number.
3. Fetch order details from cusdet table using Mobile Number.
4. For each order, fetch item details from the menu table.
5. Display all order details.
6. End
1. Start
2. Input: Mobile Number.
3. Delete orders from cusdet table where Mobile Number matches.
4. Display cancellation confirmation.
5. End
Algorithm: Feedback
1. Start
2. Input: Name and Comments.
3. Insert feedback into feedback table.
4. Display thank-you message.
5. End
IMPLEMENTATION AND RESULT ANALYSIS
1. System Design:
o The design phase focused on understanding the requirements and
translating them into a modular structure.
o Key functionalities such as menu management, order booking, viewing
orders, feedback collection, and order cancellation were planned as
distinct modules.
o Data flow diagrams (DFDs) were created to map the interaction between
the user, the Python application, and the MySQL database.
2. Backend Development (Database):
o MySQL was chosen for its reliability and efficiency in handling
structured data.
o Three main tables (menu, cusdet, and feedback) were designed
with appropriate fields and data types to support the operations.
o SQL queries were written to fetch, insert, and delete records based on
user actions.
3. Frontend Development (Python):
o Python was used to build the user interface and handle business logic.
o Functions were developed for each core operation, such as viewing the
menu, placing orders, and handling feedback.
o User inputs were validated to prevent errors and ensure data integrity.
o The mysql-connector-python library was used to establish
seamless communication between Python and MySQL.
4. Integration and Testing:
o The Python application was integrated with the MySQL database.
o Test cases were developed to validate each functionality, ensuring that the
system performed as expected under different scenarios.
o Edge cases, such as invalid dish IDs or incorrect mobile numbers, were tested
to verify error-handling mechanisms.
5. Deployment:
o The system was deployed on a local machine, providing a simple and efficient
way to manage restaurant operations.
o Instructions for installation and usage were documented to assist future users
and developers.
Result Analysis
1. Performance Analysis:
o The system successfully displayed the menu, allowing users to view
dishes and their details.
o Order placement was efficient, with the total price calculated accurately
and data stored reliably in the database.
o Retrieval of order history and feedback collection worked seamlessly,
enhancing the user experience.
2. Error Handling:
o Input validation prevented common mistakes, such as entering invalid
IDs or leaving fields blank.
o Error messages guided users to rectify their inputs, making the system
user-friendly and robust.
3. Database Reliability:
o The MySQL database efficiently handled all data operations, including
insertion, retrieval, and deletion.
o Data consistency was maintained even during high usage scenarios,
proving the system’s scalability.
4. User Feedback:
o The feedback mechanism provided insights into customer satisfaction,
highlighting the system’s potential as a tool for continuous
improvement.
o Customers appreciated the intuitive interface and the time saved due to
automated operations.
5. Benefits for the Restaurant:
o The system reduced dependency on manual processes, leading to faster
and more accurate order processing.
o It streamlined operations, allowing restaurant staff to focus on delivering
high-quality service.
o By storing customer data securely, the system enabled better customer
relationship management.
6. Scope for Future Enhancements:
o The system’s modular design allows for the integration of advanced
features like online payment, inventory management, and real-time
order tracking.
o It can be scaled to support cloud-based databases for multi-branch
restaurant operations.
Scope of the Restaurant Management System
1. Immediate Applications
• Streamlining Operations:
Automates menu management, order processing, and feedback collection,
reducing the burden on staff and increasing efficiency.
• Enhanced Customer Experience:
Provides an intuitive interface for customers to browse the menu, place orders,
and provide feedback, ensuring a seamless experience.
• Data Management:
Centralizes all customer and menu data in a secure and easily accessible
format, enabling quick retrieval and updates.
• Error Reduction:
By automating calculations and validations, the system minimizes errors in
order processing and billing.
2. Future Enhancements
#-----------CONNECTION--------------
import mysql.connector
cbj = x.cursor()
def vmen():
cbj.execute(q)
menu = cbj.fetchall()
if len(menu) > 0:
print("\n---Available Dishes---\n")
for i in menu:
print("DISH NUMBER", i[0], "\n---->", i[1], " (TYPE:", i[3], ")\n", "PRICE", i[2])
print("\n")
x.commit()
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")
def byo():
cbj.execute(a)
a_result = cbj.fetchall()
if len(a_result) > 0:
item_price = a_result[0][2]
ins = "insert into cusdet values({}, {}, '{}', {}, '{}', {})".format(ID, QUANTITY, NAME, MOBNO,
ADDRESS, total_price)
cbj.execute(ins)
x.commit()
else:
def vyo():
cbj.execute(d)
p = cbj.fetchall()
for i in p:
cbj.execute(r)
e = cbj.fetchall()
for j in e:
print("ID:", j[0])
x.commit()
def cyo():
x.commit()
#----------------FEEDBACK--------------------
def fdbck():
fdi = input()
cbj.execute(q)
x.commit()
#-------------WELCOME PAGE----------------
def start():
print("\n-WELCOME TO-")
print("SHASHWAT'S KITCHEN\n")
print("1. CUSTOMER")
print("2. EXIT")
def start1():
while True:
print("4. FEEDBACK")
print("5. EXIT")
if ch1 == 1:
vmen()
elif ch1 == 2:
vyo()
elif ch1 == 3:
cyo()
elif ch1 == 4:
fdbck()
elif ch1 == 5:
start()
break
else:
start()
while True:
if ch == 1:
start1()
elif ch == 2:
print("Thank you")
break
else:
x.close()
MYSQL CODES:
DATABASE:
Table: menu
Table: cusdet
Table: feedback
NAME COMMENTS
John Doe Great food and service!
FINAL OUTPUT
---Available Dishes---
DISH NUMBER: 2
Press assigned keys for going forward
----> Pasta (TYPE: Main Course)
1. CUSTOMER
PRICE: 10.99
2. EXIT
DISH NUMBER: 3
4. FEEDBACK
DISH NUMBER: 5
5. EXIT
----> Idli (TYPE: Appetizer)
PRICE: 3.99
DISH NUMBER: 13
enter your number: 1234567890
2. Book Order (byo() function)
ENTER YOUR ADDRESS: 123 Elm Street ADDRESS: 123 Elm Street
YOU HAVE BEEN REDIRECTED TO THE MAIN enter your number: 1234567890
PAGE
To provide feedback:
Thank you