Project Report Online Food Delivery
Project Report Online Food Delivery
Project Report Online Food Delivery
Page 1
Application Name :- Food Order System
The "Online Food Ordering System" has been developed to override the problems prevailing in
the practicing manual system. This software is supported to eliminate and, in some cases, reduce
the hardships faced by this existing system. Moreover, this system is designed for the particular
need of the company to carry out operations in a smooth and effective manner.
The application is reduced as much as possible to avoid errors while entering the data. It also
provides error message while entering invalid data. No formal knowledge is needed for the user
to use this system. Thus, by this all it proves it is user-friendly. Online Food Ordering System, as
described above, can lead to error free, secure, reliable and fast management system. It can
assist the user to concentrate on their other activities rather to concentrate on the record
keeping. Thus, it will help organization in better utilization of resources.
Every organization, whether big or small, has challenges to overcome and managing the
information of Category, Food Item, Order, Payment, Confirm Order. Every Online Food
Ordering System has different Food Item needs; therefore, we design exclusive employee
management systems that are adapted to your managerial requirements. This is designed to
assist in strategic planning and will help you ensure that your organization is equipped with the
right level of information and details for your future goals. Also, for those busy executives
who are always on the go, our systems come with remote access features, which will allow
you to manage your workforce anytime, at all times. These systems will ultimately allow you to
better manage resources.
Page 2
Application Name :- Food Order System
The purpose of Online Food Ordering System is to automate the existing manual system
by the help of computerized equipment’s and full-fledged computer software, fulfilling their
requirements, so that their valuable data/information can be stored for a longer period with easy
accessing and manipulation of the same. The required software and hardware are easily available
and easy to work with.
Online Food Ordering System, as described above, can lead to error free, secure, reliable
and fast management system. It can assist the user to concentrate on their other activities rather
to concentrate on the record keeping. Thus it will help organization in better utilization of
resources. The organization can maintain computerized records without redundant entries. That
means that one need not be distracted by information that is not relevant, while being able to
reach the information.
The aim is to automate its existing manual system by the help of computerized
equipment’s and full-fledged computer software, fulfilling their requirements, so that their
valuable data/information can be stored for a longer period with easy accessing and manipulation
of the same. Basically the project describes how to manage for good performance and better
services for the clients.
Page 3
Application Name :- Food Order System
The main objective of the Project on Online Food Ordering System is to manage the
details of Food Item, Category, Customer, Order, Confirm Order. It manages all the information
about Food Item, Payment, Confirm Order, Food Item. The project is totally built at
administrative end and thus only the administrator is guaranteed the access. The purpose of the
project is to build an application program to reduce the manual work for managing the Food
Item, Category, Payment, Customer. It tracks all the details about the Customer, Order, Confirm
Order.
Provides the searching facilities based on various factors. Such as Food Item,
Customer, Order, Confirm Order
Online Food Ordering System also manage the Payment details online for Order details,
Confirm Order details, Food Item.
It tracks all the information of Category, Payment, Order etc
Manage the information of Category
Shows the information and description of the Food Item, Customer
To increase efficiency of managing the Food Item, Category
It deals with monitoring the information and transactions of Order.
Manage the information of Food Item
Editing, adding and updating of Records is improved which results in proper
resource management of Food Item data.
Manage the information of Order
Integration of all records of Confirm Order.
Page 4
Application Name :- Food Order System
It may help collecting perfect management in detail. In a very short time, the collection
will be obvious, simple and sensible. It will help a person to know the management of passed
year perfectly and vividly. It also helps in current all works relative to Online Food Ordering
System. It will be also reduced the cost of collecting the management & collection procedure
will go on smoothly.
Our project aims at Business process automation, i.e. we have tried to computerize
various processes of Online Food Ordering System.
In computer system the person has to fill the various forms & number of copies of the
forms can be easily generated at a time.
In computer system, it is not necessary to create the manifest but we can directly print it,
which saves our time.
To assist the staff in capturing the effort spent on their respective working areas.
To utilize resources in an efficient manner by increasing their productivity through
automation.
The system generates types of information that can be used for various purposes.
It satisfy the user requirement
Be easy to understand by the user and operator
Be easy to operate
Have a good user interface
Be expandable
Delivered on schedule within the budget.
Page 5
Application Name :- Food Order System
Food Item Management Module: Used for managing the Food Item details.
Page 6
Application Name :- Food Order System
All the fields such as Food Item, Customer, Confirm Order are validated and does
not take invalid values
Each form for Food Item, Category, Payment can not accept blank value fields
Avoiding errors in data
Controlling amount of input
Integration of all the modules/forms in the system.
Preparation of the test cases.
Preparation of the possible test data with all the validation checks.
Actual testing done manually.
Recording of all the reproduced errors.
Modifications done for the errors found during testing.
Prepared the test result scripts after rectification of the errors.
Functionality of the entire module/forms.
Validations for user input.
Checking of the Coding standards to be maintained during coding.
Testing the module with all the possible test data.
Testing of the functionality involving all type of calculations etc.
Commenting standard in the source files.
The software quality plan we will use the following SQA Strategy:
In the first step, we will select the test factors and rank them. The selected test factors
such as reliability, maintainability, portability or etc., will be placed in the matrix
according to their ranks.
The second step is for identifying the phases of the development process. The phase
should be recorded in the matrix.
The third step is that identifying the business risks of the software deliverables. The
risks will be ranked into three ranks such as high, medium and low.
Page 7
Application Name :- Food Order System
Page 8
Application Name :- Food Order System
Page 9
Application Name :- Food Order System
Page 10
Application Name :- Food Order System
Identification of need:
The old manual system was suffering from a series of drawbacks. Since whole of the
system was to be maintained with hands the process of keeping, maintaining and retrieving the
information was very tedious and lengthy. The records were never used to be in a systematic
order. there used to be lots of difficulties in associating any particular transaction with a
particular context. If any information was to be found it was required to go through the
different registers, documents there would never exist anything like report generation. There
would always be unnecessary consumption of time while entering records and retrieving records.
One more problem was that it was very difficult to find errors while entering the records. Once
the records were entered it was very difficult to update these records.
The reason behind it is that there is lot of information to be maintained and have to be
kept in mind while running the business .For this reason we have provided features
Present system is partially automated (computerized), actually existing system is quite laborious
as one has to enter same information at three different places.
Documents and reports that must be provided by the new system: there can also be few
reports, which can help management in decision-making and cost controlling, but since
these reports do not get required attention, such kind of reports and information were also
identified and given required attention.
Details of the information needed for each document and report.
The required frequency and distribution for each document.
Probable sources of information for each document and report.
With the implementation of computerized system, the task of keeping records in an
organized manner will be solved. The greatest of all is the retrieval of information, which
will be at the click of the mouse. So the proposed system helps in saving the time in
different operations and making information flow easy giving valuable reports.
Page 11
Application Name :- Food Order System
Feasibility Study:
After doing the project Online Food Ordering System, study and analyzing all the
existing or required functionalities of the system, the next task is to do the feasibility study for
the project. All projects are feasible - given unlimited resources and infinite time.
Feasibility study includes consideration of all the possible ways to provide a solution to the
given problem. The proposed solution should satisfy all the user requirements and should be
flexible enough so that future changes can be easily done based on the future upcoming
requirements.
A. Economical Feasibility
This is a very important aspect to be considered while developing a project. We decided
the technology based on minimum possible cost factor.
All hardware and software cost has to be borne by the organization.
Overall we have estimated that the benefits the organization is going to receive from the
proposed system will surely overcome the initial costs and the later on running cost for
system.
B. Technical Feasibility
This included the study of function, performance and constraints that may affect the
ability to achieve an acceptable system. For this feasibility study, we studied complete
functionality to be provided in the system, as described in the System Requirement Specification
(SRS), and checked if everything was possible using different type of frontend and backend
plaformst.
C. Operational Feasibility
No doubt the proposed system is fully GUI based that is very user friendly and all inputs
to be taken all self-explanatory even to a layman. Besides, a proper training has been conducted
to let know the essence of the system to the users so that they feel comfortable with new system.
As far our study is concerned the clients are comfortable and happy as the system has cut down
their loads and doing.
Page 12
Application Name :- Food Order System
In this phase, a logical system is built which fulfils the given requirements. Design phase of
software development deals with transforming the client’s requirements into a logically working
system. Normally, design is performed in the following in the following two steps:
The general tasks involved in the design process are the following:
Page 13
Application Name :- Food Order System
User Interface Design is concerned with the dialogue between a user and the computer. It
is concerned with everything from starting the system or logging into the system to the
eventually presentation of desired inputs and outputs. The overall flow of screens and messages
is called a dialogue
The following steps are various guidelines for User Interface Design:
2. The screen should be formatted so that various types of information, instructions and
5. Default values for fields and answers to be entered by the user should be
specified.
7. The system user should never get an operating system message or fatal error.
Page 14
Application Name :- Food Order System
The first step in the system development life cycle is the preliminary investigation to
determine the feasibility of the system. The purpose of the preliminary investigation is to
evaluate project requests. It is not a design study nor does it include the collection of details to
describe the business system in all respect. Rather, it is the collecting of information that helps
committee members to evaluate the merits of the project request and make an informed judgment
about the feasibility of the proposed project.
Benefit to Organization
The initial cost of setting up the system will include the cost of hardware software (OS,
add-on software, utilities) & labor (setup & maintenance). The same has to bear by the
organization.
Page 15
Application Name :- Food Order System
Running Cost
Besides, the initial cost the long term cost will include the running cost for the system
including the AMC, stationary charges, cost for human resources, cost for update/renewal of
various related software.
The users along with the administrator need to be trained at the time of implementation
of the system for smooth running of the system. The client will provide the training site.
We talked to the management people who were managing a the financial issues of the
center, the staff who were keeping the records in lots of registers and the reporting manager
regarding their existing system, their requirements and their expectations from the new
proposed system. Then, we did the system study of the entire system based on their
requirements and the additional features they wanted to incorporate in this system.
Reliable, accurate and secure data was also considered to be a complex task without this
proposed system. Because there was no such record for keeping track of all the activities, which
was done by the Online Food Ordering System on the daily basis.
The new system proposed and then developed by me will ease the task of the
organization in consideration. It will be helpful in generating the required reports by the staff,
which will help them to track their progress and services.
Thus, it will ease the task of Management to a great extent as all the major activities to be
performed, are computerized through this system.
Page 16
Application Name :- Food Order System
Project Category
Relational Database Management System (RDBMS) : This is an RDBMS based project which is
currently using MySQL for all the transaction statements. MySQL is an opensource RDBMS
System.
RDBMSs have become a predominant choice for the storage of information in new databases
used for financial records, manufacturing and logistical information, personnel data, and
much more since the 1980s. Relational databases have often replaced legacy hierarchical
databases and network databases because they are easier to understand and use. However,
relational databases have been challenged by object databases, which were introduced in an
attempt to address the object-relational impedance mismatch in relational database, and XML
databases.
Page 17
Application Name :- Food Order System
Implementation Methodology:
Model View Controller or MVC as it is popularly called, is a software design pattern for
developing web applications. A Model View Controller pattern is made up of the following three
parts:
Model - The lowest level of the pattern which is responsible for maintaining data.
View - This is responsible for displaying all or a portion of the data to the user.
Controller - Software Code that controls the interactions between the Model and View.
MVC is popular as it isolates the application logic from the user interface layer and supports
separation of concerns. Here the Controller receives all requests for the application and then
works with the Model to prepare any data needed by the View. The View then uses the data
prepared by the Controller to generate a final presentable response. The MVC abstraction can be
graphically represented as follows.
MVC (Model View Controller Flow) Diagram
Page 18
Application Name :- Food Order System
Project Planning:
1) Within the organization: How the project is to be implemented? What are various
constraints (time, cost, staff)? What is market strategy?
2) With respect to the customer: Weekly or timely meetings with the customer with
presentation on status reports. Customers feedback is also taken and further modification
and developments are done. Project milestones and deliverables are also presented to
the customer.
Select a project
o Testing techniques
o Documentation
Budget allocation
Project Estimates
o Cost
o Time
o Size of code
Page 19
Application Name :- Food Order System
o Duration
Resource Allocation
o Hardware
o Software
o Digital Library
Risk Management
o Risk avoidance
o Risk detection
Page 20
Application Name :- Food Order System
Software cost comprises a small percentage of overall computer-based system cost. There are a
number of factors, which are considered, that can affect the ultimate cost of the software such as
- human, technical, Hardware and Software availability etc.
The main point that was considered during the cost estimation of project was its sizing. In spite
of complete software sizing, function point and approximate lines of code were also used to
"size" each element of the Software and their costing.
The cost estimation done by me for Project also depend upon the baseline metrics collected
from past projects and these were used in conjunction with estimation variables to develop cost
and effort projections.
1) Effort Estimation - This refers to the total man-hours required for the development of the
project. It even includes the time required for doing documentation and user manual.
2) Hardware Required Estimation - This includes the cost of the PCs and the hardware
cost required for development of this project.
Page 21
Application Name :- Food Order System
Software Requirements:
Hardware Requirements:
Page 22
Application Name :- Food Order System
Project Profile
There has been continuous effort to develop tools, which can ease the process of software
development. But, with the evolving trend of different programming paradigms today’s software
developers are really challenged to deal with the changing technology. Among other issues,
software re-engineering is being regarded as an important process in the software development
industry. One of the major tasks here is to understand software systems that are already
developed and to transform them to a different software environment. Generally, this requires a
lot of manual effort in going through a program that might have been developed by another
programmer. This project makes a novel attempt to address the issued of program analysis and
generation of diagrams, which can depict the structure of a program in a better way. Today,
UML is being considered as an industrial standard for software engineering design process. It
essential provides several diagramming tools that can express different aspects/ characteristics of
program such as
Use cases: Elicit requirement from users in meaningful chunks. Construction planning is built
around delivering some use cases n each interaction basis for system testing.
Class diagrams: shows static structure of concepts, types and class. Concepts how users think
about the world; type shows interfaces of software components; classes shows implementation of
software components.
Interaction diagrams: shows how several objects collaborate in single use case.
State diagram: show how single object behaves across many use cases.
Activity diagram: shows behavior with control structure. Can show many objects over many
uses, many object in single use case, or implementations methods encourage parallel behavior,
etc.
Page 23
Application Name :- Food Order System
The end-product of this project is a comprehensive tool that can parse any vb.net
program and extract most of the object oriented features inherent in the program such as
polymorphism, inheritance, encapsulation and abstraction.
What is UML?
UML stands for Unified Modeling Language is the successor to the wave of Object
Oriented Analysis and Design (OOA&D) methods that appeared in the late 80’s. It most directly
unifies the methods of Booch, Rumbaugh (OMT) and Jacobson. The UML is called a modeling
language, not a method. Most methods consist at least in principle, of both a modeling language
and a process. The Modeling language is that notation that methods used to express design.
The notation is the graphical stuff; it is the syntax of the modeling language. For instance, class
diagram notation defines how items are concepts such as class, association, and multiplicity is
represented. These are:
Class Diagram: The class diagram technique has become truly central within object- oriented
methods. Virtually every method has included some variation on this technique. Class diagram is
also subject to the greatest range of modeling concept. Although the basic elements are needed
by everyone, advanced concepts are used less often. A class diagram describes the types of
objects in the system and the various kinds of static relationship that exist among them. There
are two principal kinds of static relationship:
Association
Subtype
Class diagram also show the attributes and operations of a class and the constraints that apply to
the way objects are connected.
Page 24
Application Name :- Food Order System
Aggregation: aggregation is the part of relationship. It is like saying a car has engine and
wheels as its parts. This sounds good, but difficult thing is considering, what is the difference is
aggregation and association.
Interaction: interaction diagrams are models that describes how groups of objects collaboration
in some behavior.
Typically, an interaction diagram captures the behavior a single use cases. The diagram
shows a number of example objects and the messages that are passed between these objects in
use cases. These are following approaches with simple use case that exhibits the following
behavior.
Objects can send a message to another. Each message is checks with given stock item.
There are two diagrams: Sequence and Collaboration diagram.
Package Diagram: One of the oldest questions in software methods is: how do you break
down a large system into smaller systems? It becomes difficult to understand and the changes we
make to them.
Structured methods used functional decomposition in which the overall system was
mapped as a function broken down into sub function, which is further broken down into sub
function and so forth. The separation of process data is gone, functional decomposition is gone,
but the old question is still remains. One idea is to group the classes together into higher-level
unit. This idea, applied very loosely, appears in many
Page 25
Application Name :- Food Order System
objects. In UML, this grouping mechanism is package. The term package diagram for a diagram
that shows packages of classes and the dependencies among them.
A dependency exists between two elements if changes to the definition of one element
may cause to other. With classes, dependencies exist for various reasons: one class sends a
message to another; one class has another as part of its data; one class mentions another as a
parameter to an operation. A dependency between two packages exists; and any dependencies
exist between any two classes in the package.
State diagram: State diagram are a familiar technique to describe the behavior of a system.
They describe all the possible states a particular object can get into and how the objects state
changes as a result of events that reach the objects. In most OO technique, state diagrams are
drawn for a single class to show the lifetime behavior of a singe object. There are many form of
state diagram, each with slightly different semantics. The most popular one used in OO
technique is based on David Harel’s state chart.
Page 26
Application Name :- Food Order System
PERT chart is organized for events, activities or tasks. It is a scheduling device that shows
graphically the order of the tasks to be performed. It enables the calculation of the critical path.
The time and cost associated along a path is calculated and the path requires the greatest amount
of elapsed time in critical path.
Implementation
Page 27
Application Name :- Food Order System
GANTT CHART
It is also known as Bar chart is used exclusively for scheduling purpose. It is a project
controlling technique. It is used for scheduling. Budgeting and resourcing planning. A Gantt is a
bar chart with each bar representing activity. The bars are drawn against a time line. The length
of time planned for the activity. The Gantt chart in the figure shows the Gray parts is slack time
that is the latest by which a task has been finished.
1-19 MAY 10 20-3 JUNE 10 6-25 JUNE 10 26-15 JULY 10 JULY 16 AUG 31
Specification
IMPLEMENTATION
Page 28
Application Name :- Food Order System
The use case model for any system consists of “use cases”. Use cases represent different
ways in which the system can be used by the user. A simple way to find all the use case of a
system is to ask the questions “What the user can do using the system?” The use cases partition
the system behavior into transactions such that each transaction performs some useful action
from the users’ point of view.
The purpose of the use case to define a piece of coherent behavior without reveling the
internal structure of the system. An use case typically represents a sequence of interaction
between the user and the system. These interactions consists of one main line sequence is
represent the normal interaction between the user and the system. The use case model is an
important analysis and design artifact (task).Use cases can be represented by drawing a use case
diagram and writing an accompany text elaborating the drawing.
In the use case diagram each use case is represented by an ellipse with the name of use
case written inside the ellipse. All the ellipses of the system are enclosed with in a rectangle
which represents the system boundary. The name of the system being moduled appears inside
the rectangle. The different users of the system are represented by using stick person icon. The
stick person icon is normally referred to as an Actor. The line connecting the actor and the use
cases is called the communication relationship. When a stick person icon represents an external
system it is annotated by the stereo type<<external system>>.
Page 29
Application Name :- Food Order System
Dataflow Diagram:
Data flow diagram is the starting point of the design phase that functionally
decomposes the requirements specification. A DFD consists of a series of bubbles joined by
lines. The bubbles represent data transformation and the lines represent data flows in the
system. A DFD describes what data flow rather than how they are processed, so it does not
hardware, software and data structure.
The data flow diagram is a graphical description of a system’s data and how to
Unlike details flow chart, DFDs don’t supply detail descriptions of modules that graphically
describe a system’s data and how the data interact with the system. Data flow diagram number of
symbols and the following symbols are of by DeMarco.
p roc e s s
D a ta s to re
S o u rc e /s in k
D a ta F lo w
D e M a rc o &
Y ourdon G a n e & S a rs o ns
s y m b o ls ymb ols
Page 30
Application Name :- Food Order System
This basic DFD can be then disintegrated to a lower level diagram demonstrating smaller steps
exhibiting details of the system that is being modeled.
On a DFD, data items flow from an external data source or an internal data store to an internal
data store or an external data sink, via an internal process. It is common practice to draw a
context-level data flow diagram first, which shows the interaction between the system and
external agents, which act as data sources and data sinks. On the context diagram (also known as
the Level 0 DFD’), the system's interactions with the outside world are modeled purely in terms
of data flows across the system boundary. The context diagram shows the entire system as a
single process, and gives no clues as to its internal organization.
This context-level DFD is next "exploded", to produce a Level 1 DFD that shows some of the
detail of the system being modeled. The Level 1 DFD shows how the system is divided into
sub-systems (processes), each of which deals with one or more of the data flows to or from an
external agent, and which together provide all of the functionality of the system as a whole.
The level 1 DFD is further spreaded and split into more descriptive and detailed description
about the project as level 2 DFD.The level 2 DFD can be a number of data flows which will
finally show the entire description of the software project.
Page 31
Application Name :- Food Order System
About ER Diagram:
E-R Model is a popular high level conceptual data model. This model and its variations are
frequently used for the conceptual design of database application and many database design tools
employ its concept.
A database that confirms to an E-R diagram can be represented by a collecton of tables in the
relational system. The mapping of E-R diagram to the entities are:
Attributes
Relations
o Many-to-many
o Many-to-one
o One-to-many
o One-to-one
Weak entities
The entities and their relationshops between them are shown using the following conventions.
The attributes shown as ovals are connected to the entities or relationship by lines.
Page 32
Application Name :- Food Order System
Page 33
Application Name :- Food Order System
Testing is vital for the success of any software. no system design is ever perfect. Testing is also carried in
two phases. first phase is during the software engineering that is during the module creation. second phase
is after the completion of software. this is system testing which verifies that the whole set of programs
hanged together.
In this technique, the close examination of the logical parts through the software are tested by cases that
exercise species sets of conditions or loops. all logical parts of the software checked once. errors that can
be corrected using this technique are typographical errors, logical expressions which should be executed
once may be getting executed more than once and error resulting by using wrong controls and loops.
When the box testing tests all the independent part within a module a logical decisions on their true and
the false side are exercised , all loops and bounds within their operational bounds were exercised and
internal data structure to ensure their validity were exercised once.
This method enables the software engineer to device sets of input techniques that fully exercise all
functional requirements for a program. black box testing tests the input, the output and the external data.
it checks whether the input data is correct and whether we are getting the desired output.
Alpha Testing:
Acceptance testing is also sometimes called alpha testing. Be spoke systems are developed for a single
customer. The alpha testing proceeds until the system developer and the customer agree that the provided
system is an acceptable implementation of the system requirements.
Beta Testing:
On the other hand, when a system isto be marked as a software product, another process called
beta testing is often conducted. During beta testing, a system is delivered among a
Page 34
Application Name :- Food Order System
number of potential users who agree to use it. The customers then report problems to the developers. This
provides the product for real use and detects errors which may not have been anticipated by the system
developers.
Unit Testing:
Each module is considered independently. it focuses on each unit of software as implemented in the
source code. it is white box testing.
Integration Testing:
Integration testing aims at constructing the program structure while at the same constructing tests to
uncover errors associated with interfacing the modules. modules are integrated by using the top down
approach.
Validation Testing:
Validation testing was performed to ensure that all the functional and performance requirements are met.
System Testing:
It is executing programs to check logical changes made in it with intention of finding errors. a system is
tested for online response, volume of transaction, recovery from failure etc. System testing is done to
ensure that the system satisfies all the user requirements.
Page 35
Application Name :- Food Order System
This phase of the systems development life cycle refines hardware and software specifications,
establishes programming plans, trains users and implements extensive testing procedures, to evaluate
design and operating specifications and/or provide the basis for further modification.
Technical Design
This activity builds upon specifications produced during new system design, adding detailed technical
specifications and documentation.
This activity prepares detailed test specifications for individual modules and programs, job streams,
subsystems, and for the system as a whole.
This activity encompasses actual development, writing, and testing of program units or modules.
User Training
This activity encompasses writing user procedure manuals, preparation of user training materials,
conducting training programs, and testing procedures.
Acceptance Test
A final procedural review to demonstrate a system and secure user approval before a system becomes
operational.
Installation Phase
In this phase the new Computerized system is installed, the conversion to new procedures is fully
implemented, and the potential of the new system is explored.
Page 36
Application Name :- Food Order System
System Installation
The process of starting the actual use of a system and training user personnel in its operation.
Review Phase
This phase evaluates the successes and failures during a systems development project, and to measure the
results of a new Computerized Transystem in terms of benefits and savings projected at the start of the
project.
Development Recap
A review of a project immediately after completion to find successes and potential problems in future work.
Post-Implementation Review
A review, conducted after a new system has been in operation for some time, to evaluate actual system
performance against original expectations and projections for cost-benefit improvements. Also identifies
maintenance projects to enhance or improve the system.
The unit testing done included the testing of the following items:
Page 37
Application Name :- Food Order System
After completing the Unit testing of all the modules, the whole system is integrated with all its
dependencies in that module. While System Integration, We integrated the modules one by one and tested
the system at each step. This helped in reduction of errors at the time of the system testing.
The System Testing done included the testing of the following items:
After the completion of system testing, the next following phase was the Acceptance Testing. Clients at
their end did this and accepted the system with appreciation. Thus, we reached the final phase of the
project delivery.
There are other six tests, which fall under special category. They are described below:
Peak Load Test: It determines whether the system will handle the volume of activities that occur
when the system is at the peak of its processing demand. For example, test the system by activating all
terminals at the same time.
Page 38
Application Name :- Food Order System
Storage Testing: It determines the capacity of the system to store transaction data on a disk or in
other files.
Performance Time Testing: it determines the length of time system used by the system to
process transaction data. This test is conducted prior to implementation to determine how long it takes
to get a response to an inquiry, make a backup copy of a file, or send a transmission and get a
response.
Recovery Testing: This testing determines the ability of user to recover data or re-start system
after failure. For example, load backup copy of data and resume processing without data or integrity
loss.
Procedure Testing: It determines the clarity of documentation on operation and uses of system by
having users do exactly what manuals request. For example, powering down system at the end of
week or responding to paper-out light on printer.
Human Factors Testing: It determines how users will use the system when processing data or
preparing reports.
Page 39
Application Name :- Food Order System
System Analysis:
System analysis is a process of gathering and interpreting facts, diagnosing problems and
the information about the Online Food Ordering System to recommend improvements on the
system. It is a problem solving activity that requires intensive communication between the
system users and system developers. System analysis or study is an important phase of any
system development process. The system is studied to the minutest detail and analyzed. The
system analyst plays the role of the interrogator and dwells deep into the working of the present
system. The system is viewed as a whole and the input to the system are identified. The outputs
from the organizations are traced to the various processes. System analysis is concerned with
becoming aware of the problem, identifying the relevant and decisional variables, analyzing and
synthesizing the various factors and determining an optimal or at least a satisfactory solution or
program of action. A detailed study of the process must be made by various techniques like
interviews, questionnaires etc. The data collected by these sources must be scrutinized to arrive
to a conclusion. The conclusion is an understanding of how the system functions. This system is
called the existing system. Now the existing system is subjected to close study and problem areas
are identified. The designer now functions as a problem solver and tries to sort out the
difficulties that the enterprise faces. The solutions are given as proposals. The proposal is then
weighed with the existing system analytically and the best one is selected. The proposal is
presented to the user for an endorsement by the user. The proposal is reviewed on user request
and suitable changes are made. This is loop that ends as soon as the user is satisfied with
proposal. Preliminary study is the process of gathering and interpreting facts, using the
information for further studies on the system. Preliminary study is problem solving activity that
requires intensive communication between the system users and system developers. It does
various feasibility studies. In these studies a rough figure of the system activities can be
obtained, from which the decision about the strategies to be followed for effective system study
and analysis can be taken.
Page 40
Application Name :- Food Order System
Page 41
Application Name :- Food Order System
Data Dictionary:
This is normally represented as the data about data. It is also termed as metadata some
times which gives the data about the data stored in the database. It defines each data term
encountered during the analysis and design of a new system. Data elements can describe files or
the processes.
= equivalent to
+ and
[] either/ or
() Optional entry
Following are some rules, which defines the construction of data dictionary
entries:
1. Words should be defined to understand for what they need and not the variable
need by which they may be described in the program .
2. Each word must be unique. We cannot have two definition of the same
client.
3. Aliases or synonyms are allowed when two or more enters shows the
same meaning. For example a vendor number may also be called as customer
number.
4. A self-defining word should not be decomposed. It means that the reduction of any
information in to subpart should be done only if it is really required that is it is not
easy to understand directly.
Data dictionary includes information such as the number of records in file, the frequency a
process will run, security factor like pass word which user must enter to get excess to the
information.
Page 42
Application Name :- Food Order System
Page 43
Application Name :- Food Order System
Page 44
Application Name :- Food Order System
Page 45
Application Name :- Food Order System
Page 46
Application Name :- Food Order System
Page 47
Application Name :- Food Order System
Page 48
Application Name :- Food Order System
Page 49
Application Name :- Food Order System
<!DOCTYPE html>
<html>
Page 50
Application Name :- Food Order System
<head>
{% load staticfiles %}
<meta charset="UTF-8">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css"
rel="stylesheet">
<!--Animation-->
<script src="/static/webapp/js/wow.min.js"></script>
</head>
<body>
<div class="container">
Page 51
Application Name :- Food Order System
</li>
<li class="nav-item">
</li>
</ul>
</div>
</a>
<span class="navbar-toggler-icon"></span>
</button>
</div>
{% if request.user.is_authenticated %}
Page 52
Application Name :- Food Order System
<li class="nav-item">
</li>
<li class="nav-item">
</li>
{% else %}
<li class="nav-item">
</li>
<li class="nav-item">
</li>
{% endif %}
</ul>
</div>
</div>
</nav>
<br>
<br>
<br>
Page 53
Application Name :- Food Order System
<br>
<div class="footer">
<div class="container-fluid">
</div>
</div>
</div>
</script>
<script>
new WOW().init();
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
Page 54
Application Name :- Food Order System
{% load staticfiles %}
<meta charset="UTF-8">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css"
rel="stylesheet">
<!--Animation-->
<script src="/static/webapp/js/wow.min.js"></script>
</head>
<body>
<div class="container-fluid">
Page 55
Application Name :- Food Order System
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
</div>
</a>
<span class="navbar-toggler-icon"></span>
</button>
Page 56
Application Name :- Food Order System
</div>
{% if request.user.is_authenticated %}
<li class="nav-item">
</li>
<li class="nav-item">
</li>
{% else %}
<li class="nav-item">
</li>
<li class="nav-item">
</li>
{% endif %}
</ul>
</div>
</div>
</nav>
Page 57
Application Name :- Food Order System
{% block body %}
{% endblock %}
<br>
<br>
<br>
<br>
<div class="footer">
<div class="container-fluid">
</div>
</div>
</div>
</script>
<script>
new WOW().init();
</script>
Page 58
Application Name :- Food Order System
</body>
</html>
<div class="form-group">
</div>
</div>
{% endfor %}
<!DOCTYPE html>
<html>
<head>
{% load staticfiles %}
<meta charset="UTF-8">
Page 59
Application Name :- Food Order System
<!--Animation-->
<script src="/static/webapp/js/wow.min.js"></script>
<style type="text/css">
.big-banner{
background-image: url('/static/webapp/images/slide_1.jpg');
.i-am-center{
.borders{
background-color: blue;
border-radius: 10px;
padding: 20px;
.wrapper {
min-height: 100%;
height: 100%;
Page 60
Application Name :- Food Order System
.footer, .push {
height: 155px;
</style>
</head>
<body>
<div class="container-fluid">
</li>
</ul>
</div>
</a>
Page 61
Application Name :- Food Order System
<span class="navbar-toggler-icon"></span>
</button>
</div>
<li class="nav-item">
</li>
</ul>
</div>
</div>
</nav>
<div class="jumbotron big-banner" style="height: 500px; width: 100%; padding- top:100px;" >
<div class="container">
<div class="row">
<div class="col">
</div>
<br>
Page 62
Application Name :- Food Order System
</div>
<div class="col">
</div>
<br>
</div>
</div>
</div>
</div>
</div>
<div class="content">
<div class="container">
<div class="dotted-line">
Page 63
Application Name :- Food Order System
</div>
</div>
<div class="i-am-center">
</div>
</div>
</div>
</div>
<label></label>
</div>
</div>
<label></label>
Page 64
Application Name :- Food Order System
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
<div class="top-restaurent-head">
<h3>Top Restaurants</h3>
</div>
<div class="row">
<div class="thumbnail">
<a href="">
</a>
</div>
</div>
<br>
Page 65
Application Name :- Food Order System
<div class="thumbnail">
<a href="">
</a>
</div>
</div>
<br>
<div class="thumbnail">
<a href="">
</a>
</div>
</div>
<br>
<div class="thumbnail">
<a href="">
</a>
</div>
Page 66
Application Name :- Food Order System
</div>
<br>
<div class="thumbnail">
<a href="">
</a>
</div>
</div>
</div>
</div>
<br>
<br>
<div class="top-cuisine-head">
<h3>Top Cuisines</h3>
</div>
<div class="row">
<div class="thumbnail">
<a href="">
Page 67
Application Name :- Food Order System
</a>
</div>
<h5 class="text-secondary"><strong>Pizza</strong></h5>
</div>
</div>
<div class="thumbnail">
<a href="">
</a>
</div>
<h5 class="text-secondary"><strong>Burger</strong></h5>
</div>
</div>
<div class="thumbnail">
<a href="">
</a>
Page 68
Application Name :- Food Order System
</div>
</div>
</div>
<div class="thumbnail">
<a href="">
</a>
</div>
<h5 class="text-secondary"><strong>Curry</strong></h5>
</div>
</div>
<div class="thumbnail">
<a href="">
</a>
</div>
<h5 class="text-secondary"><strong>trips</strong></h5>
</div>
Page 69
Application Name :- Food Order System
</div>
<div class="thumbnail">
<a href="">
</a>
</div>
</div>
</div>
<div class="thumbnail">
<a href="">
</a>
</div>
<h5 class="text-secondary"><strong>Fingers</strong></h5>
</div>
</div>
<div class="thumbnail">
Page 70
Application Name :- Food Order System
<h5 class="text-secondary"><strong>Cuisine</strong></h5>
</div>
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
<br>
<br>
<br>
<div class="footer">
<div class="container">
</div>
</div>
Page 71
Application Name :- Food Order System
</script>
<script>
new WOW().init();
</script>
</body>
</html>
{% extends 'webapp/base.html'%}
{% block body %}
<div class="row">
<div class="panel-body">
<br>
<br>
<br>
Page 72
Application Name :- Food Order System
<br>
{% if error_message %}
{% endif %}
<br>
{% csrf_token %}
<div class="form-group">
Username:
</label>
<div class="col-sm-6">
</div>
</div>
<div class="form-group">
Password:
</label>
<div class="col-sm-7">
</div>
</div>
Page 73
Application Name :- Food Order System
<div class="form-group">
</div>
</div>
</form>
</div>
<div class="panel-footer">
Don't have an account? <a href="{% url 'register' %}">Click here</a> to register.
</div>
</div>
</div>
</div>
</div>
<br>
<br>
{% endblock %}
{% extends 'webapp/base.html'%}
{% block body %}
<div class="container">
<p>
Page 74
Application Name :- Food Order System
<br/>
<br>
</font>
</p>
</div>
<br>
<div class="container">
</div>
<br>
<thead>
<th>Item Name</th>
<th>Category</th>
<th>Price</th>
<th>Add</th>
</thead>
{% for x in items %}
Page 75
Application Name :- Food Order System
<tr>
<td>{{x.0}}</td>
<td>{{x.1}}</td>
<td>₹ {{x.2}}</td>
{% if x.4 == "Open" %}
{% if x.5 > 0 %}
<td>
<div class="input-group-btn">
onclick="if(document.querySelector('#itemno{{x.3}}').innerHTML>0){
document.querySelector('#itemno{{x.3}}').innerHTML--;
minuscounter('{{x.3}}');
}">
</div>
<div class="input-group-btn">
onclick="
if(document.querySelector('#itemno{{x.3}}').innerHTML<{{x.5}}){
document.querySelector('#itemno{{x.3}}').innerHTML++;
pluscounter('{{x.3}}');
Page 76
Application Name :- Food Order System
</div>
</div>
</td>
{% else %}
<td>
NA
</td>
{% endif %}
{% else %}
<td>
Closed
</td>
{% endif %}
</tr>
{% endfor %}
</tr>
</table>
</div>
<br>
<script type="text/javascript">
function pluscounter(pk){
cart.push(pk);
console.log(cart);
Page 77
Application Name :- Food Order System
};
function minuscounter(pk){
if (cart!=[]){
cart.splice(removeindex, 1);
console.log(cart);
};
function storearray(){
if(cart.length === 0)
return false;
document.cookie = "cart="+cart+";Path=/";
document.cookie ="rest={{restid}};Path=/";
window.location = "/checkout/";
};
</script>
{% endblock %}
{% extends 'webapp/base.html'%}
Page 78
Application Name :- Food Order System
{% block body %}
<br>
<br>
<thead>
<th>Item Name</th>
<th>Quantity</th>
<th>Price</th>
</thead>
{% for x in items %}
<tr><td>{{x.0}}</td><td>{{x.1}}</td><td>₹ {{x.2}}</td></tr>
{% endfor %}
</table>
<br>
</span>
<br>
<br>
{% csrf_token %}
<span><strong>Delivery Address:</strong></span>
<br>
Page 79
Application Name :- Food Order System
<br>
<br>
</form>
</div>
{% endblock %}
{% extends 'webapp/base2.html' %}
{% block body %}
<div class="container">
</div>
</div>
<h5>Order Information</h5>
Page 80
Application Name :- Food Order System
<span>Items List:</span>
<div>
<thead>
<th>
Name
</th>
<th>
Quantity
</th>
<th>
Price
</th>
</thead>
{% for x in order.2 %}
<tr><td>{{x.0}}</td><td>{{x.1}}</td><td>₹{{x.2}}</td></tr>
{% endfor %}
</table>
</div>
</div>
<select name="orderstatus">
Page 81
Application Name :- Food Order System
{% if order.5 == 1 %}
<option value="2">Acknowledged</option>
<option value="3">Completed</option>
<option value="4">Dispatched</option>
<option value="5">Cancelled</option>
{% endif %}
{% if order.5 == 2 %}
<option value="1">Placed</option>
<option value="3">Completed</option>
<option value="4">Dispatched</option>
<option value="5">Cancelled</option>
{% endif %}
{% if order.5 == 3 %}
<option value="1">Placed</option>
<option value="2">Acknowledged</option>
<option value="4">Dispatched</option>
<option value="5">Cancelled</option>
{% endif %}
{% if order.5 == 4 %}
<option value="1">Placed</option>
<option value="2">Acknowledged</option>
<option value="3">Completed</option>
Page 82
Application Name :- Food Order System
<option value="5">Cancelled</option>
{% endif %}
{% if order.5 == 5 %}
<option value="1">Placed</option>
<option value="2">Acknowledged</option>
<option value="3">Completed</option>
<option value="4">Dispatched</option>
{% endif %}
</select>
</form>
</div>
<div class="clearfix"></div>
</div>
{% endfor %}
{% endblock %}
{% extends 'webapp/base.html'%}
{% block body %}
Page 83
Application Name :- Food Order System
<div class="container">
<br>
<br>
<br>
<br>
</div>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
{% endblock%}
{% extends 'webapp/base.html'%}
{% block body %}
Page 84
Application Name :- Food Order System
<br>
<div class="row">
<div class="panel-heading">
</div>
<br>
<div class="panel-body">
<div class="row">
<tbody>
<tr>
<td>User Name:</td>
<td>{{user.username}}</td>
</tr>
<tr>
<td>First Name:</td>
<td>{{user.customer.f_name}}</td>
Page 85
Application Name :- Food Order System
</tr>
<tr>
<td>Last Name:</td>
<td>{{user.customer.l_name}}</td>
</tr>
<tr>
<td>City:</td>
<td>{{user.customer.city}}</td>
</tr>
<td>Address:</td>
<td>{{user.customer.address}}</td>
</tr>
<tr>
<td>Email:</td>
<td><a href="#">{{user.email}}</a></td>
</tr>
<tr>
<td>Phone Number:</td>
<td>{{user.customer.phone}}
</td>
</tr>
</tbody>
Page 86
Application Name :- Food Order System
</table>
<div class="container">
<div class="row">
<div class="col">
</div>
<!--<div class="col">
</div>-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
{% endblock%}
{% extends 'webapp/base2.html'%}
{% block body %}
Page 87
Application Name :- Food Order System
<br>
</div>
<br>
<div class="row">
<div class="panel-heading">
</div>
<div class="panel-body">
<div class="row">
<tbody>
<tr>
<td>{{user.username}}</td>
</tr>
Page 88
Application Name :- Food Order System
<tr>
<td>Name:</td>
<td>{{user.restaurant.rname}}</td>
</tr>
<tr>
<td>info:</td>
<td>{{user.restaurant.info}}</td>
</tr>
<tr>
<td>Location:</td>
<td>{{user.restaurant.location}}</td>
</tr>
<tr>
<td>Status:</td>
<td>{{user.restaurant.status}}</td>
</tr>
<tr>
<td>Approved:</td>
<td>{{user.restaurant.approved}}</td>
</tr>
<tr>
<td>Email:</td>
<td><a href="#">{{user.email}}</a></td>
</tr>
Page 89
Application Name :- Food Order System
</tbody>
</table>
<div class="container">
<div class="row">
<div class="col">
</div>
<!--<div class="col">
</div>-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock%}
Business logic
Page 90
Application Name :- Food Order System
class CustomerSignUpForm(forms.ModelForm):
Meta:
model = User
fields=['username','email','password'] def
save(self, commit=True):
user = super().save(commit=False)
user.is_customer=True
if commit:
user.save()
return user
model =User
fields=['username','email','password'] def
save(self,commit=True):
user=super().save(commit=False)
user.is_restaurant=True
if commit:
user.save()
return user
Page 91
Application Name :- Food Order System
class CustomerForm(forms.ModelForm):
class Meta:
model = Customer
fields =['f_name','l_name','city','phone','address']
class RestuarantForm(forms.ModelForm):
class Meta:
model = Restaurant
fields =['rname','info','location','r_logo','min_ord','status','approved']
class User(AbstractUser):
is_customer = models.BooleanField(default=False)
is_restaurant = models.BooleanField(default=False)
class Customer(models.Model):
user =
models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
f_name = models.CharField(max_length=20,blank=False)
Page 92
Application Name :- Food Order System
= models.CharField(max_length=40,blank=False)
phone = models.CharField(max_length=10,blank=False)
address = models.TextField()
return self.user.username
class Restaurant(models.Model):
user =
models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE) rname
= models.CharField(max_length=100,blank=False)
= models.CharField(max_length=5,blank=False)
location = models.CharField(max_length=40,blank=False)
r_logo = models.FileField(blank=False)
REST_STATE_OPEN = "Open"
REST_STATE_CLOSE = "Closed"
REST_STATE_CHOICES =(
(REST_STATE_OPEN,REST_STATE_OPEN),
(REST_STATE_CLOSE,REST_STATE_CLOSE)
status =
models.CharField(max_length=50,choices=REST_STATE_CHOICES,default=REST_STATE_O
PEN,blank=False)
approved = models.BooleanField(blank=False,default=True)
Page 93
Application Name :- Food Order System
return self.rname
class Item(models.Model):
id = models.AutoField(primary_key=True)
fname = models.CharField(max_length=30,blank=False)
category = models.CharField(max_length=50,blank=False)
return self.fname
class Menu(models.Model):
id = models.AutoField(primary_key=True)
item_id = models.ForeignKey(Item,on_delete=models.CASCADE)
= models.IntegerField(blank=False)
quantity = models.IntegerField(blank=False,default=0)
class Order(models.Model):
id = models.AutoField(primary_key=True)
total_amount = models.IntegerField(default=0)
timestamp = models.DateTimeField(auto_now_add=True)
Page 94
Application Name :- Food Order System
models.ForeignKey(User ,on_delete=models.CASCADE)
ORDER_STATE_WAITING = "Waiting"
ORDER_STATE_PLACED = "Placed"
ORDER_STATE_ACKNOWLEDGED = "Acknowledged"
ORDER_STATE_COMPLETED = "Completed"
ORDER_STATE_CANCELLED = "Cancelled"
ORDER_STATE_DISPATCHED = "Dispatched"
ORDER_STATE_CHOICES = ( (ORDER_STATE_WAITING,ORDER_STATE_WAITING),
(ORDER_STATE_PLACED, ORDER_STATE_PLACED),
(ORDER_STATE_ACKNOWLEDGED, ORDER_STATE_ACKNOWLEDGED),
(ORDER_STATE_COMPLETED, ORDER_STATE_COMPLETED),
(ORDER_STATE_CANCELLED, ORDER_STATE_CANCELLED),
(ORDER_STATE_DISPATCHED, ORDER_STATE_DISPATCHED)
status =
models.CharField(max_length=50,choices=ORDER_STATE_CHOICES,default=ORDER_STAT
E_WAITING)
Page 95
Application Name :- Food Order System
class orderItem(models.Model):
id = models.AutoField(primary_key=True)
ord_id = models.ForeignKey(Order,on_delete=models.CASCADE)
quantity = models.IntegerField(default=0)
return str(self.id)
def index(request):
return render(request,'webapp/index.html',{})
Page 96
Application Name :- Food Order System
def orderplaced(request):
return render(request,'webapp/orderplaced.html',{})
restuarent(request):
r_object = Restaurant.objects.all()
query = request.GET.get('q')
if query:
render(request,'webapp/restaurents.html',{'r_object':r_object})
return render(request,'webapp/restaurents.html',{'r_object':r_object})
# logout
def Logout(request):
if request.user.is_restaurant:
logout(request)
return redirect("rlogin")
else:
logout(request)
return redirect("login")
Page 97
Application Name :- Food Order System
customerRegister(request):
form.is_valid():
form.cleaned_data['username'] password
= form.cleaned_data['password']
user.is_customer=True
user.set_password(password)
user.save()
is not None:
if user.is_active:
login(request,user) return
redirect("ccreate")
context ={
'form':form
return render(request,'webapp/signup.html',context)
# Customer Login
def customerLogin(request):
if request.method=="POST":
username = request.POST['username']
password = request.POST['password']
Page 98
Application Name :- Food Order System
is not None:
if user.is_active:
login(request,user) return
redirect("profile")
else:
return render(request,'webapp/login.html',{'error_message':'Your
account disable'})
else:
return render(request,'webapp/login.html')
def customerProfile(request,pk=None): if
pk:
user = User.objects.get(pk=pk)
else:
user=request.user
return render(request,'webapp/profile.html',{'user':user})
def createCustomer(request):
Page 99
Application Name :- Food Order System
if form.is_valid():
instance = form.save(commit=False)
instance.user = request.user
instance.save()
return redirect("profile")
context={
'form':form,
return render(request,'webapp/profile_form.html',context)
def updateCustomer(request,id):
form.is_valid():
form.save()
return redirect('profile')
context={
'form':form,
return render(request,'webapp/profile_form.html',context)
def restuarantMenu(request,pk=None):
Page
100
Application Name :- Food Order System
menu = Menu.objects.filter(r_id=pk)
rest = Restaurant.objects.filter(id=pk)
items =[]
for i in menu:
content in item:
temp=[] temp.append(content.fname)
temp.append(content.category)
temp.append(i.price) temp.append(i.id)
temp.append(rest[0].status)
temp.append(i.quantity)
items.append(temp)
context = {
'items' : items,
'rid' : pk,
'rname': rest[0].rname,
'rmin' : rest[0].min_ord,
return render(request,'webapp/menu.html',context)
Page
101
Application Name :- Food Order System
@login_required(login_url='/login/user/') def
checkout(request):
if request.POST:
= request.POST['oid']
Order.objects.filter(id=int(ordid)).update(delivery_addr = addr,
status=Order.ORDER_STATE_PLACED)
return redirect('/orderplaced/')
else:
cart = request.COOKIES['cart'].split(",")
cart = dict(Counter(cart))
items = []
totalprice = 0
= Order()
oid.orderedBy = uid[0]
item = []
it = Menu.objects.filter(id=int(x))
if len(it):
oiid=orderItem()
oiid.item_id=it[0]
oiid.quantity=int(y)
oid.r_id=it[0].r_id
oid.save()
oiid.ord_id =oid
Page
102
Application Name :- Food Order System
oiid.save()
totalprice += int(y)*it[0].price
item.append(it[0].item_id.fname)
it[0].quantity = it[0].quantity - y
it[0].save()
item.append(y) item.append(it[0].price*int(y))
items.append(item)
oid.total_amount=totalprice
oid.save()
context={
"items":items,
"totalprice":totalprice, "oid":oid.id
return render(request,'webapp/order.html',context)
def restRegister(request):
Page
103
Application Name :- Food Order System
if form.is_valid():
form.cleaned_data['username'] password
= form.cleaned_data['password']
user.is_restaurant=True
user.set_password(password)
user.save()
is not None:
if user.is_active:
login(request,user) return
redirect("rcreate")
context ={
'form':form
return render(request,'webapp/restsignup.html',context)
# restuarant login
def restLogin(request):
if request.method=="POST":
username = request.POST['username']
password = request.POST['password']
is not None:
if user.is_active:
Page
104
Application Name :- Food Order System
login(request,user) return
redirect("rprofile")
else:
return render(request,'webapp/restlogin.html',
{'error_message':'Your account disable'})
else:
return render(request,'webapp/restlogin.html')
def restaurantProfile(request,pk=None): if
pk:
user = User.objects.get(pk=pk)
else:
user=request.user
return render(request,'webapp/rest_profile.html',{'user':user})
@login_required(login_url='/login/restaurant/') def
createRestaurant(request):
form.is_valid():
instance = form.save(commit=False)
instance.user = request.user
Page
105
Application Name :- Food Order System
instance.save()
return redirect("rprofile")
context={
'form':form,
return render(request,'webapp/rest_profile_form.html',context)
@login_required(login_url='/login/restaurant/') def
updateRestaurant(request,id):
if form.is_valid():
form.save()
return redirect('rprofile')
context={
'form':form,
return render(request,'webapp/rest_profile_form.html',context)
@login_required(login_url='/login/restaurant/') def
menuManipulation(request):
if not request.user.is_authenticated:
Page
106
Application Name :- Food Order System
return redirect("rlogin")
rest=Restaurant.objects.filter(id=request.user.restaurant.id); rest=rest[0]
if request.POST:
type=request.POST['submit'] if
type =="Modify":
menuid = int(request.POST['menuid'])
memu= Menu.objects.filter(id=menuid).\
update(price=int(request.POST['price']),quantity=int(request.POST['quantity'])) elif
type == "Add" :
itemid=int(request.POST['item'])
item=Item.objects.filter(id=itemid)
item=item[0]
menu=Menu()
menu.item_id=item
menu.r_id=rest
menu.price=int(request.POST['price'])
menu.quantity=int(request.POST['quantity'])
menu.save()
else:
menuid = int(request.POST['menuid'])
menu = Menu.objects.filter(id=menuid)
menu[0].delete()
menuitems=Menu.objects.filter(r_id=rest)
Page
107
Application Name :- Food Order System
menu=[]
for x in menuitems:
cmenu=[]
cmenu.append(x.item_id)
cmenu.append(x.price)
cmenu.append(x.quantity)
cmenu.append(x.id)
menu.append(cmenu)
menuitems = Item.objects.all()
items = []
for y in menuitems:
citem = [] citem.append(y.id)
citem.append(y.fname)
items.append(citem)
context={
"menu":menu,
"items":items,
"username":request.user.username,
return render(request,'webapp/menu_modify.html',context)
def orderlist(request):
if request.POST:
Page
108
Application Name :- Food Order System
oid = request.POST['orderid']
select = request.POST['orderstatus']
select = int(select)
order = Order.objects.filter(id=oid) if
len(order):
x = Order.ORDER_STATE_WAITING
if select == 1:
x = Order.ORDER_STATE_PLACED
elif select == 2:
x = Order.ORDER_STATE_ACKNOWLEDGED
elif select == 3:
x = Order.ORDER_STATE_COMPLETED
elif select == 4:
x = Order.ORDER_STATE_DISPATCHED
elif select == 5:
x = Order.ORDER_STATE_CANCELLED
else:
x = Order.ORDER_STATE_WAITING
order[0].status = x
order[0].save()
Page
109
Application Name :- Food Order System
= user[0]
corder = []
if user.is_restaurant:
corder.append(user.restaurant.rname)
corder.append(user.restaurant.info)
else:
corder.append(user.customer.f_name) corder.append(user.customer.phone)
items_list = orderItem.objects.filter(ord_id=order)
items = []
citem = [] citem.append(item.item_id)
citem.append(item.quantity)
menu = Menu.objects.filter(id=item.item_id.id)
citem.append(menu[0].price*item.quantity) menu
=0
items.append(citem)
corder.append(items)
corder.append(order.total_amount)
corder.append(order.id)
x = order.status
Page
110
Application Name :- Food Order System
if x == Order.ORDER_STATE_WAITING:
continue
elif x == Order.ORDER_STATE_PLACED: x
=1
elif x == Order.ORDER_STATE_ACKNOWLEDGED:
x=2
elif x == Order.ORDER_STATE_COMPLETED: x
=3
elif x == Order.ORDER_STATE_DISPATCHED: x
=4
elif x == Order.ORDER_STATE_CANCELLED: x
=5
else:
continue
corder.append(x)
corder.append(order.delivery_addr)
corders.append(corder)
return render(request,"webapp/order-list.html",context)
Our project is only a humble venture to satisfy the needs to manage their project work.
Several user friendly coding have also adopted. This package shall prove to be a powerful
package in satisfying all the requirements of the school. The objective of software planning is to
provide a frame work that enables the manger to make
Page
111
Application Name :- Food Order System
reasonable estimates made within a limited time frame at the beginning of the software project and
should be updated regularly as the project progresses.
A description of the background and context of the project and its relation to work
already done in the area.
Made statement of the aims and objectives of the project.
The description of Purpose, Scope, and applicability.
We define the problem on which we are working in the project.
We describe the requirement Specifications of the system and the actions that can be
done on these things.
We understand the problem domain and produce a model of the system, which
describes operations that can be performed on the system.
We included features and operations in detail, including screen layouts.
We designed user interface and security issues related to system.
Finally the system is implemented and tested according to test cases.
Page
112
Application Name :- Food Order System
In a nutshell, it can be summarized that the future scope of the project circles around
maintaining information regarding:
The above-mentioned points are the enhancements which can be done to increase the
applicability and usage of this project. Here we can maintain the records of Food Item and
Category. Also, as it can be seen that now-a-days the players are versatile,
i.e. so there is a scope for introducing a method to maintain the Online Food Ordering System.
Enhancements can be done to maintain all the Food Item, Category, Customer, Order, Confirm
Order.
We have left all the options open so that if there is any other future requirement in the
system by the user for the enhancement of the system then it is possible to implement them. In
the last we would like to thanks all the persons involved in the development of the system
directly or indirectly. We hope that the project will serve its purpose for which it is develop there
by underlining success of process.
Page
113
Application Name :- Food Order System
Although I have put my best efforts to make the software flexible, easy to operate but
limitations cannot be ruled out even by me. Though the software presents a broad range of
options to its users some intricate options could not be covered into it; partly because of
logistic and partly due to lack of sophistication. Paucity of time was also major constraint,
thus it was not possible to make the software foolproof and dynamic. Lack of time also
compelled me to ignore some part such as storing old result of the candidate etc.
Considerable efforts have made the software easy to operate even for the people not related
to the field of computers but it is acknowledged that a layman may find it a bit problematic at
the first instance. The user is provided help at each step for his convenience in working with the
software.
Excel export has not been developed for Food Item, Category due to some
criticality.
The transactions are executed in off-line mode, hence on-line data for Customer, Order
capture and modification is not possible.
Off-line reports of Food Item, Confirm Order, Customer cannot be generated due to
batch mode execution.
Page
114
Application Name :- Food Order System
Page
115