ST.
MICHAEL’S CONVENT SCHOOL
I.T.I. CAMPUS MANKAPUR, GONDA
SESSION 2023-2024
COMPUTER SCIENCE (083)
PROJECT WORK
TOPIC: RESTAURANT
BILLING SYSTEM
SUBMITTED BY:
SUBMITTED TO:
DRISHTI SHARMA
ABHINAV ARTHER DIXON
AMAN BHASKAR
MR. AJAY SATSANGI
MOHD. TABISH SHAKEEL
(PGT. COMPUTER SCIENCE)
ACKNOWLEDGEME
NT
We would like to express my gratitude to our teacher- Mr. Ajay
Satsangi, as well as our principal Mr. Bakiyaraj T., who gave us
the golden opportunity to do this project on: RESTAURANT
BILLING SYSTEM, which also helped us in doing a lot of
research and we came to know about so many things and we are
thankful to them.
We would also want to thank Mr. Mohd Intazaar Alam (Lab
Assistant), who helped us in finalizing this project within a
limited time frame.
Secondly, we would also like to thank our parents and friends
who helped us a lot in finalizing this project withing the time
frame.
CERTIFICATE
This project entitled “Restaurant Billing System” is the
investigatory project work in COMPUTER SCIENCE (083),
successfully completed by Mister/Miss Drishti Sharma, student
of class XII, St. Michael’s Convent School, Mankapur, Gonda,
under the supervision of Mr. Ajay Satsangi (PGT. Computer
Science), for the partial fulfillment of requirements for the course
completion in pursuance of AISSCE 2023-2024.
External Examiner Internal Examiner
Principal
CERTIFICATE
This project entitled “Restaurant Billing System” is the
investigatory project work in COMPUTER SCIENCE (083),
successfully completed by Mister/Miss Abhinav Arther Dixon,
student of class XII, St. Michael’s Convent School, Mankapur,
Gonda, under the supervision of Mr. Ajay Satsangi (PGT.
Computer Science), for the partial fulfillment of requirements for
the course completion in pursuance of AISSCE 2023-2024.
External Examiner Internal Examiner
Principal
CERTIFICATE
This project entitled “Restaurant Billing System” is the
investigatory project work in COMPUTER SCIENCE (083),
successfully completed by Mister/Miss Aman Bhaskar, student
of class XII, St. Michael’s Convent School, Mankapur, Gonda,
under the supervision of Mr. Ajay Satsangi (PGT. Computer
Science), for the partial fulfillment of requirements for the course
completion in pursuance of AISSCE 2023-2024.
External Examiner Internal Examiner
Principal
CERTIFICATE
This project entitled “Restaurant Billing System” is the
investigatory project work in COMPUTER SCIENCE (083),
successfully completed by Mister/Miss Mohd. Tabish Shakeel,
student of class XII, St. Michael’s Convent School, Mankapur,
Gonda, under the supervision of Mr. Ajay Satsangi (PGT.
Computer Science), for the partial fulfillment of requirements for
the course completion in pursuance of AISSCE 2023-2024.
External Examiner Internal Examiner
Principal
RESTAU
RANT
BILLING
SYSTEM
INDEX
SYNOPSIS
INTRODUCTION
PROBLEM DEFINITION
PURPOSE
OBJECTIVE OF THE PROJECT
PROJECT OVERVIEW
EXISTING SYSTEM
EXISTING SYTEM
PROPOSED SYSTEM
SYSTEM REQUIREMENTS AND SPECIFICATIONS
TOOLS USED
FUNCTIONAL REQUIREMENTS
NON-FUNCTIONAL REQUIREMENTS
FEASIBILITY STUDY
IMPLEMENTATION
ARCHITECTURE
USE-CASE DIAGRAM
SOURCE CODE
OUTPUT
CONCLUSION
FUTURE WORK
SYNOPSIS
A billing system can be very useful within a business
environment. Instead of making bills manually or to sum up the
total manually, it is very much time consuming and also may
have some human errors like adding up the wrong total or
adding wrong items into the bill. When making a handwritten
bill the owner and customer both have to repeatedly check the
total, items added, etc. It also sometimes results in to a Bad
Impression towards the Restaurant from a Customer. Ideally,
user should be able to generate bill without any mistakes and
quickly, enabling them to fasten or improve their process. To
overcome this problem. We have come up with this project, that
is, Restaurant Billing System Using Python. A simple project
based on Restaurant/Cafe Billing System which uses
Python Language with Tkinter Library for GUI. Following
Python with Tkinter Library project contains the least, but
important features which can be in use for the second-year in
secondary education. It has features that will allow all the users
to interact in a way that the restaurant manager interacts with
their customers regarding their billing payments. This system as
well as the python application’s concept is all clear, it’s
the same as real-life scenarios and well-implemented on
it.
INTRODUCTION
Restaurant Billing System Using Python can be very useful
within a business environment. Instead of doing manual work
for making up a bill at Restaurant, which gets tiring and time
consuming, you can generate a bill including tax and service
charges in just few clicks. When making up a bill manually at a
Restaurant may contain some human errors like adding wrong
items into the bill or summing up their total also may end up
wrong, it also sometimes results into a Bad Impression towards
the Restaurant from a Customer. Ideally, user should be able to
generate bill without any mistakes and quickly, enabling them to
fasten or improve their process
. To overcome this problem, we have come up with this project,
that is, Restaurant Billing System Using Python. The Restaurant
Billing System Using Python is very useful to small business or
restaurant or cafe or food truck owners. This helps the owner to
fasten the process which is bug free and easy to use. It also has a
calculator to ease the use of the user. This project firstly has the
menu and then adds up the selected items by customer and sums
up the total of all items adds tax and service charges and
displays total. To perform any other operation like division,
multiplication, etc. Moving on, this restaurant/cafe system
project
in Python focuses mainly on dealing with customer’s
payment details with their respective food orders and amounts.
Also, the system allows the selection of food and drink items for
calculation and entering the quantities. But here, the project only
contains Admin Panel. In an overview of this app, the system
user has to select a particular food and drink item, enter a certain
quantity and generate the total cost. In addition, the system
generates the total bill amount with tax. Besides, the system also
generates a bill receipt with a reference number. Additionally,
the system also contains a mini calculator where the user can
perform simple mathematics for calculation too. So, with it, this
simple project can perform all the important tasks for
calculations of the total bill amount of the customer. Last, but
not least, a clean and simple GUI is presented with simple color
combinations for a greater user experience while using this
restaurant billing system project in Python. For its UI elements,
a standard GUI library; Tkinter is on board. Presenting a new
restaurant/cafe billing system in Python project which includes a
user panel that contains all the essential features to follow up,
and a knowledgeable resource for learning purposes.
BACKGROUND
A restaurant is a business which prepares and serves food and
drinks to customers in exchange for money, either paid before
the meal, after the meal, or open with an account. Meals are
generally served and eaten on premises. Restaurants vary greatly
in appearance and offerings, including a wide variety of cuisines
and service models ranging from inexpensive fast-food
restaurants to high priced luxury establishments.
Restaurants are one of the growing businesses in recent times. In
Nepal, many restaurants are doing very well by providing
quality services to its customers. It has to deal with a lot of
information about its client and employees, all of which are kept
and recorded manually and physically in a drawer or a room.
Due to this situation finding any reliable data when required and
in time is not possible.
PROBLEM DEFINITION
The Restaurant industry is enlarging rapidly and restaurant
owners are keen to improve every section of their business.
Though much attention is paid to digitalizing the restaurant
management and the menu, but not many business owners
realize the importance of applying digital billing software in the
restaurant. The customers' experience at your restaurant includes
the billing and payment experiences too. Billing software
provides some exclusive features that ease up the restaurant
services. It upgrades the billing process and uplift the
customers' experience. It enables customers to pay bills more
easily. The software can generate detailed bills that eliminate the
need to calculate bills separately when the guests wish to know
total GST amount. Apart from billing, the software enables you
to organize a number of processes at the restaurant. It makes
your system more effective and helps you provide faster and
easy services to the customers. So many times, customers leave
unhappy due to improper billing. When the crowd is vast in the
restaurant, it might take you some time to generate manual bills
that may leave your customers unsatisfied. This is where the
automated billing system can be used. It generates digital bills
automatically and allows customers to make quick payments.
PURPOSE
The Restaurant Management System helps the restaurant
manager to manage the restaurant more effectively and
efficiently by computerizing meal ordering, billing and
inventory control.
OBJECTIVE OF THE
PROJECT
The main objective of this software is a computerized working
environment. This system proceeds on the assumption that the
organization on holly requires manual work for any task. This
project will serve the following objectives:
To add and maintain records of available menu.
To add and maintain description of new menu.
To provide view of transaction to the owner.
To provide a convenient solution of billing pattern.
To make an easy-to-use environment for users.
Easy to use system.
PROJECT OVERVIEW
Hotel's Restaurant Billing System is a computer-based billing
system with user friendly interface which automatically
manages the billing process of the customer very easily taking
only a short period of time. The system can large amount of data
and also generates bill for the customer. Billing history,
reservation information and staff information can also be
obtained with the use of RBS.
It is an automated desktop-based software which has a simple
design and very easy to use also. This project's main focus is on
proper management of information regarding the staffs, billing
and reservation records. It is also specialized in automatically
processing the customer bills and discounts.
The proposed system either does not require paper work or very
few paper works are required. All the data is fetched into the
computer immediately and various bills can be generated
through computers. Since all the data is kept in a database, no
data of the organization can be destroyed. Moreover, works
become very easy because there is no need to keep data on
papers.
EXISITING SYSTEM
There is always a need of a system that will perform easy billing
calculation in a grocery store. This system will reduce the
manual operation required to maintain all the bills. And
also generates bill receipt with unique bill number.
EXISTING SYSTEM DRAWBACKS
Time consuming
Human errors
No backup records in case of loss or damage
May require specialized knowledge to maintain
PROPOSED SYSTEM
Since many restaurant or café owners make bills for their
customers manually with a pen paper. This sometimes results
into an error of total or wrong items added or some items
missing in bill or extra items added. This may end up by
building up a bad impression of customer towards the Café or
restaurant. So, to overcome this problem we’ve come up with
this helpful project named Restaurant Billing System Using
Python. We all love going to cafes or restaurants but when it
takes time for them to make a bill or if they Make wrong bill
then it’s time consuming. So, to avoid all such chaos our project
will help in all possible terms. Proposed System Advantages
1. Improve Customer Relationships 6. Enhanced
Productivity
2. Tracking Sales 7. Effective Use of
Human Resources
3. Automatic Analysis 8. Reduce the paper
work
4. Employee Satisfaction 9. Customer satisfies
5. Reduction of Errors
SYSTEM REQUIREMENTS
AND SPECIFICATIONS
Here we are including the software’s and hardware’s used for
developing the project and implementing the project
A. Software Requirements
1. Python 3.9
2. Notepad
3. Any OS
B. Hardware Requirements
1. 1 GB RAM or above
2. Intel i3 Processor or above
3. 32 Bit System or above
TOOLS USED
Various tools have been used to develop this software. They are
listed below:
Front-end:
Programming language used: Python
• IDE used: Pycharm Python IDLE
• System used: Microsoft Windows 8 64-bit or above.
Back-end
• SQL Server used: MySQL Server
• Together: for making various diagrams.
• Microsoft Word 2019 for documentation.
• This project enables employees to maintain a great database of
in- formation regarding the billing and reservation.
FUNCTIONAL
REQUIREMENTS
A functional requirement defines a function for Rays wand its
components. This subsection presents the identified functional
requirements for RBS which are listed below.
• Staff management - The admin has the full power to manage
(add, delete, update, view) the staffs' records. RBS provides an
easy view of the staff records from which the management of
the staffs can be done.
• Make order The staffs can record orders by simply selecting
the category and type of the item or meal. The order will be
added to database.
• Billing -The orders made can be billed as well. The staffs as
well as the admin can make bills of the orders made by the
customers easily.
• Menu management - The admin can manage the menu of the
restaurant. He/she can add, delete, update or view the menu of
the restaurant.
• Reservation -Table can also be reserved by the customers by
phone. The customer will get a unique reservation number.
• Order History-History of the billing or transaction can be
viewed easily.
• To do List-Users can add tasks to be done as well as clear the
task from the list after its completion.
NON-FUNCTIONAL
REQUIREMENTS
The following are the non-functional requirements of HBS:
• Consistency- This system provides consistency user interface
design to the user. The designs of the screen are standardizing
and consistent that make the user feel comfortable to use it.
• Convenience The system gives convenience to the user to
perform different activities like making order, menu managing,
staff management, etc.
• Usability - The RBS software is ready to use system. The users
will feel easy to use the system without much technical
expertise.
• Security - This system provides acts control to avoid
unauthorized Secret login to the system. The system also cates
the staff level to access to some of these admin part.
• Reliability. The restaurant billing system provides effective
method to maintain the back end of the system. All the orders
are managed by this system effectively,
• Scalability-It has the capacity to handle a growing amount of
work and its potential to be enlarged in order to accommodate
that growth.
FEASIBILITY STUDY
The feasibility study is carried out to test whether the proposed
system is worth being implemented. Feasibility study is a test of
system proposed regarding its work ability, its impact on the
organization to meet user needs and effective use of resources. It
is usually carried out by a small number of people who are
familiar with the information system techniques, understand the
part of the business or organization that will be involved or
affected by the project and are skilled in the system analysis and
design process.
All projects are feasible if they have unlimited resources and
infinite time. But the development of software is plagued by the
scarcity of resources and difficult delivery rates. It is necessary
and prudent to evaluate the feasibility of a project at the earliest
possible time.
The key consideration involved in the feasibility study are:
1. Technical feasibility
2. Economic feasibility
3. Operational feasibility
4. Schedule feasibility
1. Technical feasibility
Technical feasibility counters on the existing computer system
(hardware, software) and to what extent it can support the
proposed system. The technologies used in this project are:
Software:
Front End - Language used: Python, Back End-SQL System-
Windows XP and higher. Our system requires window operating
system which is easily available.
Hardware:
Intel based processor run computer system, which have
keyboard and mouse as input devices.
• This has been decided for the case of availability and up-
gradation.
2. Economic feasibility
This feasibility study is to determine the benefits and savings
that are expected from a system and compare it with its costs. If
a benefit outweighs costs, then the decision is made to design
and implement the system. Otherwise further alterations are
made in the proposed system. Some of the costs to be considered
are:
Manpower cost
Hardware and software cost
3. Operational feasibility
People are inherently resistant to change and software or
applications have been known to facilitate change. In this
project, a technical team is required to configure the software.
Technical background on Java, database is important.
For users/customers, a short seminar or demo can be given so
that they will be familiar with the software. They do not require
much technical expertise to use HBS software.
IMPLEMENTATION
ARCHITECTURE OR FLOW DIAGRAM
USE-CASE DIAGRAM
This is use-case diagram is a graphical depiction of the
interactions among the elements of Restaurant Billing System. It
represents the methodology used in system analysis to identify,
clarify and organize system requirements of restaurant billing
System. The main actors of Restaurant Billing System in this
use case diagram are: -Service Manager and Customer who
performs different types of use cases such as adding customer
details, adding quantities for the items, generating tax, generates
the bill in bill area, view bill, save the bill, searches the bill.
SOURCE CODE
from tkinter import
import random
class Bill_App:
def __init__(self,root):
self.root = root
self.root.geometry("1300x700+0+0")
self.root maxsize(width= 1280,height=700)
self.root minsize(width = 1280,height=700)
self.root.title("Billing Software")
#====================Variables=========#
self.cus_name = String Var()
self.c_phoneString Var()
#For Generating Random Bill Numbers
x = random.randint(1000,9999)
self.c_bill_no = String Var()
#Setting Value to variable
self.c_bill_no.set(str(x))
self.Gobi Manchureian= IntVar()
self.Chilli Chicken = IntVar()
self.Chicken_Lolipop = IntVar()
self.Paneer Tikkas = IntVar()
self.Chicken Curry_Rice = IntVar()
self.Mutton Curry_Rice = IntVar()
self.Prawn Curry_Rice = IntVar()
self.Egg Curry_Rice = IntVar()
self.Butter_Naan IntVar()
self.Butter_Roti = IntVar()
self.Cheese Garlic_Naan = IntVar()
self.Keema_Naan = IntVar()
self. Channa_Masala = IntVar()
self.Kadhai_Paneer = IntVar()
self.Mushroom_Curry = IntVar()
self.Mutton_Chicken = IntVar()
self.Mutton_Biryani = IntVar()
self.Chicken_Biryani = IntVar()
self.Egg Veg Biryani = IntVar()
self. JeeraSteamed Rice = IntVar()
self. Water Bottle = IntVar()
self. SaltSweet_Lassi = IntVar()
self. Juices = IntVar()
self. Lemon_Soda Water = IntVar()
self.total_bill= String Var()
###################################
bg_color="#8B7D6B"
fg_color="white"
Ibl_color="white"
#Title of App
title = Label(self.root,text="RESTAURANT BILLING
SYSTEM ",bd = 12,relief=GROOVE,fg = fg_color,bg =
bg_color,font=("times new roman",30,"bold"),pady =
3).pack(fill=X)
#=======Customers Frame==========#
F1 LabelFrame(text = "Customer Details", font = ("time
new roman", 12,"bold"),fg = "gold",bg= bg_color,relief =
GROOVE,bd = 10)
Fl.place(x=0,y= 80,relwidth = 1)
#============Customer Name============#
cname_lbl = Label(F1,text="Customer Name",bg =
bg_color,fg = fg_color, font=("times new roman", 15,
"bold")).grid(row=0,column=0,padx = 10,pady = 5)
cname_en =Entry(F1,bd = 8,relief = GROOVE,textvariable
= self.cus_name)
cname_en.grid(row=0,column = 1,ipady = 4,ipadx=30,pady
= 5)
#============Customer Phone===============#
cphon_lbl = Label(F1,text = "Phone No",bg bg_color,fg
fg_color,font = ("times new roman",15,"bold")).grid(row=
0,column = 2,padx = 20)
cphon_en = Entry(F1,bd = 8,relief = GROOVE,textvariable
= self.c_phone)
cphon_en.grid(row=0,column=3,ipady = 4,ipadx=30,pady =
5)
#========Customer Bill No=========#
cbill_lbl = Label(F1,text = "Bill No.",bg= bg_color,fg =
fg_color,font = ("times new roman",15,"bold"))
cbill_lbl.grid(row=0,column=4,padx = 20)
cbill_en = Entry(F1,bd = 8,relief= GROOVE,textvariable =
self.c_bill_no)
cbill_en.grid(row=0,column=5,ipadx = 30,ipady = 4.pady =
5
#============Starters=========#
F2 = LabelFrame(self.root,text = 'Straters', bd = 10,relief =
GROOVE,bg= bg_color,fg = "gold",font = ("times new
roman",13,"bold"))
F2.place(x = 5,y=180,width=325,height=220)
gobhi_lbl Label(F2,font = ("times new roman",12,"bold"),fg
= lbl_color,bg bg_color,text = "Gobhi Manchureian")
gobhi_lbl.grid(row=0,column=0,padx = 5,pady = 10)
gobhi_en =Entry(F2,bd = 8,relief = GROOVE,textvariable
= self.Gobhi Manchureian)
gobhi_en.grid(row=0,column=1,ipady = 2,ipadx = 1)
face_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg bg_color,text = "Chilli
Chicken")
face_lbl.grid(row=1,column=0,padx = 5,pady = 10)
face_en=Entry(F2,bd = 8,relief= GROOVE,textvariable
= self.Chilli Chicken)
face_en.grid(row= 1,column= 1,ipady = 2,ipadx = 1)
wash_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg= bg_color,text = "Chicken
Lolipop")
wash_lbl.grid(row=2,column=0,padx = 5.pady = 10)
wash_en = Entry(F2,bd = 8,relief =
GROOVE,textvariable = self. Chicken_Lolipop)
wash_en.grid(row=2,column=1,ipady = 2,ipadx = 1)
hair_lbl = Label(F2,font=("times new
roman",12,"bold"),fg = lbl_color,bg= bg_color,text="Paneer
Tikkas") hair_lbl.grid(row=3,column=0,padx = 5.pady = 10)
hair_en =Entry(F2,bd=8,relief =
GROOVE,textvariable = self.Paneer Tikkas)
hair_en.grid(row=3,column= 1,ipady = 2,ipadx = 1)
F2 = LabelFrame(self.root,text = 'Specials', bd = 10,relief=
GROOVE,bg=bg_color,fg = "gold",font = ("times new
roman",13,"bold"))
F2.place(x = 5,y=400, width=325,height=380)
gobi_lbl = Label(F2, font = ("times new
roman",12,"bold"), fg = lbl_color,bg= bg_color,text = "Chicken
Curry Rice")
gobi_lbl.grid(row=0,column=0.padx = 5.pady = 10)
gobi_en=Entry(F2,bd=8,relief =
GROOVE,textvariable = self.Chicken Curry_Rice)
gobi_en.grid(row=0,column=1,ipady = 2,ipadx = 1)
face_lbl = Label(F2,font = ("times new
roman",12,"bold"),fg = lbl_color,bg = bg_color,text = "Mutton
Curry Rice")
face_lbl.grid(row= 1,column=0,padx = 5,pady = 10)
face_en=Entry(F2,bd=8,relief= GROOVE,textvariable
= self.Mutton_Curry_Rice)
face_en.grid(row= 1,column=1,ipady = 2,ipadx = 1)
wash_lbl = Label(F2,font = ("times new
roman",12,"bold"),fg = lbl_color,bg=bg_color,text = "Prawn
Curry Rice")
wash_lbl.grid(row=2,column=0,padx = 5.pady = 10)
wash_en = Entry(F2,bd = 8,relief =
GROOVE,textvariable = self.Prawn Curry_Rice)
wash_en.grid(row= 2,column = 1,ipady = 2,ipadx = 1)
hair_lbl = Label(F2,font = ("times new
roman",12,"bold"),fg = lbl_color,bg= bg_color,text = "Egg
Curry Rice")
hair_lbl.grid(row=3,column=0,padx=5.pady = 10)
hair_en = Entry(F2,bd = 8,relief =
GROOVE,textvariable = self.Egg Curry_Rice)
hair_en.grid(row=3,column=1,ipady = 2,ipadx = 1)
F2 = LabelFrame(self.root,text = "Main Course-
INDIAN BREADS',bd=10,relief= GROOVE,bg= bg_color,fg =
"gold",font = ("times new roman", 13, "bold"))
F2.place(x = 330,y=180,width = 325,height=220)
gobhi_lbl = Label(F2,font = ("times new
roman",12,"bold"),fg = lbl_color,bg = bg_color,text = "Butter
Naan")
gobhi_lbl.grid(row=0,column=0,padx=5.pady = 10)
gobhi_en =Entry(F2,bd = 8,relief =
GROOVE,textvariable = self Butter_Naan)
gobhi_en.grid(row=0,column=1,ipady = 2,ipadx = 1)
face_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg= bg_color,text = "Butter
Roti")
face_lbl.grid(row=1,column=0,padx = 5,pady = 10)
face_en =Entry(F2,bd = 8,relief =
GROOVE,textvariable = self. Butter_Roti)
face_en.grid(row=1,column=1,ipady = 2,ipadx = 1)
wash_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg bg_color,text = "Cheese
Garlic Naan")
wash_lbl.grid(row=2,column=0,padx = 5.pady = 10)
wash_en = Entry(F2,bd=8,relief=
GROOVE,textvariable = self. Cheese_Garlic_Naan)
wash_en.grid(row=2,column= 1,ipady = 2,ipadx = 1)
hair_lbl = Label(F2,font = ("times new roman",
12,"bold"),fg = lbl_color,bg= bg_color,text="Keema Naan")
hair_lbl.grid(row=3,column=0,padx=5,pady = 10)
hair_en=Entry(F2,bd = 8,relief =
GROOVE,textvariable = self.Keema_Naan)
hair_en.grid(row=3,column= 1,ipady = 2,ipadx = 1)
F2 = LabelFrame(self.root,text = 'MAIN COURSE -
VEG& NON VEG,bd = 10,relief = GROOVE,bg= bg_color,fg =
"gold",font = ("times new roman", 13, "bold"))
F2.place(x = 330,y=400, width=325,height=380)
Masala")
gobhi_lbl Label(F2,font = ("times new
roman",12,"bold"),fg = lbl_color,bg bg_color,text = "Channa
gobhi_lbl.grid(row=0,column=0,padx=5,pady = 10)
gobhi_en = Entry(F2,bd = 8,relief=
GROOVE,textvariable = self Channa_Masala)
gobhi_en.grid(row=0,column=1,ipady = 2,ipadx = 1)
face_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg=bg_color,text = "Kadhai
Paneer")
face_lbl.grid(row=1,column=0,padx = 5,pady = 10)
face_en=Entry(F2,bd = 8,relief=
GROOVE,textvariable = self.Kadhai_Paneer)
face_en.grid(row=1,column= 1,ipady = 2,ipadx = 1)
Curry")
wash_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg bg_color,text = "Mushroom
wash_lbl.grid(row=2,column=0,padx = 5,pady = 8)
wash_en = Entry(F2,bd = 8,relief=
GROOVE,textvariable = self. Mushroom_Curry)
wash_en.grid(row=2,column=1,ipady = 2,ipadx = 0)
hair_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg bg_color,text
="Mutton/Chicken")
hair_lbl.grid(row=3,column=0,padx=5,pady = 8)
hair_en = Entry(F2,bd=8,relief =
GROOVE,textvariable = self.Mutton_Chicken)
hair_en.grid(row=3,column=1,ipady = 2,ipadx = 0)
F2 = LabelFrame(self.root,text = 'Cold Beverages', bd
= 10,relief = GROOVE,bg bg_color,fg = "gold",font= ("times
new roman",13,"bold"))
F2.place(x=655,y=400,width=325,height=380)
gobhi_lbl = Label(F2,font = ("times new roman",
12,"bold"),fg = lbl_color,bg bg_color,text = "Water Bottle")
gobhi_lbl.grid(row=0,column=0.padx = 5.pady = 10)
gobhi_en = Entry(F2,bd = 8,relief =
GROOVE,textvariable = self.Water Bottle)
gobhi_en.grid(row=0,column=1,ipady = 2,ipadx = 1)
face_lbl = Label(F2, font = ("times new
roman",12,"bold"),fg = lbl_color,bg =
bg_color,text="Salty/Sweet Lassi")
face_lbl.grid(row=1,column=0,padx = 5,pady = 10)
face_en=Entry(F2,bd = 8,relief=
GROOVE,textvariable = self. SaltSweet_Lassi)
face_en.grid(row=1,column=1,ipady = 2,ipadx = 1)
wash_lbl = Label(F2,font = ("times new roman",
12,"bold"),fg = lbl_color,bg= bg_color,text = "Juices")
wash_lbl.grid(row=2,column=0,padx = 5,pady = 8)
wash_enEntry(F2,bd = 8,relief=
GROOVE,textvariable = self.Juices)
wash_en.grid(row=2,column=1,ipady = 2,ipadx = 0)
hair_lbl.Label(F2,font = ("times new
roman",12,"bold"),fg = lbl_color,bg bg_color,text = "Lemon
Soda/Water")
hair_lbl.grid(row=3,column=0,padx=5,pady = 8)
hair_en =Entry(F2,bd=8,relief =
GROOVE,textvariable = self.Lemon_Soda Water)
hair_en.grid(row=3,column=1,ipady = 2,ipadx = 0
#=============Bill Area===============#
F3= Label(self.root,bd = 10,relief = GROOVE)
F3.place(x=960,y=180,width=325,height=450)
#=================#
bill_title = Label(F3,text = "Bill Area",font =
("Lucida",13,"bold"),bd=7,relief = GROOVE)
bill_title.pack(fill = X)
#=================#
scroll_y Scrollbar (F3, orient = VERTICAL)
self.txt = Text(F3,yscrollcommand = scroll_y.set)
scroll_y.pack(side = RIGHT, fill=Y)
scroll_y.config(command = self.txt.yview)
self.txt.pack(fill=BOTH, expand = 1)
#===========Buttons Frame==============#
F4= LabelFrame(self.root,text='Bill Menu',bd = 10,relief =
GROOVE,bg bg_color,fg = "gold",font = ("times new
roman",13,"bold"))
F4.place(x = 0,y=600,relwidth=1.height = 145)
cosm_lbl = Label(F4, font = ("times new roman",
15,"bold"),fg = lbl_color,bg = bg_color,text="Total")
cosm_lbl.grid(row=0,column=0,padx = 10,pady = 0)
cosm_en = Entry(F4,bd = 8,relief = GROOVE,textvariable
= self.total_bill)
cosm_en.grid(row=0,column= 1,ipady = 2,ipadx = 5)
#==================#
genbill_btn=Button (F4,text="Generate Bill",bg
bg_color,fg fg_color,font=("lucida",12,"bold"),bd =7,relief=
GROOVE,command = self.bill_area)
genbill_btn.grid(row=0,column=2,ipadx = 20,padx = 30)
clear_btn = Button(F4,text="Clear", bg = bg_color,fg =
fg_color,font=("lucida",12,"bold"),bd = 7,relief=
GROOVE.command = self.clear)
clear_btn.grid(row=0,column=3,ipadx = 20.padx=30)
#==============#
exit_btn = Button (F4,text="Exit",bgbg_color,fg
fg_color,font=("lucida",12,"bold"),bd = 7,relief =
GROOVE.command = self.exit)
exit_btn.grid(row=0,column=4,ipadx=20,padx=30)
#Function to get total prices
def total(self):
#=============Total#
sm=0
sm = (sm+
(self.Gobhi Manchureian.get() * 189
(self.Chilli Chicken.get() * 240)+
(self.Chicken_Lolipop.get() * 240)+
(self.Paneer Tikkas.get() * 200)+
(self.Chicken Curry_Rice.get()*300)+
(self.Mutton_Curry_Rice.get()*350)+
(self.Prawn Curry_Rice.get()*300)+
(self.Egg Curry_Rice.get() * 400)+
(self.Butter_Naan.get()) *45)+
(self.Butter_Roti.get()*35)+
(self.Cheese Garlic_Naan.get() * 80)+
(self.Keema Naan.get() * 50)+
(self.Channa_Masala.get() * 160)+
(self.Kadhai_Paneer.get() * 240)+
(self.Mutton_Chicken.get() * 280)+
(self.Mutton_Biryani.get()) *320)+
(self.Chicken Biryani.get() * 270)+
(self.EggVeg Biryani.get() * 200)+
(self.JeeraSteamed Rice.get() * 150)+
(self.Water Bottle.get() * 20)+
(self.SaltSweet_Lassi.get() * 40)+
(self.Juices.get()*80)+
(self.Lemon_Soda Water.get()*45)
self.total_bill.set("Rs. "+str(sm))
return sm
#Function For Text Area
def welcome_soft(self):
self.txt.delete('1.0',END)
self.txt.insert(END," Welcome To Restaurant \n")
self.txt.insert(END,f"\nBill No.: (str(self.c_bill_no.get())}")
self.txt.insert(END,f"\nCustomer Name:
{str(self.cus_name.get())}")
self.txt.insert(END,f"\nPhone No. :
{str(self.c_phone.get())}")
self.txt.insert(END,"\
n=================================")
self.txt.insert(END,"\nProduct Qty Price")
self.txt.insert(END,"\n=========”)
#Function to clear the bill area
def clear(self):
self.txt.delete('1.0',END)
#Add Product name, qty and price to bill area
def bill_area(self):
self.welcome_soft()
if self.Gobhi Manchureian.get() != 0:
self.txt.insert(END,f"\nGobhiManchureian
{self.Gobhi Manchureian.get()}{self.Gobhi Manchureian.get() *
189}")
if self.Chilli Chicken.get() != 0:
self.txt.insert(END,f"\nChilliChicken
{self.Chilli Chicken.get()} {self.Chilli Chicken.get() * 240}")
if self.Chicken_Lolipop.get() != 0:
self.txt.insert(END,f"\nChickenLolipop
{self.Chicken_Lolipop.get()}
{self.Chicken_Lolipop.get()*240}")
if self.Paneer Tikkas.get() != 0:
self.txt.insert(END,f"\nPaneer Tikkas
{self.Paneer Tikkas.get()}{self Paneer Tikkas.get() * 200}")
if self.Chicken Curry_Rice.get() != 0:
self.txt.insert(END,f"\nChickenCurryRice {self
Chicken Curry_Rice.get()} {self.Chicken
Curry_Rice.get()*300}")
if self.Mutton Curry_Rice.get() != 0:
self.txt.insert(END,f"\nMutton CurryRice
{self.Mutton Curry_Rice.get()}{self. Mutton
Curry_Rice.get()*350}")
if self.Prawn Curry_Rice.get() != 0:
self.txt.insert(END,f"\nPrawnCurryRice
{self.Prawn Curry_Rice.get()}{self.Prawn
Curry_Rice.get()*300}")
if self.Egg Curry_Rice.get() != 0:
self.txt.insert(END,f"\nEgg CurryRice
{self.Egg Curry_Rice.get()} {self.Egg Curry_Rice.get()400")
if self.Butter_Naan.get() != 0:
self.txt.insert(END,f"\nButterNaan
{self.Butter_Naan.get()}{self.Butter_Naan.get()*45}")
if self. Butter_Roti.get() != 0:
self.txt.insert(END,f"\nButterRoti {self.Butter
Roti.get()} {self.Butter_Roti.get()*35}")
if self.Cheese Garlic_Naan.get() != 0:
self.txt.insert(END,f"\nCheeseGarlicNaan
{self.Cheese Garlic_Naan.get()}{self.Cheese Garlic_Naan.get()
* 80}")
if self.Keema_Naan.get() != 0:
self.txt.insert(END,f"\nKeemaNaan
{self.Keema Naan.get()}{self.Keema Naan.get()*50}")
if self.Channa_Masala.get() != 0:
self.txt.insert(END,f"\nChannaMasala
{self.Channa_Masala.get()}{self.Channa_Masala.get()*160}")
if self.Kadhai_Paneer.get() != 0:
self.txt.insert(END,f"\nKadhaiPaneer {self.
Kadhai_Paneer.get()}{self. Kadhai_Paneer.get()*240}")
if self.Mutton_Chicken.get() != 0:
self.txt.insert(END,f"\nMuttonChicken
{self.Mutton_Chicken.get()} {self
Mutton_Chicken.get()*280}")
if self.Mutton_Biryani.get() != 0:
self.txt.insert(END,f"\nMuttonBiryani {self.
Mutton_Biryani.get()}{self.Mutton_Biryani.get()*320}")
if self.Chicken Biryani.get() != 0:
self.txt.insert(END,f" \nChicken Biryani{self
Chicken Biryani.get()}{self.Chicken Biryani.get()270}")
if self.EggVeg Biryani.get() != 0:
self.txt.insert(END,f"\nEgg/VegBiryani{self
EggVeg Biryani.get()}{self.EggVeg Biryani.get() *200}")
if self.JeeraSteamed Rice.get() != 0:
self.txt.insert(END,f"\nJeera/SteamedRice{self.JeeraSteamed
Rice.get() * 150}") if self. Water Bottle.get() != 0:40}")
if self.Water_Bottle.get() != 0:
self.txt.insert(END,f"\nWaterBottle {self.
Water_Bottle.get()} {self.Water_Bottle.get() * 20}")
if self. SaltSweet_Lassi.get() != 0:
self.txt.insert(END,f"\nSaltSweetLassi
{self.SaltSweet_Lassi.get()}{self.SaltSweet_Lassi.get()*40
if self.Juices.get() != 0:
self.txt.insert(END,f"\nJuices
{self.Juices.get()}{self.Juices.get() * 80}")
if self.Lemon_Soda Water.get() != 0:
self.txt.insert(END,f"\nLemonSoda/Water
(self.Lemon_Soda Water.get()} {self Lemon_Soda
Water.get()*45}")
self.txt.insert(END,"\
n=============================================
==========")
self.txt.insert(END,f"\n Total: (self.total()}")
#Function to exit
def exit(self):
self. root.destroy ()
#Function To Clear All Fields
root = Tk()
object = Bill_App(root)
root.mainloop()
OUTPUT
Screen shot1: -Initially the application starts
Screen shot2: - Taking the order from user
Screen shot 3: - After clicking generate bill
Screen shot 4: -After clicking the clear button
CONCLUSION
The urge for the digital restaurant management systems is
increasing day by date. Restaurant Billing System Using Python
is a perfect solution for this. Through this the ease of access and
flexibility of the day to day works in the restaurant is made
simpler. The features such as bill number, CGST and SGST
make this software user friendly. Both the management side and
worker site can manage the data easily using such a system. It is
very good and reliable system which can be in corporate to the
chain of hotels so can easily maintained and addressed.
FUTURE WORK
In future, this application can be updated with some more food
items. Many other latest features will be added. Project will
surely be enhanced with respect to looks and
appearance and also as per user requirements. Many
more functionalities will be added. Some enhancement
can also be done with calculator. For now, this application
generates the bill but with respect to future application it will be
enhanced that it will also print a bill. It can also be used on a
large scale. Many more modification can do with menu or prices
or tax as well. It will be easy to use and bug free to all future or
upcoming users. This can also be enhanced in future as per
customer requirements. Many more features can be added. This
will surely help users instead of making a bill manually.