You are on page 1of 84

A web based food ordering system.

A PROJECT DISSERTATION.

Submitted By:

Saqib Farooq 17045136041

Sheikh Abrar 17045135029

Under the Guidance of

Mr.Syed Nisar Bukhari

[Scientist-C/Head Department of IT]


National Institute of Electronics And Information
Technology

In partial fulfilment for the award of the degree of

MASTER OF COMPUTER APPLICATIONS.


Submitted To
P.G Department of Computer Science NIELIT, Srinagar.

MARCH 2021

1|Page
POST GRADUATE DEPARTMENT OF COMPUTER SCIENCE

NIELIT
Srinagar, Jammu & Kashmir.

CERTIFICATE

This is to certify that the project entitled “ FoodiZone a web based


food ordering system” submitted by
Name: Enrollment No’s:

Saqib Farooq 17045136041

Sheikh Abrar 17045136029

In the partial fulfillment of the requirements for the award of degree of


Masters of Computer Application (MCA) is a bonafide work carried out
under my supervision. Supervisor
Mr. Syed Nisar Bukhari
[Scientist-C / Head Department of
Coordinator of MCA Information Technology]
Department Nielit, Srinagar
Dr. Muneer Ahmad Dar
Department of Computer Science,

2|Page
Certificate

Certified that Saqib Farooq and Sheikh Abrar have carried out the project work
presented in this report entitle “FoodiZone” for the award of Master of Computer
Application from the University of Kashmir under my supervision. The report
embodies result of work and studies carried out by students themselves and the
contents of the report do not form the basis for the award of any other degree to
the candidate or to anybody else.

Date:-_____________________

Mr.Syed Nisar Bukhari

[Scientist-C/Head Department of IT]

Internal Guide

Table of Contents:

Chapter-1 Introduction
3
1.1 Abstract
1.2 Existing System
1.3 Proposed System
1.4 Feasibility

Chapter 2: Requirements Specification


2.1 System Model
2.2 Functional Requirements
2.2.1 The Web Ordering System
2.2.2 Menu Management System
2.2.3 Order Retrieval System
2.3 User Interface Specifications
2.3.1 Web Ordering System
2.3.2 Order Retrieval System

Chapter 3: System Design


3.1 System Design
3.2 Customer
3.3 For Restaurant Owner
4
3.4 User Interface Design
3.4 Requirements Traceability
3.5 Place an order

Chapter 4: Tools & Technologies Used


4.1 Technologies
4.1.1 Python
4.1.2 Django
4.1.3 CSS
4.1.4 Bootstrap
4.1.5 JavaScript
4.1.6 Sqlite 3
4.1.7 HTML

4.2 Tools
4.2.1 Visual Studio code

Chapter 5: Architecture
5.1 Introduction
5.2 Model
5.3 Views

5
5.4 Templates
5.5 URL Mapping
5.6 Django ORM

Chapter 6: Methodology
6.1 Incremental Approach

Chapter 7: Diagrams
7.1 Use Case Diagrams
7.2 Class Diagram

Chapter 8: Feasibility Study


8.1 Technical Feasibility
8.2 Operational Feasibility

8.3 Economical Feasibility


Chapter 9 : Testing
9.1 Web Application Testing
9.1.1 Web Application Testing Techniques

9.2 White Box Testing

9.2.2 White Box Testing Techniques


9.3 Workflow Testing

6
Chapter 10 Screenshots of the Final Project
Chapter 11 Screenshots of the Code Samples
Chapter 12 Conclusions &Future scope of the
Project
Chapter 13 Bibliography

7
Chapter 1: Introduction

8
1.1 Abstract
The Foodizone described in this document has been designed to
fill a specific niche in the market by providing new start-up
restaurants with the ability to offer their customers an online
ordering option without having their café or restaurant they can
start from their own kitchen with minimal budget . They can
simply register their restaurant on the website and can add menu
items to it. This system will be a great solution for many start
up food business, they can just start initially with less funds by
posting their menu online with this application. And for
Customer it will be will be a great solution for not visiting to the
number of restaurants locally or through websites to check their
menu, they can select any restaurant from the Foodizone and
check their menus and can order the food from their favourite
restaurant.
The website, which is the only component seen by the
customers/Restaurant owners, is built dynamically based on the
current state of the system. For Restaurant owners they will be
able to expand their business by just registering on the website
and it will be more helpful for new start up restaurants.
Customers, once registered, are then able to easily navigate the
selected restaurant’s menu, add food items to their order, and
specify delivery options with only a few clicks, greatly
simplifying the ordering process. Back in the restaurant, placed
orders are promptly retrieved and displayed in an easily readable
format for efficient processing.
9
The purpose of this document is to provide in-depth
descriptions of design and implementation details of the system,
as well as descriptions of all available functionality.

1.2 Existing System


In today’s age of fast food and take-out, many restaurants
have chosen to focus on quick preparation and speedy delivery
of orders rather than offering a rich dining experience. Until
very recently, all of these delivery orders were placed over the
phone, but there are many disadvantages to this system. First,
the customer must have a physical copy of the restaurant’s menu
to look at while placing their order and this menu must be up to
date. While this expectation is not unreasonable, it is certainly
inconvenient.
Second, the orders are placed using strictly oral
communication, which makes it far more difficult for the
customer to receive immediate feedback on the order they have
placed. This often leads to confusion and incorrect orders. The
current system is also inconvenient for the restaurant itself, as
they must either have a dedicated staff member to answer the
phone and take orders, or some employees must perform double-
duty, distracting them from their regular tasks.

10
1.3 Proposed System
What I propose is an FoodiZone, originally designed for
new start-up restaurants/restaurants, and Customers to ease their
ordering food from their favourite restaurant or checking the
menu of any restaurant. The main advantage of my system is
that it greatly simplifies the ordering process for both the
customer and the restaurant. When the customer visits the
ordering webpage, they are presented with an interactive and up-
to-date menu, complete with all available options. After making
a selection, the item is then added to their order, which the
customer can review the details of at any time before checking
out. This provides instant visual confirmation of what was
selected and ensures that items in the order are, in fact, what was
intended.
The system also greatly lightens the load on the restaurant’s
end, as the entire process of taking orders is automated. Once an
order is placed on the webpage, it is placed into the database and
then retrieved, in pretty much real-time, by a desktop application
on the restaurant’s end. Within this application, all items in the
order are displayed, along with their corresponding options and
delivery details, in a concise and easy to read manner. This
allows restaurant employees to quickly go through the orders as
they are placed and produce the necessary items with minimal
delay and confusion.

11
While there are already a few systems like this in existence,
all those I have encountered have been designed specifically for
one restaurant, and thus cater only to their unique needs. Perhaps
the greatest advantage of my system is its flexibility. The web
order forms are built dynamically from the database, which can
be managed using a graphical user interface. This allows the
restaurant employees to not only set up and customize the
system on their own, but also allows them to make changes to
the menu in real time. For this reason, the exact same system can
be used by numerous businesses with absolutely no
modification, which greatly increases its usefulness.

1.4 Feasibility
At the present moment, the system is entirely functional,. A
user is currently able to register and log in to the website and
place an order. That order is then displayed, correctly and
completely, in the order retrieval desktop application. And also
restaurant owner is able to register his restaurant and add menu
items. Much of what is left to do focuses not on improving
functionality, but rather on improving user experience by
creating richer graphical interfaces for the user to interact with
and modifying the application’s icons and color schemes to
make them more pleasing to look at and use.
A second factor influencing feasibility is resources, which
also should not be a concern here. The online ordering system is
structured like a fairly standard web application, and as such

12
requires no special hardware and only basic software, namely
web and database servers, to function properly.

13
Chapter 2: Requirements
Specification

14
2.1 System Model
The structure of the system can be divided into three main
logical components. The first component must provide some
form of menu management, allowing the restaurant to control
what can be ordered by customers. The second component is the
web ordering system and provides the functionality for
customers to place their order and supply all necessary details.
The third and final logical component is the order retrieval
system. Used by the restaurant to keep track of all orders which
have been placed, this component takes care of retrieving and
displaying order information, as well as updating orders which
have already been processed.

15
2.2 Functional Requirements
As can be seen in the system model diagrammed above,
each of the three system components essentially provides a layer
of isolation between the end user and the database. The
motivation behind this isolation is twofold. Firstly, allowing the
end user to interact with the system through a rich interface
provide a much more enjoyable user experience, particularly for
the non-technical users which will account for the majority of
the system’s users. In addition, this isolation layer also protects
the integrity of the database by preventing users from taking any
action outside those which the system is designed to handle.
Because of this design pattern, it is essential to enumerate
exactly which functions a user will be presented and these
functions are outlined below, grouped by component.

2.2.1 The Web Ordering System


Users of the web ordering system, namely restaurant customers
and restaurant owners must be provided the following
functionality:

16
For Customers:

 Create an account..
 Log in to the system.
 Navigate the selected restaurant’s menu.
 Select an item from the menu.
 Add an item to their current order.
 Review their current order.
 Remove an item/remove all items from their current order.
 Provide delivery
 Place an order.
 Receive confirmation in the form of an order number

17
For Restaurant Owners:
 Create an account..
 Log in to the system.
 Add Restaurant name to the website.
 Add an item to its Menu.
 Edit an item from its Menu
 Edit Price
 Edit Food Name.

As the goal of the system is to make the process of


placing an order as simple as possible for the customer, the
functionality provided through the web ordering system is
restricted to that which most pertinent to accomplish the desired
task.

18
2.2.2 Menu Management System
The menu management system will be available only to
restaurant employees/owners and will, as the name suggests,
allow them to manage the menu that is displayed to users of the
web ordering system. The functions afforded by the menu
management system provide user with the ability to, using a
graphical interface:
 Add a new/update item from the menu.
 Add a new/update food category to/from the menu.
 Add a new/update food item to/from the menu.
 Update price for a given food item.
 Update additional information (description, photo, etc.) for
a given food item.
It is anticipated that the functionality provided by this
component will be one of the first things noted by the restaurant
user, as they will have to go through it to configure their menu,
etc. before beginning to actually take orders. Once everything is
initially configured, however, this component will likely be the
least used, as menu updates generally do not occur with great
frequency.

19
2.2.3 Order Retrieval System
Of the three components, the order retrieval system is
functionally the simplest. Like the menu management system, it
is designed to be used only by restaurant employees, and
provides the following functions:
 Retrieve new orders from the database.
 Display the orders in an easily readable, graphical way.
 Mark an order as having been
processed/Confirmed/accepted/rejected.

2.3 User Interface Specifications


Each of the system components will have their own unique
interface. These are described below.

2.3.1 Web Ordering System


20
Users of the web ordering system will interact with the
application through a series of simple cards with Name, Image
and Ingredients of item . Each category of food has its own card
associated with it which presents a list of card for choosing
which specific item from the category should be added to the
order, Adding an item to the order is accomplished by a single
button click. Users select which category of food they would
like to order, and therefore which food item should be displayed,
by navigating a menu bar and the selected food item is added to
cart.
Delivery is done in a simple manner. The address of the
user is fetched from the database which the user has provided at
the time of delivery and the user can also track the details of its
order which has been ordered of which the status is changed by
the restaurant employee according to the status of food ordered.

2.3.2 Order Retrieval System


Restaurant employee/Owner interaction with the order
retrieval will be very simple. The application will automatically
fetch new orders from the database at regular intervals and
display the order numbers, along with the address of the
customer and will be displayed on the dashboard of the admin
panel of the Restaurant owner/employee.. Finally, once and

21
order is processed, the Restaurant owner/employee can change
the status to “Processing/Out For Delivery/Delivered” and the
change will reflect in the status of the customer who ordered the
food.

22
Chapter 3: System Design

23
3.1 System Design

Level 1: The Database & the 3 Components


The structure of the system can be divided into three main
logical components. The first component must provide some
form of menu management, allowing the restaurant to control
what can be ordered by customers. The second component is the
web ordering system and provides the functionality for
customers to place their order and supply all necessary details.
and restaurant owner to provide the registration and login form
The third and final logical component is the order retrieval
system. Used by the restaurant to keep track of all orders which
have been placed, this component takes care of retrieving and
displaying order information, as well as updating orders which
have already been processed

24
Level 2: Web Ordering System Components
The web ordering system provides different interface for
two user :
1, For Customer
2, For Restaurant Owner

3.2 Customer:
For Customer there are the login form, registration form, the
main menu, the order form, the shopping cart, and the checkout
form. When the customer first arrives at the site, they are
presented with the login form. After either signing in or, if they
do not yet have an account, first registering and then signing in,
the user is taken to a welcome page with the main menu. From
here, user can select any restaurant from the list after selecting
the restaurant user can view the menu items of the selected
restaurant they can navigate the numerous menu items each of
which corresponds to a specific category of items, adding items
to their shopping cart along the way. At any time they can view
and modify their shopping cart and when they are finally ready
to place their order, they can proceed to the checkout form. The
checkout form uses the contents of the shopping cart to present a
summary of the order and to calculate the total cost.

25
Level 3: The Registration Form
The Registration form is standard for a form of this type. It
provides text fields for username, password, email id and
address, which the user must enter before registering in.

Level 3: The Login Form


The login form is standard for a form of this type. It
provides text fields for email and password, which the user must
enter before signing in
Level 3: Choose Restaurant
The Restaurant page shows the list of restaurants where the
user can selected any of his favourite restaurant and then can
order from that restaurant

Level 3: The Main Menu


26
The main menu, shows the list of food items and their categories

user can choose a food which he wants to be ordered

Level 3: The Shopping Cart


The shopping cart performs much like a shopping cart in any
other application. After an item is added to the Cart, it is
displayed, along with its price, in the shopping cart. The
shopping cart also keeps a running total of the current price of
the whole order. Finally, the shopping cart contains a button for
the user to proceed to checkout.

3.3 Restaurant Owner:

For Restaurant Owner:

27
For Restaurant owner there are the login form, registration form,
When the Restaurant owner first arrives at the site, they are
presented with the login form. After either signing in or, if they
do not yet have an account, first registering and then signing in,
the restaurant owner is taken to a admin page with the list of
orders menu items

Level 3: The Registration Form


The Registration form is standard for a form of this type. It
provides text fields for Restaurant name, password, email id and
restaurant speaciality, which the restaurant owner must enter
before registering in.

Level 3: The Login Form


The login form is standard for a form of this type. It
provides text fields for email and password, which the user must
enter before signing in
Level 2: Order Retrieval System Components

28
The simplest of the three components, the order retrieval system
shows the summary panel, which displays a list of all orders,.
When the restaurant employee logins first starts, the order
details of all orders in the list are displayed. From here,
Restaurant owner can edit, add menu items to its restaurant and
can also view the number of orders today and can change the
status of order with respect to preparations of order
Level 2: The Add Menu Form
The add menu form is standard for a form of this type. It
provides text fields for category, food name, food image and
food ingredients, which the restaurant employee or owner must
enter before adding menu item to its restaurant
Level 2: The Order Status Form
The Order status form is standard for a form of this type. It
provides drop down option for restaurant owner, to choose the
status of the order from the given options and then update the
status of the order.
Level 2: The Edit Menu Form
The Edit form is standard for a form of this type. It
provides the edit option for the food items of the restaurant
owner, the owner can edit the price, food name , description etc.

29
3.3 User Interface Design
The user interface design is designed in a simple manner, The
interface for this web app contains traditional forms comprised
of text fields and corresponding labels, along with save buttons
for each form.

3.4 Requirements Traceability


In the requirements document, I specified the following
functional requirements:
 For the Web Ordering System:
 Create an account..
 Log in to the system.
 Navigate the restaurant’s menu.
 Select an item from the menu.
 Add an item to their current order.
 Review their current order.
 Remove an item/remove all items from their current order.
 Provide delivery and payment details.

30
3.5 Place an order
 For the Menu Management System:
 Add a new/update food category to/from the menu.
 Add a new/update/delete food item to/from the menu.
 Add a new/update/delete option for a given food item.
 Update price for a given food item.
 Update additional information (description, photo, etc.) for
a given food item.
 For the Order Retrieval System:
 Retrieve new orders from the database.
 Display the orders in an easily readable, graphical way.
 Mark an order as having been
Processed/Delivered/Cancelled

31
Chapter 4:Tools and
Technologies

32
4.1Technologies

4.1.1 Python:

Python is a general purpose, dynamic, high-level, and


interpreted programming language. It supports Object Oriented
programming approach to develop applications. It is simple and
easy to learn and provides lots of high-level data structures.
Python is easy to learn yet powerful and versatile scripting
language, which makes it attractive for Application
Development.
Python's syntax and dynamic typing with its interpreted nature
make it an ideal language for scripting and rapid application
development.
Python supports multiple programming pattern, including
object-oriented, imperative, and functional or procedural
programming styles.
Python is not intended to work in a particular area, such as web
programming. That is why it is known
as multipurpose programming language because it can be used
with web, enterprise, 3D CAD, etc.
We don't need to use data types to declare variable because it
is dynamically typed so we can write a=10 to assign an integer
value in an integer variable.

33
Python makes the development and debugging fast because
there is no compilation step included in Python development,
and edit-test-debug cycle is very fast.

4.1.2 Django:
Django is one of the web frameworks which are written in
Python programming language. Hence, it becomes easier for
programmers to build web applications with clean, readable, and
maintainable code by taking advantage of syntax rules of
Python. In addition, the developers can easily curtail the
development time by building custom web applications without
writing additional code. Django is one of the most mature web
frameworks for Python. Its design rules focus extensively on
reducing web application development time. The features
provided by Django enable developers to build custom web
applications rapidly according to varying business requirements.
Nowadays, users access web applications on various devices and
platforms. Django enhances the accessibility of web applications
by supporting major operating systems like Windows, Linux and
MarcOS.

The built-in security features provided by Django help


developers to protect the web applications from a variety of

34
targeted security attacks – cross-site scripting, SQL injection
and cross-site request forgery. At the same time, the web
framework enhances the security of web applications by
preventing common security mistakes related to Python coding.

35
4.1.3 CSS
Cascading Style Sheets, fondly referred to as CSS, is a simple
design language intended to simplify the process of making web
pages presentable. CSS handles the look and feel part of a web
page. Using CSS, you can control the color of the text, the style
of fonts, the spacing between paragraphs, how columns are sized
and laid out, what background images or colors are used, layout
designs, variations in display for different devices and screen
sizes as well as a variety of other effects.

4.1.4 Bootstrap
Bootstrap is the most popular CSS framework for developing
responsive and Mobile-first websites Bootstrap 4 is the newest
version of Bootstrap. Bootstrap is The most popular HTML,
CSS, and JavaScript framework for developing Responsive,
mobile-first websites. Bootstrap is completely free to download

4.1.5 JavaScript
JavaScript is the Programming Language for the Web.
JavaScript can update and change both HTML and CSS.
JavaScript can calculate, manipulate and validate data

36
4.1.6 SQLite3
Sqlite3' is database file where all the data that you will be
generating will be stored. It is a local file as Django is a server-
side framework and it treats your computer as the host when you
actually run the server in command line/terminal.
SQLite3 provides an excellent development alternative for
applications that are predominantly read-only or require a
smaller installation footprint. SQlite3 can run dynamic websites
and web apps.

4.1.7 HTML
HTML stands for Hyper Text Markup Language. It is used to
design web pages using markup language. HTML is the
combination of Hypertext and Markup language. Hypertext
defines the link between the web pages. Markup language is
used to define the text document within tag which defines the
structure of web pages. This language is used to annotate (make
notes for the computer) text so that a machine can understand it
and manipulate text accordingly. Most markup languages (e.g.
HTML) are human readable. Language uses tags to define what
manipulation has to be done on the text. 
HTML is a markup language used by the browser to manipulate
text, images and other content, in order to display it in the
required format.

37
4.2 Tools

4.2.1 Visual Studio Code


Visual Studio Code is a lightweight but powerful source code
editor which runs on your desktop and is available for Windows,
macOS and Linux. 

38
Chapter 5:Architecture

39
5.1 Introduction
The Architecture used in this web app is a MVT (Model View
Template) architecture. It is a collection of three important
components Model View and Template. The Model helps to
handle database. It is a data access layer which handles the data.
The Template is a presentation layer which handles User
Interface part completely. The View is used to execute the
business logic and interact with a model to carry data and
renders a template.
Although Django follows MVC pattern but maintains its own
conventions. So, control is handled by the framework itself.
There is no separate controller and complete application is based
on Model View and Template. That’s why it is called MVT
application.
See the following graph that shows the MVT based control flow.

40
Here, a user requests for a resource to the Django, Django works
as a controller and check to the available resource in URL.
If URL maps, a view is called that interact with model and
template, it renders a template.
Django responds back to the user and sends a template as
a response.

5.2 Model
In Django, a model is a class which is used to contain essential
fields and methods. Each model class maps to a single table in
the database.
Django Model is a subclass of django.db.models.Model and
each field of the model class represents a database field
(column).
Django provides us a database-abstraction API which allows
us to create, retrieve, update and delete a record from the
mapped table. Model is defined in Models.py file. This file
can contain multiple models.

5.3 Views
A view is a place where we put our business logic of the
application. The view is a python function which is used to
perform some business logic and return a response to the user.
This response can be the HTML contents of a Web page, or a
redirect, or a 404 error.

41
All the view function are created inside the views.py file of
the Django app.

5.4 Templates
Django provides a convenient way to generate dynamic HTML
pages by using its template system.
A template consists of static parts of the desired HTML output
as well as some special syntax describing how dynamic content
will be inserted. Why we use Django template because In
HTML file, we can't write python code because the code is only
interpreted by python interpreter not the browser. We know that
HTML is a static markup language, while Python is a dynamic
programming language. Django template engine is used to
separate the design from the python code and allows us to build
dynamic web pages.

5.5 URL Mapping


Well, till we have learned about model, view, and template.
Now, we will learn about the routing of application.
Since Django is a web application framework, it gets user
requests by URL locater and responds back. To handle
URL, django.urls module is used by the framework.
The django.urls module contains various
functions, path(route,view,kwargs,name) is one of those which
is used to map the URL and call the specified view.

42
5.6 Django ORM:
ORM is an acronym for the object-relational mapper. The
ORM’s main goal is to transmit data between a relational
database and application model. The ORM automates this
transmission, such that the developer need not write any SQL.
ORM, as from the name, maps objects attributes to respective
table fields. It can also retrieve data in that manner.
This makes the whole development process fast and error-free.

In the above image, we have some Python objects and a table


with corresponding fields. The object’s attributes are stored in
corresponding fields automatically. An ORM will automatically
create and store your object data in the database. You don’t have
to write any SQL for the same.
ORMs have certain benefits over the traditional approach. The
main advantage ORMs provide is rapid development. ORMs
make project more portable. It is easier to change the database if
we use ORMs

43
the concept of ORM was introduced in web frameworks. ORMs
automatically create a database schema from defined classes/
models. They generate SQL from Python code for a particular
database. ORMs let the developer build the project in one
language that means Python. Django is shipped with its own
ORM. It is a very efficient ORM and is tightly coupled with the
Django framework. The migrations feature by Django is also a
part of Django ORM. The ORM has many benefits engulfing
those of migrations and Querysets. Django is the only
framework which is complete in itself.

44
Chapter 6:Methodology

45
6.1 Incremental Approach
In incremental model, the whole requirement is divided into
various builds. Multiple development cycles take place her,
making the life cycle a “multi-waterfall Cycle”. Cycles are
divided into smaller, more easily managed modules. Each
module passes through the requirements, design, and
implementation of testing phases. A working version of
software is produced during the first module, so you have
working software early on during the software life cycle. Each
subsequent release of the module adds function to the previous
release. The processes continues till the complete system is
achieved.

Each increment includes three phases: design, implementation


and analysis. During the design phase of the first increment, the
functionality with top most priority form the project activity list
is selected and the design is prepared. In the implementation
phase, the design is implemented and tested. In analysis phase,
the functional capability of the partially developed in analyzed.
The development process is repeated until the functions of the
project are implemented.

46
In this Incremental model, the whole requirement is divided
into various builds. During each iteration, the development
module goes through the requirements, design, implementation
and testing phases. Each subsequent release of the module adds
function to the previous release. The process continues until the
complete system is ready as per the requirement.

The key to a successful use of an iterative software development


lifecycle is rigorous validation of requirements, and verification
and testing of each version of the software against those
requirements within each cycle of the model. As the software
evolves through successive cycles, tests must be repeated and
extended to verify each version of the software.

Like other SDLC models, iterative and incremental


development has some specific applications in the software
47
industry. This model is most often used in the following
Scenarios:
 Requirements of the complete system are clearly
defined and understood.

 Major requirements must be defined; however,


some functionalities or requested enhancements my
evolve with time.
 A new technology is being used and is being learnt by
the development team while work on the project.
 There are some high-risk features and goals which
may change in the future.

The advantage of this model is that there is a working model


of the system at a very early stage of development, which
makes its easier to find functional or design flaws. Finding
issues at an early stage of development enables to take
corrective measures in a limited budget.

48
Chapter 7:Diagrams

49
7.1 Use Case Diagrams
A use case diagram is used to represent the dynamic behavior of
a system. It encapsulates the system's functionality by
incorporating use cases, actors, and their relationships. It models
the tasks, services, and functions required by a
system/subsystem of an application. It depicts the high-level
functionality of a system and also tells how the user handles a
system. The main purpose of a use case diagram is to portray the
dynamic aspect of a system. It accumulates the system's
requirement, which includes both internal as well as external
influences. It invokes persons, use cases, and several things that
invoke the actors and elements accountable for the
implementation of use case diagrams. It represents how an entity
from the external environment can interact with a part of the
system.
Following are the purposes of a use case diagram given below:
1. It gathers the system's needs.
2. It depicts the external view of the system.
3. It recognizes the internal as well as external factors that
influence the system.
4. It represents the interaction between the actors.

Following are some rules that must be followed while drawing a


use case diagram:
1. A pertinent and meaningful name should be assigned to the
actor or a use case of a system.
2. The communication of an actor with a use case must be
defined in an understandable way.
50
3. Specified notations to be used as and when required.
4. The most significant interactions should be represented
among the multiple no of interactions between the use case
and actors.

51
7.2 Class diagram

Class diagram is a static diagram. It represents the static view of


an application. Class diagram is not only used for visualizing,
describing, and documenting different aspects of a system but
also for constructing executable code of the software
application.
Class diagram describes the attributes and operations of a class
and also the constraints imposed on the system. The class
diagrams are widely used in the modeling of objectoriented
systems because they are the only UML diagrams, which can be
mapped directly with object-oriented languages.
Class diagram shows a collection of classes, interfaces,
associations, collaborations, and constraints. It is also known as
a structural diagram.the Purpose of Class Diagrams
The purpose of class diagram is to model the static view of an
application. Class diagrams are the only diagrams which can be
directly mapped with object-oriented languages and thus widely
used at the time of construction.
UML diagrams like activity diagram, sequence diagram can
only give the sequence flow of the application, however class
diagram is a bit different. It is the most popular UML diagram
in the coder community.
The purpose of the class diagram can be summarized as −

 Analysis and design of the static view of an application.

 Describe responsibilities of a system.

52
 Base for component and deployment diagrams.

 Forward and reverse engineering.


The following points should be remembered while drawing a
class diagram −

 The name of the class diagram should be meaningful to


describe the aspect of the system.

 Each element and their relationships should be identified in


advance.

 Responsibility (attributes and methods) of each class


should be clearly identified

 For each class, minimum number of properties should be


specified, as unnecessary properties will make the diagram
complicated.

 Use notes whenever required to describe some aspect of


the diagram. At the end of the drawing it should be
understandable to the developer/coder.

 Finally, before making the final version, the diagram


should be drawn on plain paper and reworked as many
times as possible to make it correct.

53
54
Chapter 8:Feasibility Study

55
Feasibility Study
Once scope has been identified (with the concurrence of
the customer), it is reasonable to ask: “Can we build
software to meet this Scope? Is the project feasible?”
All too often, software engineers such past these questions (or
are pushed past them by impatient mangers or customers), only
to become mired in a project that is doomed form the onset.
When we are developing the system (software), we must know
the proposed system will be feasible or i.e. practical
implemented or not it may possible the proposed (candidate)
system may not implemented due to many reasons like it may
take long time in development that the specified time limit, cost
may increase that proposed one etc. Therefore, we must analyze
the feasibility of the system.
Feasibility is the analysis of risks, costs & benefits
relating to economics, technology and User operations.
There are several types of feasibility depending on the aspect
they covers. Some important feasibility is as follows:-
Technical
Feasibility
Operational
Feasibility
Economical
Feasibility

56
8.1 Technical Feasibility:
The technically feasibility study centers on alternatives for
hardware, software and design approach to determine the
functional aspects of system. This project “Foodizone” is being
coded into Django python framework (python). SQLite3
database is being used for storing data. Hardware requirements
used are compatible with all Operating Systems. This System
can also be expanded as per the needs of requirements
specifications.

8.2 Operational Feasibility:


Operational Feasibility is a measure of how people are able to
work with system. This type of feasibility demands if the
system will work when developed and installed. Since website
is very User Friendly, so users will find it comfortable to work
on this site

8.3 Economical Feasibility:


Economic analysis is the most frequently used evaluating the
effectiveness of proposed system, more commonly known as
Benefits analysis. The Benefit analysis is to determine
benefits and saving which are expected from candidate system
and compare them with cost. If the benefits are more than the
cost, then decision is made to design and implement the
57
system. The cost and benefits may be direct or indirect and
tangible or intangibles.

58
Chapter 9:Testing

59
9.1 Web Application Testing
Web application testing, a software testing technique
exclusively adopted to test the applications that are hosted on
web in which the application interfaces and other functionalities
are tested.

Web Application Testing -


9.1.1

Techniques:
1.  Functionality Testing - The below are some of the checks that
are performed but not limited to the below list:
 Verify there is no dead page or invalid redirects.
 First check all the validations on each field.
 Wrong inputs to perform negative testing.
 Verify the workflow of the system.
 Verify the data integrity.
2. Usability testing - To verify how the application is easy to
use with.
 Test the navigation and controls.
 Content checking.
 Check for user intuition.
3. Interface testing - Performed to verify the interface and the
dataflow from one system to other.
4. Compatibility testing- Compatibility testing is performed
based on the context of the application.
 Browser compatibility
60
 Operating system compatibility
 Compatible to various devices like notebook, mobile, etc.
5. Performance testing - Performed to verify the server response
time and throughput under various load conditions.
 Load testing - It is the simplest form of testing conducted
to understand the behaviour of the system under a specific
load. Load testing will result in measuring important
business critical transactions and load on the database,
application server, etc. are also monitored.
 Stress testing - It is performed to find the upper limit
capacity of the system and also to determine how the
system performs if the current load goes well above the
expected maximum.
 Soak testing - Soak Testing also known as endurance
testing, is performed to determine the system parameters
under continuous expected load. During soak tests the
parameters such as memory utilization is monitored to
detect memory leaks or other performance issues. The
main aim is to discover the system's performance under
sustained use.
 Spike testing - Spike testing is performed by increasing the
number of users suddenly by a very large amount and
measuring the performance of the system. The main aim is
to determine whether the system will be able to sustain the
work load.

61
9.2 White Box Testing
White box testing is a testing technique that examines the
program structure and derives test data from the program
logic/code. The other names of glass box testing are clear box
testing, open box testing, logic driven testing or path driven
testing or structural testing.

9.2.2 White Box Testing Techniques:


 Statement Coverage - This technique is aimed at exercising
all programming statements with minimal tests.

 Branch Coverage - This technique is running a series of


tests to ensure that all branches are tested at least once.

 Path Coverage - This technique corresponds to testing all


possible paths which means that each statement and branch
is covered.
Advantages of White Box Testing:

 Forces test developer to reason carefully about


implementation.

 Reveals errors in "hidden" code.

62
 Spots the Dead Code or other issues with respect to best
programming practices.

Disadvantages of White Box Testing:

 Expensive as one has to spend both time and money to


perform white box testing.
 Every possibility that few lines of code are missed
accidentally.
 In-depth knowledge about the programming language is
necessary to perform white box testing.

9.3 Workflow Testing


Workflow processes technique in software testing by routing a
record through each possible path. These tests are performed to
ensure that each workflow process accurately reflects the
business process.
This kind of testing holds good for workflow-based
applications.
Workflow Testing - Process:

 Understand the business workflow

63
 Develop test cases using various techniques (use case,
decision table, etc.).

 Verify the flow with various user types (viz - Admin,


Update user, View).

 Perform positive and negative tests.

 Compare the expected and actual results and log defects.

 Fix defects and deploy.

Chapter 10:Screenshots of the


final project

64
Welcome Page

List of Restaurants

65
Menu Items Of The Restaurant

Cart Items

66
Order History/Status

Dashboard Of Restaurant admin

67
Add Item Form for Restaurant Admin

Edit/View List of Menu Items:

68
Remove Item Form for Restaurant Admin

69
Chapter 11:Screenshots of the
Code Samples
70
71
72
73
74
75
76
Chapter 12:Conclusions and
Future work

77
Conclusion:
The main objective of this project is to fill a specific niche in the
market by providing new start-up restaurants with the ability to
offer their customers an online ordering option without having
their café or restaurant and for customer it will be will be a great
solution for not visiting to the number of restaurants locally or
through websites to check their menu, they can select any
restaurant from the Foodizone and check their menus and can
order the food from their favourite restaurant.
The following results have been achieved after
completing the system and relate back to the system’s
objective:

a) Should allow users to browse through


different product categories: This is
78
achieved through an easy to use graphical
interface menu options.
b) Should allow users to save items to the cart
and view detailed information about the
order: The users can add any number of items
to the cart from any of the available food
categories by simply clicking the Add to Cart
button for each item.
c) Once item is added to the cart, user is
presented with detailed order to review.

d) .Should allow the user to Check Out the


item(s): This is achieved using the “Proceed
to checkout button” in the cart initially and
then “Check Out” button at last step after
“review Order” step.

e) Should allow the user to see Success message


after placing an order: This is achieved when
user successfully places an order. The user is
given the order conformation number along
with success message.

79
Future Work:
The following section describes the work that will
be implemented with future releases of the
software.

Customize orders: Allow customers to customize


food orders

Enhance User Interface by adding more user


interactive features.

Provide Deals and promotional Offer details to


home page.
Provide Recipes of the Week/Day to Home Page
80
Payment Options: Add different payment options
such as PayPal, Cash, Gift Cards etc. Allow to
save payment details for future use.

Allow to process an order as a Guest


Order Process Estimate: Provide customer a visual
graphical order status bar

Order Ready notification: Send an Order Ready


notification to the customer
Restaurant Locator: Allow to find and choose a
nearby restaurant.

Bibliography

1.Websites Accessed
https://www.w3schools.com https://www.Google.com
https://www.StackOverFlow.com https://www.Google.com

2.Books
Django For Beginners Build Websites With Python And
Django by William S. Vincent
Django documentation
Python: The Complete Reference
Software Engineering (Roger Pressman)

81
82

You might also like