Food Booking System
Food Booking System
SESSION–2023-24
PROJECT FILE
03 PROPOSED SYSTEM
06 FLOW CHART
07 NEED OF COMPUTERIZATION
09 SOURCE CODE
10 PYTHON CODE
11 OUTPUT SCREEN
12 TESTING
14 BIBLIOGRAPHY
INTRODUCTION
The main objective of the python project on
Food ordering is to manage the details of
booking, menu payments, and order.
PLANNING PHASE
The planning phase is the most critical step in completing
development, acquisition, and maintenance projects. Careful planning,
particularly in the early stages of a project, is necessary to coordinate
activities and manage project risks effectively. The depth and
formality of project plans should be commensurate with the
characteristics and risks of a given project. Project plans refine the
information gathered during the initiation phase by further
identifying the specific activities and resources required to complete a
project.
A critical part of a project manager' sjob is to coordinate discussions
between user, audit, security, design, development, and network
personnel to identify and document as many functional, security, and
network requirements as possible. During this phase, a plan is
developed that documents the approach to be used and includes a
discussion of methods, tools, tasks, resources, project schedules, and
user input. Personnel assignments, costs, project schedule, and target
dates are established.
A Project Management Plan is created with components related to
acquisition planning, configuration management planning, quality
assurance planning, concept of operations, system security,
verification and validation, and systems engineering management
planning.
REQUIREMENTS ANALYSIS PHASE
This phase formally defines the detailed functional user requirements
using high-level requirements identified in the Initiation, System
Concept, and Planning phases. It also delineates the requirements in
terms of data, system performance, security, and maintainability
requirements for the system. The requirements are defined in this
phase to a level of detail sufficient for systems design to proceed. They
need to be measurable, testable, and relate to the business need or
opportunity identified in the Initiation Phase. The requirements that
will be used to determine acceptance of the system are captured in
the Test and Evaluation Master Plan.
The purposes of this phase are to:
Further define and refine the functional and data requirements
and document them in the Requirements Document,
Complete business process reengineering of the functions to be
supported (i.e., verify what information drives the business
process, what information is generated, who generates it, where
does the information go, and who processes it),
Develop detailed data and process models (system inputs,
outputs, and the process.
Develop the test and evaluation requirements that will be used to
determine acceptable system performance.
DESIGN PHASE
The design phase involves converting the informational, functional,
and network requirements identified during the initiation and
planning phases into unified design specifications that developers use
to scriptprograms during the development phase. Program designs
are constructed in various ways. Using a top-down approach,
designers first identify and link majorprogram components and
interfaces, then expand design layouts as they identify and link
smaller subsystems and connections. Using a bottom-up approach,
designers first identify and link minor program components and
interfaces, then expand design layouts as they identify and link larger
systems and connections. Contemporary design techniques often use
prototyping tools that build mock-up designs of items such as
application screens, database layouts, and system architectures. End
users, designers, developers, database managers, and network
administrators should review and refine the prototyped designs in an
iterative process until they agree on an acceptable design. Audit,
security, and quality assurance personnel should be involved in the
review and approval process. During this phase, the system is
designed to satisfy the functional requirements identified in the
previous phase. Since problems in the design phase could be very
expensive to solve in the later stage of the software development, a
variety of elements are considered in the design to mitigate risk.
These include:
Identifying potential risks and defining mitigating design features.
Performing a security risk assessment.
Developing a conversion plan to migrate current data to the new
system. Determining the operating environment.
Defining major subsystems and their inputs and outputs. Allocating
processes to resources.
Preparing detailed logic specifications for each software module. The
result is a draft System Design Document which captures the
preliminary design for the system.
Everything requiring user input or approval is documented and
reviewed by the user. Once these documents have been approved by
the Agency CIO and Business Sponsor, the final System Design
Document is created to serve as the Critical/Detailed Design for the
system.
This document receives a rigorous review byAgency technical and
functional representatives to ensure that it satisfies the business
requirements.. Concurrent with the development of the system
design, the Agency Project Manager begins development of the
Implementation Plan,Operations and Maintenance Manual,and the
Training Plan.
DEVELOPMENT PHASE
The development phase involves converting design specifications into
executable programs. Effective development standards include
requirements that programmers and other project participants
discuss design specifications before programming begins. The
procedures help ensure programmers clearly understand program
designs and functional requirements. Programmers use various
techniques to develop computer programs. The large transaction
oriented programs associated with financial institutions have
traditionally been developed using procedural programming
techniques. Procedural programming involves the line-by-line
scripting of logical instructions that are combined to form a program.
Effective completion of the previous stages is a key factor in the
success of the Development phase. The Development phase consists
of:
Translating the detailed requirements and design into system
components.
Testing individual elements (units) for usability.
Preparing for integration and testing of the IT system.
IMPLEMENTATION PHASE
This phase is initiated after the system has been tested and accepted
by the user. In this phase, the system is installed to support the
intended business functions. System performance is compared to
performance objectives established during the planning phase.
Implementation includes user notification, user training, installation
of hardware, installation of software onto production computers, and
integration of the system into daily work processes. This phase
continues until the system is operating in production in accordance
with the defined userrequirements.
DBMS:
RELATIONAL MODEL:
It's based on the concept on relation. Relation is the table
that consists of rows and columns. The rows of the table
are called tuple and the columns of the table are called
attribute. Numbers of rows in the table is called as
cardinality. Number of columns in the table is called as
degree.
HIERARCHICAL MODEL:
In this type of model, we have multiple records for each
record. A particular record has one parent record. No
chide record can exist without parent record. In this, the
records are organized in tree.
NETWORK MODEL:
In this, the data is represented by collection of records
and relationship is represented by (ink or association.
CHARACTERISTICS OF DBMS:
• It reduces the redundancy
• Reduction of data in inconsistency
• Data sharing
• Data standardization
DIFFERENT TYPES OF FILES: -BASED ON ACCESS:
• Sequential file
• Serial file
• Random (direct access) file BASED ON STORAGE:-
• Text file
• Binary File
NEED OF COMPUTERISATION
Over the decades computers and food bookings have
developed gradually, changed with time. But nobody
knew that a time will come when both these fields will
complement each other so well. Today food booking has
reached new heights by computer aided of design. As a
result of which, computer industry has got its new
customer. Computer technology is making waves in the
food booking zone. Computers are a vital component of
the food booking counters. Computer aided design (CAD)
programs reduce the demand for manual sketches. New
software.
Programs continue to replace old manual skills. Those
who lag in math can now breathe a little easier. Manually
figuring of food insists that knowledge. Software
programs constantly evolve. A program used today may
be obsolete within several years. Being trained on today's
software does not guarantee it will be used when you are
ready to go out into the field. Understanding calculations
is timeless, as is computer competency. Software,
however, shifts rapidly.
ADVANTAGES
1. it generates the report on sales, discounts and menu.
mydb = mysql.connector.connect(host="localhost",
user="root", password="123@123#")
#creating DB
mycursor = mydb.cursor()
mycursor.execute("create database if not exists food1")
mycursor.execute("use food1")
#creating Tables
# main COde
def Customer():
L = []
c_id = int(input("Enter the customer ID number: "))
L.append(c_id)
name = input("Enter the Customer Name: ")
L.append(name)
cphone = int(input("Enter customer phone number: "))
L.append(cphone)
payment = int(input("Enter payment method (1 for credit
card, 2 for Debit Card): "))
L.append(payment)
pstatus = input("Enter the payment status: ")
L.append(pstatus)
email = input("Enter the email id: ")
L.append(email)
orderid = input("Enter orderid: ")
L.append(orderid)
date = input("Enter the Date: ")
L.append(date)
cust = (L,)
sql = "INSERT INTO customer (c_id, name, cphone, payment,
pstatus, email, orderid, date) VALUES (%s, %s, %s, %s, %s, %s,
%s, %s)"
mycursor.execute(sql, cust)
mydb.commit()
def Employee():
L = []
Emp_id = int(input("Enter the Employee id: "))
L.append(Emp_id)
ename = input("Enter the Employee Name: ")
L.append(ename)
emp_g = input("Enter Employee Gender: ")
L.append(emp_g)
eage = int(input("Enter Employee age: "))
L.append(eage)
emp_phone = int(input("Enter employee phone number: "))
L.append(emp_phone)
pwd = input("Enter the password: ")
L.append(pwd)
EMP = tuple(L) # Convert the list to a tuple
sql = "INSERT INTO Employee (Emp_id, ename, emp_g, eage,
emp_phone, pwd) VALUES (%s, %s, %s, %s, %s, %s)"
mycursor.execute(sql, EMP)
mydb.commit()
def Food():
L = []
Food_id = int(input("Enter the Food id: "))
L.append(Food_id)
Foodname = input("Enter the Food Name: ")
L.append(Foodname)
Food_size = input("Enter Food size: ")
L.append(Food_size)
prize = int(input("Enter Prize of Food: "))
L.append(prize)
Food = (L,)
sql = "INSERT INTO Food (Food_id, Foodname, Food_size,
prize) VALUES (%s, %s, %s, %s)"
mycursor.execute(sql, Food)
mydb.commit()
def OrderFood():
L = []
Orderf_id = int(input("Enter the Food Order id: "))
L.append(Orderf_id)
C_id = int(input("Enter the Customer id: "))
L.append(C_id)
Emp_id = int(input("Enter Employee id: "))
L.append(Emp_id)
Food_id = int(input("Enter Food id: "))
L.append(Food_id)
Food_qty = int(input("Enter Qty: "))
L.append(Food_qty)
Total_price = int(input("Enter Total_price: "))
L.append(Total_price)
OrderFood = tuple(L) # Convert the list to a tuple
sql = "INSERT INTO OrderFood (Orderf_id, C_id, Emp_id,
Food_id, Food_qty, Total_price) VALUES (%s, %s, %s, %s, %s,
%s)"
mycursor.execute(sql, OrderFood)
mydb.commit()
def View():
print("Select the search criteria: ")
print("1. Employee")
print("2. Customer")
print("3. Food")
print("4. Order Food")
ch = int(input("Enter the choice 1 to 4: "))
if ch == 1:
Emp_id = int(input("Enter Employee ID: "))
sql = "SELECT * FROM Employee WHERE Emp_id = %s"
mycursor.execute(sql, (Emp_id,))
res = mycursor.fetchall()
for x in res:
print(x)
elif ch == 2:
c_name = input("Enter Customer Name: ")
sql = "SELECT * FROM Customer WHERE name = %s"
mycursor.execute(sql, (c_name,))
res = mycursor.fetchall()
for x in res:
print(x)
elif ch == 3:
sql = "SELECT * FROM Food"
mycursor.execute(sql)
res = mycursor.fetchall()
for x in res:
print(x)
elif ch == 4:
food_id = int(input("Enter Food ID: "))
sql = "SELECT * FROM OrderFood WHERE Food_id = %s"
mycursor.execute(sql, (food_id,))
res = mycursor.fetchall()
for x in res:
print(x)
def MenuSet():
print("Enter 1 to Add Employee")
print("Enter 2 to Add Customer details")
print("Enter 3 to Add Food Details")
print("Enter 4 for Food Order")
print("Enter 5 to view Food booking")
try:
userInput = int(input("Please Select an above option: "))
except ValueError:
exit("\nHey! That's Not A Number")
else:
print("\n")
if userInput == 1:
Employee()
elif userInput == 2:
Customer()
elif userInput == 3:
Food()
elif userInput == 4:
OrderFood()
elif userInput == 5:
View()
else:
print("Enter correct choice. . .")
def runAgain():
runAgn = input("\nWant to run again? (Y/N): ")
while runAgn.lower() == 'y':
if platform.system() == "Windows":
os.system("cls")
else:
os.system("clear")
MenuSet()
runAgn = input("\nWant to run again? (Y/N): ")
MenuSet()
runAgain()
print("Good Bye... HAVE A NICE DAY")
OUTPUT SCREEN
TESTING
Software Testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or
service under test[1] with respect to the context in which it is
intended to operate. Software Testing also provides an objective,
independent view of the software to allow the business to appreciate
and understand the risks at implementation of the software. Test
techniques include, but are not limited to, the process of executing a
program or application with the intent of finding software bugs.
TESTING METHODS
Software testing methods are traditionally divided into black box
testing and white box testing. These two approaches are used to
describe the point of view that a test engineer takes when designing
test cases.
SPECIFICATION-BASED TESTING
Specification-based testing aims to test the functionality of software
according to the applicable requirements.[16] Thus, the tester inputs
data into, and only sees
the output from, the test object. This level of testing usually requires
thorough test cases to be provided to the tester, who then can simply
verify that for a given input, the output value (or behaviour), either
"is" or "is not" the same as the expected value specified in the test
case. Specification-based testing is necessary, but it is insufficient to
guard against certain risks
The black box tester has no "bonds" with the code, and a tester's
perception. is very simple: a code must have bugs. Using the principle,
"Ask and you shall receive," black box testers find bugs where
programmers don't. But, on the other hand, black box testing has been
said to be "like a walk in a dark labyrinth without a flashlight,"
because the tester doesn't know how the software being tested was
actually constructed.
That's why there are situations when (1) a black box tester writes
many test cases to check something that can be tested by only one test
case, and/or (2) some parts of the back end are not tested at all.
Therefore, black box testing has the advantage of "an unaffiliated
opinion," on the one hand, and the disadvantage of "blind exploring,"
on the other.
WHITE BOX TESTING
White box testing, by contrast to black box testing, is when the tester
has access to the internal data structures and algorithms (and the
code that implement these)
For example, the test designer can create tests to cause all statements
in the program to be executed at least once.
SOFTWARE REQUIREMENTS:
Windows OS
Python
BIBLIOGRAPHY
1. http://www.google.com/
2. http://en.wikipedia.org
3. http://computerscience.com
4. http://www.w3resource.com
5. http://www.slideshare.com
6. Computer Science with python by Sumita Arora