0% found this document useful (0 votes)
15 views17 pages

Cs Project..

This document provides an overview of a restaurant management software system. It describes the objective to apply programming skills to develop a software solution for managing restaurant records, customers, orders, and staff. It outlines the input/output requirements including hardware, software, and database needs. It compares the proposed automated system to the existing manual system and describes similar existing software solutions. It discusses the future scope of expanding the project's capabilities and modernizing data storage. Source code is provided for the software implementation using Python and MySQL.

Uploaded by

bhavya sehgal
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)
15 views17 pages

Cs Project..

This document provides an overview of a restaurant management software system. It describes the objective to apply programming skills to develop a software solution for managing restaurant records, customers, orders, and staff. It outlines the input/output requirements including hardware, software, and database needs. It compares the proposed automated system to the existing manual system and describes similar existing software solutions. It discusses the future scope of expanding the project's capabilities and modernizing data storage. Source code is provided for the software implementation using Python and MySQL.

Uploaded by

bhavya sehgal
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/ 17

Introduction

This Software is used to maintain the


records of the Managers, details of
customers with their history of Food
order and other staffs working in the
Restaurant.

Objective
The objective of this project is to let the
students apply the programming
knowledge into a real-world
situation/problemand exposed the
students how programming skills helps
in developing a good software.
Input/Output Requirement
HARDWAREREQUIREMENTS
Operating System: - Windows 10 or above
Processor: - Pentium (Any) or AMD Athlon
(3800+ - 4200 + Dual core)
RAM:- 512 MB+
Hard Disk: - SATA 40GB Or Above

Software Requirements
Windows OS
Python Programming Language
MySQL Database Management System

ysQL@
The Existing System
The present software are obsolete,
sluggish, unorganized and are only
accessible by either the staffs or the
customers.
V Most of the work is done manually which
increases the chances of human error.
The Proposed System
v It's an age of computers and automating of
such an organization gives the better look.
v The work becomes fully automated and
any information regarding the
organisation can be obtained by clicking
the button.

Similar Softwares
Some of the pre-existing similar software are
shown below

TOP RATED
Restaurant
2022 365
Sarbari
Future Scope of the
Project
Our project has a large scope in the future as it
is easy to use it, understand it
and modify it.
Vln this age of evolving technologies, our
software aims to modernize Data Storing
which were not able to stand the test of
time, either because of superior
competition or due to heavy storing of data
in the system.
V Our software helps the management
department to manage and maintain the
records of customers, food and the other
bills of the restaurant much easier and
effective method from virtually anywhere in
the world.
v Our software is a paperless software which
makes it easy to sustain and aids the
environment.
v Our software increases the precision and
efficiently by eliminating the human chance of
error.
v Our software is laidback and can be accesse
by employees and users.
Source Code
fom tkinter import *
import random
importtime
tkinter import ttk
tkinter import messagebox
import sqlite3
from tkinter import *

#1tis definition of System


defsystemO:
root = Tk()

root. ManagementSystem")

def Database():
global connectn,cursor
connectn=
cursor connectn.cursor()
# creating bill table
cursor.execute(
"CREATE TABLEIF NOT EXISTS text,piz text,bur text,ice text, dr
text, ct text,sbtext,taxtext,sr text,tot text)

# variable datatype assignment


orderno = StringVar()
pizza = StringVar()
burger —StringVar()
icecæam StringVar()
drinks —String Var()
cost = String Var()
subtotal = StringVar()
tax = StringVar()
service —StringVar()
total StringVar()

# defining totalfunction
deftottal():
#fetching the values from entry box
order —(orderno.get())
pi
bu =
ice =float (icecream.getO)
dr =
# computing the cost of items

costpi = pi * 240
costbu = bu * 125
costice —ice * SO
costdr = dr * 60

# computing the cha,'ges


costofmeal = (costpi + costbu + costice + costdr)
ptax —((costpi + costbu + costice + costar) * O.IS)
sub = (costpi + costbu + costice + costdr)
ser = ((costpi + costbu + costice + costdr) / 99)
paidtax = str(ptax)
Service str(ser)
overall = str(ptax + ser + sub)

# Displaying the values


cost. set(costofmeal)
tax.set(ptax)
subtotal.set(sub)
service.set(ser)
total.set(overall)

# defining resetfunction
defreset():
orderno.set("")
pizza.set("")
btuger.set("")
icecream.set("")
drinks.set("")
cost. set("")
subtotal.set("")
tax.set("")
service. set("")
total.set("")

# definingexitfunction
defexit():
mot. destmy()

# Topframe
topframe = Frame(root, bg="white", width=1600, height=50)
topframe k(side—TOP)

# Leftframe
leftframe —Frame(root, height—700)
leftframe.pac k(side —LEFT)
# rightframe
rightframe = Frame(mot,
rightframe .pack(side=RIGHT)

display data
defDisplayData():
Database()
my tree.delete(*mytwe.get children())
cursor = * FROMRestaurantrecords
fetch cursorfetchall()
for data infetch:
my_tree.insert(", 'end', values=(data))
cursor.close()
connectn. close()

style = ttk.StyIe()
s tyle.
foreground="black",
rowheight=40,
fieldbackground="white"

style.map('Treeview',
'lightblue')])

Creating
my tree = ttk.Treeview(rightframe)
my_tree['columns'] = ("ordno", "Piz", "bur", "ice", "dr", "ct", "sb", " , "sr ", "tot")

creatingfor
horizontal_bar = ttk.ScmIIbar(rightframe,orient= "horizontal")
horizontal twe.xview)
ma set)
horizontal side=BOTTOM)

vertical_bar = ttk.ScmlIbar(rightframe,orient—"vertical")
vertica l_bm: configure'
my_tree.
vertical side—RlGHT)

# defining column for table


my_tree.column("#()", width=(), minwidth=())
anchor—CENTER, minwidth=25)
my_tree.column("piz", anchor=CENTER, width—60,minwidth=25)
anchor=CENTER, minwidth=25)
my tree.column("ice", anchor—CENTER, width—80, minwidth=25)
anchor=CENTER, width=50. minwidth=25)
anchor—CENTER, width=50, minvvidth=25)
anchor CENTER, width—100, minwidth=25)
my tree.column("tax", anchor-CENTER, width=50, minwidth=25)
"sr anchor=CENTER, width 100, minwidth-25)
anchor=CENTER, width=5(), minwidth=25)

# defining headings for table


my No", anchor=CENTER)
my_tree.heading("piz", text= "Pizza", anchor=CENTER)
anchor—CENTER)
my_tree.heading( Ice", cream", anchor=CENTER)
my_tree.heading("dr", text= "Drinks", anchor—CENTER)
my tree.heading("ct", text-cost", anchor=CENTER)
"sb '', anchor-CENTER)
my_tree.heading("tax", text—"Tax", anchor=CENTER)
my_tree.heading( sr", anchor=CENTER)
my_tree.heading("tot", text—"Total", anchor—CENTER)

DisplayData()

# definingaddfunction to add
defadd():
Database()
# getting data
orders = orderno.get()
pizzas = pizza.get()
burcgers= btnger.get()
ices = icecwam.get()
drinkss = drinks.get()
costs = cost.get()
subtotals = subtotal.get()
taxs —tax.get()
services = service.get()
totals = total.get()
if orders or pizzas '"' or bumgers "" or ices '"' or drinkss "" or costs ""
or subtotals '"' or taxs "" or servæes "" or totals —
messagebox.showinfo("Warning",
'Please fill the emptyfield!!!")
else:
connectn.execute(
'INSERTINTO Restaurantreco,tls (ordno, Piz, bur , ice .dr .tax, sr, tot) VALUES

(orders, pizzas, bmgers, ices, drinkss, costs, subtotals, taxs, services, totals));
connectn.commit()
messagebox.showinfo('Message", "Stored successfully")
# wfresh table data
DisplayData()
connectn.close()

# de Inin nction to acc ss data from s lite datrabas


def DisplayData() :
Database()
my_tree. d))
cursor connectn.execute("SELECT * FROM Restaurantrecords")
fetch = cursor.fetchall()
for data infetch:
my twe.insert(", 'end', values=(data))
cursor.close()
connectn.close()

# definingfunction to delete record


defDeleted).
# open database
Database()
if not my tree.selection():
"Select data to delete")
else:
result = messagebox.askquestion('Confirm', 'Areyou sure you want to delete this record? ',
icon "warning")
if result Ives':
curltem =
contents (my_tree.item(curltem))
selecteditem = contents['values']
my_tree. delete(curltem)
cursor = FROM Restaurant,vcords WHEREordno

connectn.commit()
cursor.close()
connectn.close()

# Time
localtime —time.asctime(time.localtime(time.time()))
# Toppart
main_lbl = 25, 'bold'), text—"Restaurant Management System"
fg-"B1ue'1
anchor= W)
O, column—O)
main 1b/ = Label(topframe,font=('Calibri', 15,), text=localtime,fg="lightgreen", anchor=W)
column=O)

# items
ordlbl = Label(lefiframe, 16, 'bold'), bd 5

column—I))
ordtxt = Entry(lefiframe,font=('Calibri', 16, 'bold'), bd=6, 'right',
I, column—I)
# Pizza
pizlbl = Label(leftframe,font=('Calibri', 16, 'bold'), bd=5,
anchor W).grid(mw=2,

piztxt= 16, 'bold'), bd=6,


column—I)
# burger
burlhl= 16, 'bold'), bd—5,
anchor=
column = O)
burtxt= 16, 'bold'), bd=6, insertwidth=4, justify— 'right',
column=l)

# icecream
icelbl = 16, 'bold'), text="lce Cream", bd=5,

icetxt = Entry(leftframe, 16, 'bold'), bd 6, insertwidth=4,justifr 'right',


column—I)
# drinks
drinklbl = Label(leftframe, 16, 'bold'), bd=5,
anchor=
column
drinktxt= 16, 'bold'), bd=6, insertwidth=4, justify='right',
column—I)
# cost
costlbl = Label(lefiframe, 16, 'bold'), bd=5, anchor=W).grid(row=6,
column—I))
costtxt = Entry(leftframe,font=('Calibri', 16, 'bold'). bd=6, insertwidth=4,justify='right',
textvariable—cost) grid(mw 6, column = I)
# subtotal
sublbl = 16, 'bold'), bd=5,
column—O)
subtxt = 16, 'bold').bd=6, 'right',
7, column I)
# tax
taxlbl = 16, 'bold'), text-"Tax", bd=5
column = O)
taxtxt = Entry(leftframe, 16, 'bold'), bd=6, insertwidth justify= 'right',
8, column I)
# service
servicelbl = Label(leftframe, 16, 'bold'), bd=5,
anchor =

servicetxt Entry(lefiframe, 16, 'bold'), 1+6,


column=l)

totallbl = Label(leftframe, 16, 'bold'), text—'Total", bd=5

column —O)
totaltxt= 16, 'bold'), bd—6, insertwidth=4,justify—'right',
column—I)
# „-button--

totbtn= 16, 'bold'), bg—


bd=3, padx=5, pady=5,
width=6, column=3)

resetbtn = Button(leftframe, 16, 'bold'), text="Reset",


bd 3,padx 5,
pady=5, width=6, command=reset).grid(row=4, column=3)

exitbtn = Button(leftframe,font=('Calibri', 16, 'bold'), text="Exit The System", "lightgrey",


bd=3, padx=5,
pady=5, width—12, column=2)

addbtn = Button(leftframe, 16, 'hold'),


bd=3, padx=5, pady=5,
width=6, column=3)

deletebtn = Button(leftframe, 16, 'bold'), Record", bg="lightgrey",


bd=3,
padx=5, pady=5, width=12, column=2)

deffeedbackk():
feed = Tk()
feed.
feed. title("Submit Feedbackform")
# database #
connectn = sqlite3.connect("Restaurant.db")
cursor = connectn.cursor()
TABLEIF NOT EXISTS FEEDBACK(n text, eid textJeedback5
text, com text)
# variable datatype asssignment #
name = StringVar()
email —String Var()
comments = StringVar()

# defiing submitfunction
defsubmit():
n = name.get()
eid = email.get()
com = txt.get('1.O', END)
feedback/ =
feedback2 = '"'
feedback-3
feedback4=
if (checkvarl.get()
feedback/ = "Excellent"
if (checkvar2.get() —
feedback2 = "Good"
if (checkvar3.get()
feedback2 = "Average"
if (checkvar4.get() —
feedback2 "Poor"
feedback5 = feedback] + " " + feedback2 + " " + feedback3 + " " +feedback4
conn = sqlite3.connect("Restaurant.db")
cursor = conn.cursor()
INTOFEEDBACKVALUES + n + + eid + + com +
+ feedback.' +
"data inserted ! ")
feed. destroy()

# defining cancel button


def cancel :
feed. destroy()

# label#
1b] = MT", 15, "bold"), text="Thanksfor Visiting!",
"black TOP)
lb12 = Label(feed, font=("calisto MT", 15), glad you chose us ! Please tell us how
it Was
fg "black").pack(side=TOP)
# name
namelbl = 15), bd—10,

nametxt = Entry(feed, 15), bd—6,insertwidth=2, justify='right',


textvariahle=name).place(x—
-15, y-185)
# email
emaillbl = 15),
y=150)
emailtxt = Entry(feed, 15), bd 6, insertwidth—2, bg "white", justify—fright',
textvariable=email).place(x =285. y=185)

ratelbl = Label(feed, 15), text="How wouldyou rate bd=10,

x-10, y-215)
checkvarl = String Var()
checkvar2 = StringVar()
checkvar3 = String Var()
checkvar4 = StringVar()
cl = Checkbutton(/eed,font=(Calibri', 10, "bold"), text= 'Excellent",
variable=checkvarl)
cl. deselect()
cl y=265)
c2 = 10, "bold"), text="Good", bg="white",
variable=checkvar2,
)
c2. deselect()
y=265)
c3 = Checkbutton(/eed,font=('Calibri', 10, "bold"), "white".
variable=checkvar3,
)
c3.deselect()
c3.place(x=220, y=265)
c4 Checkbutton(feed, 10, "bold"), text=" Poor 'f,
variable=checkvar4,
)
c4.deselect()
c4.place(x=320, y=265)
# comments "
commentslbl = Label(feed, 15),
10, y=3()())
txt = Text(feed, width—50, height—5)
txt.place(x=15, y=335)
# button
submit = Button(feed, • 15), text="Submit", "black", bg="green", bd=2,

x-145, y-430)
cancel = Button(feed, 15) bg="red", bd=2,

x=245,
feed. main loop()

# Feedbackbutton
feedbtn = Button(leftframe, 16, 'bold'), text="Feedback Form "black",
"lightgwy", bd=3,
width—ID, column=2, columnspan=l)

defmenu():
roott — Tk()
roott.title("Price Menu")

lhlinfo = Label(roott, 20, "bold"), LIST",


column=())
lhlprice — 20, "bold"), "black", bd 10)
column=3)
Iblpizza
= 20, "bold"), text—"Pizza", fg "Blue",
column—I))
Iblpricep = Label(roott, 20, "bold"),
column —3)
lblbumger= Label(mott, 20, "bold"), bd=lO)
Iblbumger.grid(row 3, column=0)
lblpriceb = Label(roott, 20, "bold"), text= bd=10)
column=3)
lblicecream= 20, "bold"), bd=10)
lblicecream.grid(row=4, column=0)
lblpricei = Label(roott.font=("Calibri", 20. "bold"), text—"
— 80/-",fg="blue",
column=3)
lbldrinks = Label(roott, 20, "bold"), text—"
—Drinks", 'Blue"

lblpriced = Label(roott, 20, "bold"), text—


column =3)
roott.mainloop()

# menubutton
menubtn = 16, 'bold'), Card"
"black", bd=3, padx=6,
pady 6, width—12, column=2)

root.mainloop()

system()
output
RestaurantManagementSystem

1 Card Add

Ice Reset

505.0 System

90.89999999999999

601.0010101010101

Restaurant Management System GUI


NO Pizza Burge Icecream Drinks Cost Tax

585.0 105.3 696.209(

The record from the Databa


Restaurant Management System

ITEM LIST

zoo/-
Burger i2S/.

Drinks

se
sting of the menu card prices
Bibliography
Our Documentation I Python.org
MySQL:: MySQLDocumentation
What is Windows - javatpoint
Restaurant Management Software:
Everything You Need To Know
(posist.com)

You might also like