Food delivery application report

AshwinBicholiya 15,847 views 54 slides Jan 04, 2021
Slide 1
Slide 1 of 54
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54

About This Presentation

FOOD DELIVERY APP is a application designed primarily for use in the food delivery industry. This application will allow hotels, café, street food vendors and restaurants to increase scope of business by reducing the labor cost involved. Application presents an interactive and up-to-date menu with ...


Slide Content

“Food Delivery Application”



A
Minor Project Report
Submitted in partial fulfillment of the requirement for the award of Degree
of Bachelor of Technology in Computer Science and Engineering Submitted to
RAJIV GANDHI PROUDYOGIKI VISHWAVIDYALAYA BHOPAL (M.P)


Project Guide Submitted By
Dr.Kailash Bandhu Ashwin Bicholiya(0875CS171030)
Aishwary Joshi(0875CS171012)
Arjun Soni(0875CS171026)
Dipendra kag(0875CS171042)

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
ACROPOLIS TECHNICAL CAMPUS,
INDORE (M.P.) 452020
2019-2020

ii

iii

Declaration
I hereby declared that the work, which is being presented in the project entitled
“FoodTukk(Food Delivery App)” partial fulfilment of the requirement for the award of
the degree of Bachelor of Engineering, submitted in the Department of Computer
Science & Engineering at Acropolis Technical Campus, Indore is an authentic record
of my own work carried under the supervision of “Dr.Kailash Bandhu”. I have not
submitted the matter embodied in this report for award of any other degree.

Ashwin Bicholiya(0875CS171030)
Aishwary Joshi(0875CS171012)
Arjun Soni(0875CS171026)
Dipendra kag(0875CS171042)

iv

Project Approval Form
I hereby recommend, that the project prepared under my supervision titled by FoodTukk
be accepted in partial fulfilment of the requirement for the degree of Bachelor of
Engineering in Computer Science & Engineering.

Dr. Kailash Bandhu
Supervisor

Recommendation concurred in


Prof. Radha shinde
Section In-charge


Prof. Nisha Bhati
Section In-charge



Dr. Kailash Bandhu
Project Coordinator

v

vi

Acropolis Technical Campus
Deparment of Computer Science & Engineering




Certificate
The project work entitled “FoodTukk” submitted by Ashwin Bicholiya(0875CS171030),
Aishwary Joshi (0875CS171012), Arjun Soni (0875CS171026), Dipendra Kag
(0875CS171042) is approved as partial fulfillment for the award of the degree of
Bachelor of Engineering in Computer Science & Engineering by Rajiv Gandhi
Proudyogiki Vishwavidyalaya, Bhopal (M.P.).





Internal Examiner External Examiner
Name:………………. Name: ……………..
Date: …./…/……….. Date: …./…/………..

vii

Acknowledgement
With boundless love and appreciation, we would like to extend our heartfelt gratitude and
appreciation to the people who helped us to bring this work in reality. We would like to
have some space of acknowledgement for them.
Foremost, our would like to express our my sincere gratitude to our supervisor, Dr.
Kailash Bandhu whose expertise, consistent guidance, ample time spent and consistent
advices that helped us to bring this study into success.
To the project Coordinator Dr. Kailash Bandhu for their constructive comments,
suggestions, and critiquing even in hardship. I also want to thank Section Incharge Prof.
Radha Shinde and Prof. Nisha Bhati for letting my work be an enjoyable moment and
for your brilliant comments and suggestions.
To the Prof. Prashant Lakkadwala, Head, Department of Computer Science &
Engineering for his favourable responses regarding the study and providing necessary
facility.
To the honourable Dr. Sanjay T. Purkar, Principal, ATC, Indore for his unending
support, advises and effort to make possible.
Finally, we would like to pay our thanks to faculty members and staff of Department of
Computer Science & Engineering for their timely help and support.
We also like to pay thanks to our parents for their eternal love, support and prayers.
Without them it is not possible.


Ashwin Bicholiya(0875CS171030)
Aishwary Joshi(0875CS171012)
Arjun Soni(0875CS171026)
Dipendra kag(0875CS171042)

viii


Abstract
Mobile applications can be one of the best ways to keep consumers engaged with a brand
as they are on the move. With the increase in demand for smart phones and efficiency of
wireless networks, the demand for mobile applications has increased incredibly. Android
is one of the most popular open source platforms that offer the developer full access to
the framework API's so as to build innovative applications. Our project “FoodTukk” is an
android application which helps the user to order the desired food from the restaurants .
This projects overall gives the easier way to order the desired food from home bethe
restaurant which will save time with its simple and effectiveness. The main aim of this
project is to build an Android application that helps the users to order food from home
with specified restaurants and according to the specified tastes. The users can register and
login to the app by providing their details. The users can order the food as their desire and
they can pay through Cash On Delivery or Credit Card/Debit Card.The admin will have
control over the entire system. He can view everyone's profile associated with the
restaurant. The admin can view records of users and as well all the users associated to the
app have to register. Only registered people can have access to order.
The users should get registered to order the food. The user can view the restaurants and
order the available items through the application. They can also view the restaurant's
profiles only to know their specialization, their records so that they can approach those
specific restaurant to get food.

ix

x

Table of Content
Chapter 1: Introduction ....................................................................................................... 1
1.1 Rationale ................................................................................................................... 1
1.2 Goal ........................................................................................................................... 2
1.3 Objective ................................................................................................................... 3
1.4 Methodology ............................................................................................................. 3
1.5 Role ........................................................................................................................... 5
1.6 Contribution of Project ............................................................................................. 5
1.6.1 Market Potential ................................................................................................. 5
1.6.2 Innovativeness.................................................................................................... 5
1.6.3 Usefulness .......................................................................................................... 6
1.7 Report Organization .................................................................................................. 6
Chapter 2: Requirement Engineering.................................................................................. 7
2.1 Requirement Collection ............................................................................................ 8
2.1.1 <Collection Type 1> ......................................... Error! Bookmark not defined.
2.1.2 <Collection Type N> ........................................ Error! Bookmark not defined.
2.2 Requirements ............................................................................................................ 9
Chapter 3: Analsis & Design ............................................................................................ 12
3.1 Use-case Diagrams.................................................................................................. 12
3.2 Activity Diagrams ................................................................................................... 14
3.3 Sequence Diagrams................................................................................................. 17
3.4 Class Diagrams ....................................................................................................... 18
3.5 Data Design............................................................................................................. 22
3.5.1 Schema Definitions .......................................................................................... 25
3.5.2 Integrity Constraints......................................................................................... 26

xi

3.6 System Architecture ................................................................................................ 27
Chapter 4: Construction .................................................................................................... 29
4.1 Implementation ....................................................................................................... 29
4.1.1 Implementation Details .................................................................................... 29
4.2 Testing..................................................................................................................... 30
4.2.1 White Box Testing ........................................................................................... 31
4.2.2 Black Box Testing............................................................................................ 32
Conclusion & Future Works…………
Appendix A

1

Chapter 1
Introduction
FoodTukk : Food Delivery App is a application designed primarily for use in the food
delivery industry. This application will allow restaurants, hotel, café and street vendors to
increase scope of business by reducing the labor cost involved. Application presents an
interactive and up-to-date menu with all options available in an easy to use manner.
Customers can signup and signin in the app while they can use Google Signin to use the
app. Customers can choose one or more orders from the desired restaurants. If Customer
wants to remove one of the order then there is a drag and drop option which will help
customers to remove the order. After ordering customer will land to cart option and then
to the checkout where they can pay via Cash On Delivery or Credit Card/Debit Card.
After Successful Order the Customers can see the Map where they can track the order
and can see the time of the orders to be delivered. Once the order is placed it is entered in
the database and retrieved in pretty much real time.
This Application will allow Restaurants to register and login and add the details for their
restaurants like restaurant name, restaurant image, food name, food price and food
images which will be shown to the Customers.
This Application will have Admin Login Where the admin can operate whole app and all
the details of customers and restaurants. Admin can Update, Add and Delete
Informations.
1.1 Rationale
The top reasons why Food Delivery Application. The reason are so many restaurants are
turning to online ordering is that the huge demand is there. Customers want the
convenience of ordering a meal and having it delivered to their home or office. Offering
the service means you stay competitive in the restaurant industry

2

1.2 Goal
Mobile applications can be one of the best ways to keep consumers engaged with a brand
as they are on the move. With the increase in demand for smart phones and efficiency of
wireless networks the demand for mobile applications has increased incredibly. Android
is one of the most popular open source platforms that offers the developers full access to
the framework API's so as to build innovative applications
The main aim of this project is to build an Android application that helps the users to
order food from the specified restaurants and according to the specified tastes The main
features provided by the FoodTukk application are as follows :
• Customers can signup and signin and also they can signin via Google.
• Restaurant can signup and sigin.
• Provides the searching facilities based on various factors. Such as Food item, Cart,
Order, Customer.
• It also manage the Delivery details online for Order details, Customer details, Food
item.
• It tracks all the information of Category, Delivery, Order etc
• Manage the information of Category.
• Shows the information and description of the Food item, Cart.
• 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.
• Manage the information of Order.

3

1.3 Objective
The main objective of the Project on Online Food Delivery Application is to manage the
details of Food item, Category, Cart, Order, Customer. It manages all the information
about Food item, Delivery, Customer, Food item. The project is totally built at user,
restaurant and administrator 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, Delivery, Cart. It tracks all the details about the
Cart, Order, Customer.

1.4 Methodology
The Methodology Adopted is “Agile Methodology”.

The Agile Method and methodology is a particular approach to project management that
is utilized in software development. This method assists teams in responding to the

4

unpredictability of constructing software. It uses incremental, iterative work sequences
that are commonly known as sprints.
A sprint is a period of time allocated for a particular phase of a project. Sprints are
considered to be complete when the time period expires. There may be disagreements
among the members of the team as to whether or not the development is satisfactory;
however, there will be no more work on that particular phase of the project. The
remaining phases of the project will continue to develop within their respective time
frames.
1.4.1 The General Principles of the Agile Method
• Satisfy the client and continually develop software.
• Changing requirements are embraced for the clients competitive advantage.
• Concentrate on delivering working software frequently. Delivery preference will be
placed on the shortest possible time span.
• Developers and business people must work together throughout the entire project.
• Projects must be based on people who are motivated. Give them the proper environment
and the support that they need. They should be trusted to get their jobs done.
• Face-to-face communication is the best way to transfer information to and from a team.
• Working software is the primary measurement of progress.
• Agile processes will promote development that is sustainable. Sponsors. developers,
and users should be able to maintain an indefinite. constant pace.
• Constant attention to technical excellence and good design will enhance agility.
Simplicity is considered to be the art of maximizing the work that is not done. and it is
essential.
• Self-organized teams usually create the best designs.

5

1.5 Role
Role of individual member may in each phase of software development or anything else.
Team
Members
Requirment
Gatherings
Analysis Design Implementation Testing Documentation
Ashwin
Bicholiya
✓ ✓ ✓ ✓ ✓ ✓
Aishwary
Joshi
✓ ✓ ✓ ✓ ✓
Arjun
Soni
✓ ✓ ✓ ✓
Dipendra
Kag
✓ ✓ ✓ ✓ ✓

1.6 Contribution of Project
Refer to Synopsis Format.
1.6.1 Market Potential
The food delivery application has huge market demand as many apps are growing in food
delivery industry. As people nowadays like to order directly from the applications. In
upcoming future the market value of our application is only supposed to increment.

1.6.2 Innovativeness
First of all there is a huge demand of this food delivery applications as all the restraunts
are shifting towards food delivery applications. One can easily get food within minutes
by just ordering from home. Food deliveries are very cheap and fast as compared to
having maids for meals. As there exist very few number of food delivery applications in
the market, we tend to propose our interesting food delivery application. It is an
innovative idea because people loves to order from a verity of restraunts bethe home.

6

1.6.3 Usefulness
By the help of our application one can have their meals within no time of ordering.It can
save enormous amount of people’s time as many a times people who are having 9 to 5
job often skip their meals.
1.7 Report Organization
The remaining section of the report is structured as follows. Chapter 2 provides detailed
business and technical requirements. Different steps taken for information collection are also
discussed in this chapter. Chapter 3 provides details analysis…………….. and so on.

7

Chapter 2
Requirement Engineering
Requirement Engineering is the process of defining, documenting and maintaining the
requirements. It is a process of gathering and defining service provided by the system.
Requirements Engineering Process consists of the following main activities:
 Requirements elicitation
 Requirements specification
 Requirements verification and validation
 Requirements management

Requirements Elicitation:
It is related to the various ways used to gain knowledge about the project domain and
requirements. The various sources of domain knowledge include customers, business
manuals, the existing software of same type, standards and other stakeholders of the
project.
The techniques used for requirements elicitation include interviews, brainstorming, task
analysis, Delphi technique, prototyping, etc. Some of these are discussed here. Elicitation
does not produce formal models of the requirements understood. Instead, it widens the
knowledge domain of the analyst and thus helps in providing input to the next stage.

Requirements specification:
This activity is used to produce formal software requirement models. All the
requirements including the functional as well as the non-functional requirements
and the constraints are specified by these models in totality. During specification,
more knowledge about the problem may be required which can again trigger the
elicitation process.
The models used at this stage include ER diagrams, data flow diagrams(DFDs),
function decomposition diagrams(FDDs), data dictionaries, etc.

Requirements verification and validation:
Verification: It refers to the set of tasks that ensure that software correctly implements a
specific function.
Validation: It refers to a different set of tasks that ensure that the software that has been
built is traceable to customer requirements.
If requirements are not validated, errors in the requirements definitions would propagate
to the successive stages resulting in a lot of modification and rework.
The main steps for this process include:
 The requirements should be consistent with all the other requirements i.e no two
requirements should conflict with each other.
 The requirements should be complete in every sense.
 The requirements should be practically achievable.
Reviews, buddy checks, making test cases, etc. are some of the methods used for this.

8

Requirements Management:
Requirement management is the process of analyzing, documenting, tracking, prioritizing
and agreeing on the requirement and controlling the communication to relevant
stakeholders. This stage takes care of the changing nature of requirements. It should be
ensured that the SRS is as modifiable as possible so as to incorporate changes in
requirements specified by the end users at later stages too. Being able to modify the
software as per requirements in a systematic and controlled manner in an extremely
important part of the requirements engineering process.



2.1 Requirement Collection
2.1.1 IDE : Integrated Development Environment
An IDE typically contains a code editor, a compiler or interpreter, and a debugger, accessed
through a single graphical user interface (GUI). The user writes and edits source code in the code
editor. The compiler translates the source code into a readable language that is executable for a
computer. And the debugger tests the software to solve any issues or bugs.
2.1.2 Database:
A database is a collection of information that is organized so that it can be easily accessed,
managed and updated. Computer databases typically contain aggregations of data records
or files, containing information about sales transactions or interactions with specific
customers.
2.1.3 SDK Software Development Kit:
A software development kit (SDK) is a collection of software development tools in one
installable package. They ease creation of applications by having compiler, debugger and
perhaps a software framework. They are normally specific to a hardware platform and
operating systems combination.
2.1.4 Programming Language:
A programming language is a formal language, which comprises a set of instructions that
produce various kinds of output. Programming languages are used in computer

9

programming to implement algorithms. Most programming languages consist of instructions
for computers.
2.1.4 OS (Operating System):
An operating system is system software that manages computer hardware, software
resources, and provides common services for computer programs.
2.2 Requirements
2.2.1 Functional Requirements:
• Application can be run on the wifi or cellular network.
• Firebase can be used to stored the data of customer and restaurant & displayed those
data to each other.
• Restaurant can be searched by user.
• User can order the food.
• User can pay via Cash On Delivery or Credit/Debit Card.
• User can directly call to restaurant.
2.2.2 Non-Functional Requirements:
For developing the application the following are the Hardware Requirements.
Processor: Intel core i3 or higher
RAM: 4 GB
Space on disk: minimum 10GB

10

Flutter:

Flutter is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web,
and desktop from a single codebase. Flutter works with existing code, is used by developers and
organizations around the world, and is free and open source.
2.2.3 Visual Studio Code:

Visual Studio Code is a code editor redefined and optimized for building and debugging modern
web and cloud applications. Visual Studio Code is free and available on your favorite platform -
Linux, macOS, and Windows.

11

2.2.4 Android Studio:

Android Studio is the official integrated development environment (IDE) for Google's Android
operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for
Android development. It is available for download on Windows, macOS and Linux based
operating systems.
2.2.5 Firebase:

Firebase is a Backend-as-a-Service — BaaS — that started as a YC11 startup and grew
up into a next-generation app-development platform on Google Cloud Platform.

12

... Firebase frees developers to focus crafting fantastic user experiences. You don't need
to manage servers. You don't need to write APIs.
2.2.6 Dart Programming Language:


Dart is a client-optimized programming language for apps on multiple platforms. It is
developed by Google and is used to build mobile, desktop, backend and web
applications. Dart is an object-oriented, class defined, garbage-collected language using
a C-style syntax that transcompiles optionally into JavaScript.
Chapter 3
Analysis & Design
3.1 Use-case Diagrams
A use-case diagram is a graphical depiction of the interaction among the elements of a
system. A use-case is a methodology used in system analysis to identify, clarify, and
organize system requirements. In this context, the term "system" refers to something
being developed or operated, such as a mail-order product sales and service web site Use
case diagrams are employed in UML, a standard notation of real world objects and

13

systems. System objectives can include planning overall requirement, validating a
hardware design, testing and debugging a software product under development creating
an online help reference, or performing a consumer-service-oriented task. The main
components of use-case are:
• Actor.- something with a behavior or role, e g., a person, another system, organization.
• Scenario.- a specific sequence of actions and interactions between actors and the
system.
• Use case:- a collection of related success and failure scenarios, describing actors using
the system to support a goal.
A use case diagram captures the actors and the role they perform in a system. It depicts
the roles performed by each actor. The three actors for this project are Admin, Customers
and Restaurant. Customers and Restaurant can register, login and view their own profile
and each other profile respectively. And they can update their profile. Customers can
gives feedback and restaurant can view feedback, both can change their password if they
required.
A use-case is a methodology used in system analysis to identify , clarify, and organize
system requirements. In this context, the term "system" refers to something being
developed or operated , such as a mail-order product sales and service web site. Use case
diagrams are employed in UML, a standard notation of real-world objects and systems.

14


Figure 3.1: Use-case Diagram of FoodTukk

3.2 Activity Diagrams
Activity diagram is another important diagram in UML to describe dynamic aspects of
the system. Activity diagram is basically a flow chart to represent the flow form one
activity to another activity. The activity can be described as an operation of the s drawn
from one operation to another. This flow can be sequential, system. So the control flow is
branched or concurrent. control by usin Activity diagrams deals with all type of flow g
different elements like fork, join etc.
When to use an Activity Diagram:-
• When describing work flow across many use cases.

15

• When analyzing a use case, and before methods are assigned to symbols.
• When dealing with multi-threaded applications.


Figure 3.2: Activity Diagram of the Login

16



Figure 3.3: Activity diagram for Google Login

17


Activity diagram for FoodTukk application
3.3 Sequence Diagrams
A Sequence diagram is an interaction diagram that shows how objects operate with one
another and in what order It is a construct of a message sequence chart it shows object
interaction arranged in time sequence It depicts the objects and classes involved in the
scenario and the sequence of messages exchanged between the objects needed to carry
Oct the functionality of the scenano Sequence diagrams are typically associated with use
case realizations in the Logical View of the system under develoPment. Sequence
diagrams are sometimes called event diagrams or event scenarios. A sequence diagram
shows as parallel vertical lines (lifelines).
In this application we use the sequence diagrams consisting main objects are user, system
and restaurant The working of the objects done step by step.

18


Figure 3.3 : Sequence Diagram of the FoodTukk
3.4 Class Diagrams
A class is a description of a set of object They share the same attributes, operations,
relationships and semantics. The package in which class name is a simple one or it may
prefix by the that class lives, An Defaults values can attributes is a named property of a
class be assigned to attrib service that can be req attributes An operation is the
implementation of a uested from any object of the class to affect behavior.
A responsibility is a contract or an obligation of a class. Visibility specifies whether
attributes, operations can be used by other classifiers. In this application we use the class
diagrams consisting main classes and their subclasses. The attributes of those classes are
defined in second section and the functions are defined in the third section of this class.
The main home class is connected by the other classes through the aggregation
relationship and those classes are connected by the sub classes through the association
relationship. each class performing their own work. Home class having the aggregation
relationship with user registration, restaurant registration, user login, restaurant login,
admin login Those subclasses having the association relationship with the other sub

19

classes and they are view profile, feedback, change password, view order, add offer,
update offer, view restaurant, send message.
Class Description
There are three ,nain classes -
The Admin can view the profile of customers as well as restaurants and also can update
and delete the profile of customers, restaurants and its own. He/she can also view the
offers which is provided by restaurants and also view the feedbacks which is provided by
the customers to the restaurants. The Customer have to registered on this application and
they can view the profile of them and update it They can view the offers which is
provided by the particular restaurant and also customer can call the restaurant and book
the table or order the food and also give their opinions about the restaurants by giving a
rating and writing a review.

Figure 3.4 : Class Diagram of the FoodTukk

20



3.5 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
Many-to-many
Many-to-one
One-to-many
One-to-one

21

• Weak entities
• Sub-type and super-type
The entities and their relationshops between them are shown using the following
conventions.
• An entity is shown in rectangle.
• A diamond represent the relationship among number of entities.
• The attributes shown as ovals are connected to the entities or relationship by lines.
• Diamond,oval and relationships are labeled.



Figure 3.5 : ER Diagram of the FoodTukk

22

3.6 Data Flow Daigram
A dataflow diagram is a graphical representation of the flow of data between process. In
other words, it shows:
• What goes in
• How it is changed
• What comes out
The following Symbols are generally used:
• Data flow is represented by a labeled arrow
• Process are represented by labeled circles
• Information source and sinks are represented by boxes

Context Level DFD (0 Level DFD) :

23

1 Level DFD :

24

2
nd
Level DFD :

25

3.7 Data Design
3.7.1 Schema Definitions
We have used NoSQL database so the Schema is in the format of JSON.
User {
User id:”value”[
“value”,
“value”
]
Email id: “value”
Password: “value”
Name: “value”
}
Restaurant {
Restaurant id: “value” [
“value”,
“value”
]
Email id: “value”
Password: “value”
Name: “value”
}
RestaurantData {
RestaurantData: “value” [
“value”

26

“value”
]
Amount: “value”
FoodName: “value”
ImageUrl: “value”
RestaurantName: “value”
}


3.7.2 Integrity Constraints
● We are using Firebase hence the data that is requested or updated are stored in
device offline then if there is an internet connection the data is synchronized with
the cloud.
● It also has auto re-attempt functionality that retries automatically if there is some
issue with the internet or server.

27

3.8 System Architecture



The structure of the system can be divided into 3 main logical components:
• Food Delivery App - provides the functionality for customers to place their order and
supply necessary details.
• Menu Management - allows the restaurant to control what can be ordered by the
customers
• Order Retrieval System - This is a final logical component. Allows restaurant to keep
track of all orders placed.
This component takes care of order retrieving and displaying order information.

28

29

Chapter 4
Construction
4.1 Implementation
We decided to select food delivery application for our project as it is in heavy demand.
We have implemented our application by Dart programming language with the help of
Flutter SDK. For the implementation of database we have selected Firebase and for the
source code editor and automation tool we used VS Code.
4.1.1 Implementation Details
4.1.1.1 Software Details
For delevoping application following are the Software Requirements:-
Operating System: Windows 10
Language: Flutter SDK, Dart
Database: Firebase
Technologies used Flutter SDK, Dart, Firebase, Android Studio, Vs Code
Debugger: Android Dalvik Debug Monitor service
For running the application the following are the Software Requirements:
Operating System. Android 5.0 or higher versions
Network: Wi-Fi Internet or cellular Network 3
4.1.1.2 Hardware Details
Processor: Minimum 1 GHz
Memory (RAM): Minimum 2 GB
Hard Drive: Minimum 100MB

30

4.2 Testing
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.
Testing Scope :
Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and code generation Once source code has been
generated, software must be tested to uncover and correct as many errors as possible
before delivery to the customer. Our goal is to design a series of test cases that have a
high likelihood of finding errors. That's where software-testing techniques come in to the
picture. These techniques provide systematic guidance for designing tests that
1. Exercise the internal logic of software components and
2. Exercise the input and output domains of the program to uncover errors in program
function, behavior and performance.
Testing of the software leads to the uncovering of errors in the software functional and
performance requirements are met. Testing also provides a good indication of software
reliability as software quality as a whole. The result of the different phases of testing are
evaluated and then compared with the expected results. If the errors are uncovered they
are debugged and corrected. A strategy approach to software testing has the generic
characteristics:
1. Testing begins at the module level and works "outwards° towards the integration
of the entire computer based system.
2. Different testing techniques are appropriate Testing and Debu at different points
of time.
3. Testing and Debugging are different activities, but debugging must be
accommodated in the testin, strategy A strategy for the software testing must
aCcon.m.dated low level tests that are necessary to verify that a small source code

31

segment is Pertbrining correctly according to the customer's requirements and that
of developer's expectations.

Testing Principle:
Testing is the process used to measure the quality of developed computer software
software is a Process designed to make computer code does that it was designed
to do and that does not do anything unintended. One of the primary causes of poor
program testing is the tact that most programmer begin with a false definition of
the term They might say testing Is the processed demonstrating that error are not
present.
1. The purpose of testing is to show that a program performs its intended
function correctly.
2. "Testing is a process of establish confidence that program does what it is
supposed to do ". this last statement are all based on false primes At the start
of testing, a program should not be merely tested to show that it work Rather
the test should start with the assumption that the program contains error and
the goal is to find as many error as possible.
4.2.1 White Box Testing
White box testing approach focus on the program control structure .Knowing the internal
working of program. test can be conducted to ensure that internal operations are
performed According to specification and all internal components have been exactly
exercised It examines the logic of the program by testing every path of the program.
White box testing improves its quality through condition testing winch attempts to find
errors in the following categories:
1. Boolean operator error
2. Boolean variable error
3. Relational operator error

32

Complexity of test and uncovered error is limited by the constrained scope establish for
unit testing The unit test is white box oriented, and the step can be conducted in parallel
for multiple components.
4.2.2 Black Box Testing
Black box testing This approach locus on the functional requirements of the software
Knowing the specified function that a product has been designed to perform, tests can be
conducted that demonstrate each function is fully operational while at the same time
searching for errors in each function. Black box testing attempts to find errors in the
following categories
1. Incorrect or missing unction
2. Interface errors
3. Errors in database and external data base access.
Testing involves the various text and invalid entries in the name text box, trying to filling
of invalid entries in the flex grid, etc.
Test Case: N+1
Test Case: M

4.3: Test Cases
4.3.1 Unit Testing
In unit testing, various modules have been tested individually. This has been done
manually to test if the expected result is actually seen on the screen. The following are
the test cases with the help of which the application has been tested.
Sr. No Test-case Description Expected Result Actual Result
1. On Load of Home Screen Take Minimum 5 sec Pass
2. On clicking Sign in as user Display the screen of User Pass

33

login
3. On clicking Sign in With Google Display all Google accounts
that logged in mobile device
Pass
4. On clicking the Food item Item Added in the cart Pass
5. On clicking the Next Button Display the Payment Option
Screen
Pass
6. On clicking Cash on Delivery Display the Map Screen Pass
7. On clicking Debit and Credit card
option
Display the Payment Screen Pass
8. On Clicking the Logout Button Profile get Logout Pass
9. On clicking Sign in as Restaurant Display the Screen of
Restaurant Login
Pass
10. On Clicking image Url, Restaurant
Name, Food Name & Amount
Take the above details. Pass
11. On clicking Submit Button Update the Details of
Restaurant Data On Server
Pass
12. On Clicking the Logout Button Profile get Logout Pass

Conclusion & Future Works
Conclusion:
This is our first, attempt in developing a mobile application which gave us a basic
understanding of development and challenges of mobile application development. The
main aim of the project is to provide an easy to use application for ordering food online
from specified restaurants. The application has been implemented and tested on real
devices. As far as we tried our best to make the application perfect and real application. It

34

allows customers to order the food and to track their order and directions from restaurants
and also it allows restaurant owners to manage orders from customers immediately
whenever he or she logged in into the system. Our experience in developing Online Food
Delivery App using smart phones shows the capabilities of wireless communication and
smart phone technology in fulfilling and improving business management and service
delivery. This system is convenient, effective , it's easy to install, cost-effective, flexible.

Future Work:
The application can be improved in many ways and can be extended to support more
devices like the tablets and iOS devices. In the upcoming days we can improve our
application by adding delivery page where the delivery boy can track the order of users.
Also we will add offer page where users can get the best deals on food.

35

Appendix A
<<Snapshots of the project>>

















Main Page Google login page

36






















Profile Screen Home page

37























Order page Side tab

38























View Cart Item removal

39























Empty cart Payment Screen

40




















Credit/Debit card page Payment confirmnation page

41




















Resturant Screen Resturant detail confirmation

42



















Map

43


Firebase Authentication

Firebase Database