Major Report Pallavi

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 84

MAJOR PROJECT REPORT

ON

“ONLINE FOOD ORDERING APPLICATION”


Submitted in partial fulfillment of the
Requirements for the award of
Degree of Bachelor of Computer Applications

SUBMITTED BY:

Name: Pallavi Yadav


(Roll No: ASC-199420)

EMAIL ID: pallaviyadav035@gmail.com

SUBMITTED TO:

Dr. Aditya Khamparia, Phd


Assistant Professor

DEPARTMENT OF COMPUTER SCIENCE

BABA SAHEB BHIMRAO AMBEDKAR UNIVERSITY


SATELLITE CAMPUS, TIKARMAFI, AMETHI (UP -227413)
Page | i
CERTIFICATE

The project report entitled “ONLINE FOOD ORDERING APPLICTAION” is prepared and
submitted by Pallavi Yadav, who has partially completed the Major Project during the semester
from January to May of Academic session 2019-22. It has been found satisfactory in terms of
scope, quality, and presentation as partial fulfillment of the requirements for the award of the
degree of Bachelor of Computer Application in Babasaheb Bhimrao Ambedkar University
Satellite Campus, Amethi, India.

Signature & Seal of Supervisor

Page | ii
DECLARATION

I hereby declare that the project entitled “ONLINE FOOD ORDERING


APPLICATION” submitted by me to the Babasaheb Bhimrao Ambedkar University
Satellite campus, Amethi in partial fulfillment of the requirements for the award of the
degree of Bachelor of Computer Application is a record of work carried out by me,
under the supervision of Dr. Aditya Khamparia. I further declare that the work
reported in this project has not been submitted and will not be submitted either in part or in
full, for the award of any other degree or diploma of this university or any other institute
or university. ss

Signature of Student

Pallavi Yadav

Roll No. – ASC-199420

Mobile No. - 6307912730

Email ID - pallaviyadav035@gmail.com

Date:

Certified that the above statement made by the student is correct to the best of our knowledge
and belief.

Signature of Supervisor : Signature of Examiner :

Page | iii
ACKNOWLEDGEMENT

This satisfaction that accompanies the successful completion of this project would be
incomplete without the mention of the people who made it possible, without constant
guidance and encouragement would have made efforts go in vain. I consider myself
privileged to express gratitude and respect to all those who guided us through the
completion of this project.

I convey thanks to my project guide, Dr. Aditya Khamparia of Computer Science


Department for providing encouragement, constant support and guidance which was of
great help to complete this project.

Last but not least, I wish to thank my parents for financing our studies in this college as
well as for constantly us to learn the knowledge. Their personal sacrifice in providing this
opportunity to learn is greatly acknowledged.

ABSTRACT
Page | iv
Babasaheb Bhimrao Ambedkar
University satellite Campus
(A Center University) Amethi.

ABSTRACT
Author Pallavi Yadav
Title ONLINE FOOD ORDERING
APPLICATION
The year 2022
Language English
Pages 75

The purpose of the online food ordering application is to automate the existing manual system
using computerized equipment and full-fledged computer software, meeting their requirements,
so that their valuable data/information can be stored for a longer period with easy access and
handling. of the same. The required software and hardware are readily available and easy to use.

The online food ordering application, as described above, can lead to an error-free, secure, reliable
and fast management system. This can help the user focus on other activities rather than record
keeping. Thus, it will help the organization to make better use of the resources. The organization
can keep computerized records without redundant entries. This means that one does not need to be
distracted by information that is irrelevant, while still being able to access the information.

The aim is to automate their existing manual system using computerized equipment and
full-fledged computer software, meeting their requirements, so that their valuable
data/information can be stored for a longer period of time with access and easy handling thereof.
Basically, the project describes how to manage for good performance and better services for
customers.

Page | v
Table of Contents
Certificate.…………………………………………………………………………………..ii

Declaration.…………………………………………………………………………………iii

Acknowledgement ………………………………………………………………………….iv

Abstract……………………………………………………………………………………...v

List of figures ………………………………………………………………………………viii

CHAPTERS :
Chapter 1: Introduction…………………………………………………1-5
1.1. Introduction

1.2. Objectives
1.3. Functionalities provided by Online Food Ordering Application are as follows

1.4. Scope of the Project Online Food Ordering Application

1.5. Modules of Online Food Ordering Application


1.6. Input Data and Validation of Project on Online Food Ordering Application

1.7. Features of the Project

Chapter 2: Tools And Technology……………………………………..6-18


2.1. About Android

2.2. iOS

2.3. Flutter

2.4. Dart Programming Languages

Chapter 3: Requirement Specification…………………………………..19-25


3.1 Background

3.2 Requirement Analysis

3.2.1 Functional Requirements

3.2.2 Non Functional requirements


Page | vi
3.3.3 Hardware & Software requirements

Chapter 4: Data Flow Diagram……………………………………...…..26-29


4.1. Introduction

4.2. Use case Diagram

4.3. Context level DFD for Online food system

Chapter 5: Design……………………………………...………………..30-34
5.1. Architectural Design

5.2. Background Management Platform

5.2.1 Log In

5.2.2 Category Management

5.2.3 Product Info Management

5.2.4 Order Management

Chapter 6: Implementation and Testing………………………………35-40


6.1 Implementation of Authentication

6.2 Implementation of Profile

6.3 Implementation of Database

6.4 Implementation of Navigation

6.5 Testing Implementation

6.5.1 Testing

6.5.2 Unit Testing

6.5.3 Unit Test Case

6.5.4 Test Execution

Chapter 7: ScreenShot………………………………………………..41-65

Page | vii
Chapter 8: APPENDIX ……………………………………………66-70
Chapter 9: Conclusion & Future Work…………………………71-73
Chapter 10: References…………………………………………….74-75

List of Figures
Fig.2.1 Android

Fig.2.2 Android Architecture


Fig.2.3 AVD

Fig.2.4 Android Version


Fig.2.5 Flutter

Fig.2.6 Features of Flutter


Fig.2.7 Dart in Flutter
Fig 2.8 Dart Features
Fig.3.1 SDLC Models

Fig.3.2 Waterfall Models


Fig.3.3 Ordering System Modules

Fig.4.1 Data Flow Diagram

Fig.4.2 Use Case Diagram

Fig.5.1 Architectural Design


Fig.5.2 Admin Controller
Fig.5.3 Background Management Platform Login
Fig.5.4 Product Category Management
Fig 6.1 Firebase Console
Fig. 6.2 Authentication

Fig.6.3 Users Profile

Page | viii
Fig.6.4 Users details

Fig.7.1 App Logo


Fig.7.2 Result of the application
Fig. 8.1 Firebase
Fig.8.2 Sellers App Dependencies

Fig.8.3 Users App Dependencies

Fig.8.4 Riders App Dependencies

Page | ix
CHAPTER -1
INTRODUCTION

Page | 1
1.1 Introduction

The "Online Food Ordering Application" 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, Delivery, Customer. Every Online Food Ordering
Application 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 executive
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

1.2 Objective :
The main objective of the online food ordering system project is to manage the details
of food, category, customer, order and order confirmation. It manages all information about food
products, payment, order confirmation, food products. The project is completely built on the
administrative side and therefore only the administrator has guaranteed access. The goal of the
project is to build an application program to reduce the manual work of food, category, payment
and customer management. It tracks all the details about the customer, the order, the order
confirmation.

1.3 Functionalities provided by Online Food Ordering Application are as follows:

 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
Page | 2
 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.

1.4 Scope of the Project Online Food Ordering Application :


It may help collecting perfect management in details. 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
Application. 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 Application.

 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
Page | 3
 Be expandable

1.5 Modules of Online Food Ordering Application:

 Food Item Management Module: Used for managing the Food Item details.
 Confirm Order Module : Used for managing the details of Confirm Order.
 Payment Module : Used for managing the details of Payment.
 Category Management Module: Used for managing the information and details of the
Category.
 Customer Module : Used for managing the Customer details.
 Order Module : Used for managing the Order Informations.
 Login Module: Used for managing the login details.
 Users Module : Used for managing the users of the system.

1.6 Input Data and Validation of Project on Online Food Ordering Application:

 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’t 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.

Page | 4
1.7 Features of the Project:
 Product and Component based.
 Creating & Changing Issues at ease.
 Query Issue List to any depth.
 Reporting & Charting in more comprehensive way.
 User Accounts to control the access and maintain security.
 Simple Status & Resolutions.
 Multi-level Priorities & Severities.
 Targets & Milestones for guiding the programmers.
 Attachments & Additional Comments for more information.
 Robust database back-end.
 Various level of reports available with a lot of filter criteria’s.
 It contain better storage capacity.
 Accuracy in work.
 Easy & fast retrieval of information.
 Well designed reports.
 Decrease the load of the person involve in existing manual system.
 Access of any information individually.
 Work becomes very speedy.
 Easy to update information.

Page | 5
CHAPTER -2
TOOLS
AND
TECHNOLOGY

Page | 6
The various tools and technologies that are being used in this project are as
follows:-

2.1 ABOUT ANDROID:


Android is a Linux based mobile operating system that works on smartphones and tablets.
The device was developed by the Open Handset Alliance (OHA), led by Google and other
organizations.

In 2005, Google acquired Android Inc., Its first software developer. A group of 86
companies, software and telecom companies dedicated to the early standards of mobile
development, the Open Handset Alliance announced in 2007 the launch of the Android
Distribution. The Android code has been released as open source under the Apache license.
Android management and optimization work assigned to the Android Open Source Project
(AOSP).

Android has a large developer community that creates software (or "applications") that
improve hardware functionality. The programmers used the modified version of Java for
most of their work. Apps are available for download through third party websites or online
stores such as Google Play (formerly Android Market), Google Play Store. More than
500,000 Android apps were available as of October 2011 and since December 2011 the
number of apps downloaded from the Android Market has exceeded 10 billion.

Kennelis listed Android as the world's best-selling smartphone platform in the fourth quarter
of 2010, with over 300 million Android smartphones in use in February 2012. Andy Rubin
from Google said that Android smartphones have been available since December 2011.
700,000 procedures are performed every day.

Page | 7
Fig.2.1 Android

1. Android Architecture:
Android has a Linux kernel based channel with C-based middleware, libraries and APIs, as
well as an application program that uses the Apache Harmony based Java libraries. Android
uses the "Dalvik" visual device, which can be used with the Dalvik dexcode (Dalvic
executable), often translated from Java bytecode.

Android platforms are built on ARM architecture. The Android x86 project provides x86
functionality, and Google TV uses a modified version of the Android x86-based operating
system. Although built with Android smartphones and tablets in mind, the open and
customizable software allows it to be used on many other electronic devices, including
laptops, notebooks, smart books, e-book readers, and smart TVs (Google TV). . In addition,
wrist watches, headphones, car CDs and DVD players, smart glasses (project glass),
refrigerators, car systems, home systems, ergonomic games, goggles, cameras, portable
media players, home phones and ceiling machines.

Android devices can report and communicate with Wi-Fi hotspots while roaming mobile
users, resulting in a database of hundreds of millions of locations in real time. These
repositories use electronic maps to locate smartphones, allow applications such as
Foursquare, Latitude and Location, as well as send local notifications.

Page | 8
Fig 2.2 Android Architecture

Page | 9
2. Android Virtual Device (AVD):
Emulator setup for Android Visual Device (AVD), which allows you to create a real device
model by setting the hardware and software parameters that mimic the Android emulator.
The Android Visual Device (AVD) configuration in Android Emulator determines the
characteristics of the Android phone, tablet, ware OS, Android TV or automation system
device you want to clone. AVD Manager from Android Studio is a simple interface that
allows you to create and manage AVD devices.

Fig.2.3 AVD

3. Android Studio, Version :

Android Studio is a development platform for the Android platform that includes the
Integrated Programming Environment (IDE. Android Studio is an open source software
licensed under the Apache 2.0 license. Since version 0.1 in May 2013, Android Studio is in
the pre-arrival stage and since version 0.8 in June 2014, it has been upgraded to beta.
Starting with version 1.0, the first stable release was published in December 2014.

Android Studio is an Android programming environment based on Intelligent IDEA


software from JetBrains. The Eclipse Android Development Toolkit (ADT) emerged as
Google's primary IDE for Android app development and is available for download on
Windows, Mac OS X and Linux.

With each release of Android Studio, more features are planned to be added. The current
version has the following features:
Page | 10
• Real Time Editing: WYSIWYG Editor - Live Encoder - Instant App Download
• Android Wear version 4.6 is supported. SDK for Android
• Assistance in building based on gradients.
• Features Fluffy tools to capture features, usability, version compatibility and other
issues.
• Features Templates for creating Android designs with simple features are available
via links.
• Sign application signature and pro-guard features.
• Interface Comprehensive layout editor that allows users to drag and drop user
interface elements, as well as preview themes on the big screen.

The process of creating new Android applications is called Android software development.
The Android Software Development Kit is often used to create applications, but additional
development tools are available.

The Android Software Programming Kit (SDK) includes comprehensive development tools.
De Debugger is one of them.

• Phone model based on QEMU,


• Public libraries
• Example code
• Messages

Fig.2.4 Android Version

Page | 11
2.2. iOS :
It is a mobile operating system developed by Apple Inc. for its hardware, for example, iPhone and
iPad. It is an operating system that supports the iPhone and iPod Touch; it also provided support
for the iPad before introducing iPad OS in 2019. It is the second most popular mobile operating
system globally after Android.

1. Features of iOS :

The iOS provides the following features:-

 Interface

Apple iOS provides a user-friendly interface that uses multi-touch gestures like swipe, tap, pinch,
etc., to facilitate the users interacting with the applications. The users can trigger any event using
switches, buttons and sliders. It uses internal accelerometers to respond to shaking the device or
rotating in 3D.

 In-App purchase

The iOS users can purchase various content like subscriptions, services and new features within
the application. Users can make in-app purchases on iOS, iPad OS, macOS, watch OS, and tv OS.

 Apple Pay

Apple pay can be integrated into iOS applications to provide an easy and secure way to make
payments. The authorization for the Apple Pay can be done using Face ID and Touch ID.

 Home Screen

The home screen in the iOS device contains the widget and app icons to launch the applications. It
displays the dock at the bottom where we can pin the most frequently used applications.

 Orientations

The iOS applications can be used in portrait and landscape orientations.


However, Apple provides size classes in XCode to develop the interface for landscape and portrait
orientations.

 Camera integration

Apple provides AV Foundation Capture Subsystem, a common high-level architecture for audio,
images, and video capturing services in iOS.

 Location services

Page | 12
With the user's permission, the Location Services allow the applications and website to access the
user's device location. The black or white arrow icon is shown in the status bar whenever the
location services are active.

 Maps

Apple provides a web mapping service to be used as the default map system for iOS. It includes
various features like flyover mode. To develop applications that use maps, we can use MapKit
provided by Apple.

 Accessibility

The apple provides various Accessibility features to be used for people with vision and hearing
disabilities. The features like voiceover provide a voice reading information that appears on the
screen. It allows the user to communicate with the OS with gestures. Apple keeps updating
accessibility to provide new features like pronunciation editor, which can be used with the voice
over, with iOS 10 in 2016.

2.3 Flutter :
Flutter is Google’s free, open-source software development kit (SDK) for cross-platform mobile
application development. Using a single platform-agnostic codebase, Flutter helps developers
build high-performance, scalable applications with attractive and functional user interfaces for
Android or IOS. Flutter relies on a library of pre-made widgets that make it simple for even people
with limited programming or development experience to launch their own mobile applications
quickly. Flutter is a layered system comprising the framework, the engine, and platform-specific
embedders. Flutter applications are built using Google’s Dart object-oriented programming
language. The Flutter engine itself is written primarily in C/C++. And the Skia library is the
backbone of Flutter’s graphics capabilities.

Page | 13
Fig.2.5 flutter

1. History of Flutter:

Flutter is a free and open-source UI software development kit introduced by Google. It is used to
build applications for Android, iOS, Windows, and the web. The first version of Flutter was
announced in the year 2015 at the Dart Developer Summit. It was initially known as
codename "Sky" and can run on the Android OS. After the announcement of Flutter, the first
Flutter Alpha version (v-0.06) was released in May 2017.

Later, during the keynote of Google Developer days in Shanghai, Google launched
the second preview of Flutter in September 2018 that was the last big release before Flutter 1.0
version. On December 4, 2018, the first stable version of the Flutter framework was released at
the Flutter Live event, denoting Flutter 1.0. The current stable release of the framework is Flutter
v1.9.1+hotfix.6 on October 24, 2019.

Page | 14
Fig.2.6 Features of Flutter

2. Advantages of Flutter:
Flutter comes with beautiful and customizable widgets for high performance and outstanding
mobile application. It fulfills all the custom needs and requirements. Flutter offers many more
advantages as mentioned below −
 Dart has a large repository of software packages which lets you to extend the capabilities
of your application.
 Developers need to write just a single code base for both applications (both Android and
iOS platforms). Flutter may to be extended to other platform as well in the future.
 Flutter needs lesser testing. Because of its single code base, it is sufficient if we write
automated tests once for both the platforms.
 Flutter’s simplicity makes it a good candidate for fast development. Its customization
capability and extendibility makes it even more powerful.
 With Flutter, developers has full control over the widgets and its layout.
 Flutter offers great developer tools, with amazing hot reload.
3. Disadvantages of Flutter :
Flutter has the following drawbacks in it −
 Since it is coded in Dart language, a developer needs to learn new language (though it is
easy to learn).
 Modern framework tries to separate logic and UI as much as possible but, in Flutter, user
interface and logic is intermixed. We can overcome this using smart coding and using
high level module to separate user interface and logic.

Page | 15
2.4 Dart Programming Language:

Dart is a general-purpose, high-level modern programming language which is originally developed


by Google. It is the new programming language which is emerged in 2011, but its stable version
was released in June 2017. Dart is not so popular at that time, but It gains popularity when it is
used by the Flutter.

Dart is a dynamic, class-based, object-oriented programming language with closure and lexical
scope. Syntactically, it is quite similar to Java, C, and JavaScript. If you know any of these
programming languages, you can easily learn the Dart programming language.

Dart is an open-source programming language which is widely used to develop the mobile
application, modern web-applications, desktop application, and the Internet of Things (IoT) using
by Flutter framework. It also supports a few advance concepts such as interfaces, mixins, abstract
classes, refield generics, and type interface. It is a compiled language and supports two types of
compilation techniques.

 AOT (Ahead of Time) - It converts the Dart code in the optimized JavaScript code with
the help of the dar2js compiler and runs on all modern web-browser. It compiles the code
at build time.
 JOT (Just-In-Time) - It converts the byte code in the machine code (native code), but
only code that is necessary.

Fig.2.7 Dart in Flutter

Page | 16
1. History:

Dart was revealed for the first time in the GOTO conference in the month of 10 th - 12th October
2011 at Aarhus, Denmark. It is initially designed by the Lars bark and Kespar and developed by
Google.

The first version 1.0 of Dart was released on November 14 th, 2013, intended as a replacement
of JavaScript.

In July 2014, the first edition of Dart language was approved by Ecma International approved at its
107th General Assembly.

The first version was criticized due to a malfunction on the web and this plan was dropped in 2015
with the 1.9 release of Dart.

The second version of Dart 2.0 was released in August, including a sound type system.

The recent version Dart 2.7 is supplemented with the extension method, which enables us to add
any type of functionality.

2. Characteristics of Dart:

The characteristics of Dart in the following point :-

o Dart is a platform-independent language and supports all operating systems such as


Windows, Mac, Linux, etc.
o It is an open-source language, which means it available free for everyone. It comes with a
BSD license and recognized by the ECMA standard.
o It is an object-oriented programming language and supports all features of oops such as
inheritance, interfaces, and optional type features.
o Dart is very useful in building real-time applications because of its stability.
o Dart comes with the dar2js compiler which transmits the Dart code into JavaScript code
that runs on all modern web browser.
o The stand-alone Dart VM permits Dart code to run in a command-line interface
environment.

Page | 17
Fig.2.8 Dart Features

Page | 18
CHAPTER – 3
REQUIREMENT
ANALYSIS

SYSTEM REQUIREMENT ANALYSIS

3.1 Background:
Page | 19
Based on the online food ordering Application’s requirements. An application that allows
recruiters to outline food with required information for which food lovers can view and
order according to their interests and an android application that displays the foods that are
available and order by the favorite restaurants. The android application is developed using
Dart programming language and Firebase.

3.2 Requirement Analysis:

SDLC :-

In systems engineering, information systems and software engineering, the systems


development life cycle (SDLC), also referred to as the application development life-cycle,
is a process for planning, creating, testing, and deploying an information system. The
systems development life cycle concept applies to a range of hardware and software
configurations, as a system can be composed of hardware only, software only, or a
combination of both. There are usually six stages in this cycle: requirement analysis,
design, development and testing, implementation, documentation, and evaluation.

Fig.3.1 SDLC Models

SDLC Models
There are various software development life cycle models defined and designed which are
followed during the software development process. These models are also referred as Software
Development Process Models". Each process model follows a Series of steps unique to its type to
ensure success in the process of software development.

Page | 20
Following are the most important and popular SDLC models followed in the industry −

 Waterfall Model
 Iterative Model
 Spiral Model
 V-Model
 Big Bang Model

Why we use Waterfall Model ?

We use the waterfall model because it is easy to use and modify. Waterfall model is the simplest
model we can use in online food ordering app, it can easily establish and implement the change of
this model. This type of pattern makes changes again and again. We check all the steps if they are
wrong.

Waterfall Model

Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure
success of the project. In "The Waterfall" approach, the whole process of software development is
divided into separate phases. In this Waterfall model, typically, the outcome of one phase acts as
the input for the next phase sequentially. The sequential phases in Waterfall model are −
 Requirement Gathering and analysis − All possible requirements of the system to be
developed are captured in this phase and documented in a requirement specification
document.
 System Design − The requirement specifications from first phase are studied in this phase
and the system design is prepared. This system design helps in specifying hardware and
system requirements and helps in defining the overall system architecture.
 Implementation − With inputs from the system design, the system is first developed in
small programs called units, which are integrated in the next phase. Each unit is developed
and tested for its functionality, which is referred to as Unit Testing.
 Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
 Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.
 Maintenance − There are some issues which come up in the client environment. To fix
those issues, patches are released. Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the customer environment.

Page | 21
Fig.3.2 Waterfall Models

Advantages
 Simple and easy to understand and use
 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a
review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well understood.

Disadvantages
 No working software is produced until late during the life cycle.
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.

3.2.1 Functional Requirement

Page | 22
Order Management

 The system shall let the user to place an order for their consumers.
 The system shall prompt and ask user to verify the order that have been
placed.
 The system shall allow user to add in extra remark regarding the order.
 The system shall allow user to void the order that mistakenly placed or
exceptional case occur.

Reporting Management

 The system shall generate a report that based on the time period that
customize by user.
 The system shall retrieve related information from the database and
generate the report to user.

Menu Management:

 The system shall only allow management level user to edit the menu
card information by having an authorization login checking.
 The system shall allow user to update their restaurant menu card
information.
 The system shall save the updated menu card information to the
database.

Billing Management:

 The system shall retrieve data that needed and arrange in a meaningful
structure then print for user as a reference.
 The system shall let user to choose the payment channel that they wish
to use.

Goods and Services Tax Management:

 The system shall calculate the total amount of money that need to
submit to government at the end of the month.

Order Queue Module:

 The system will update the queue display whenever a new order is
placed.
 The system will merge the amount identical food that needs to be
prepared and display on the screen.

Page | 23
Fig.3.3 Ordering System Module

3.2.2 Non Functional Requirements:

Operational Requirements:

 The system should operate in Window platform environment.


 The system should prompt user to make a backup at the end of the
operational day.

Performance Requirements :

 The system should let user to place an order in a short period of time.
 The system should complete perform the billing process in a short
period of time.

Page | 24
Security Requirements:

 The system should validate the username and password in order to


login and make changes to the system.
 The system should request the current password of the user in order to
let them change to a new password.

Usability Requirement:

 The system should have an easy understand graphic user interface that
deal with the user.
 The system should let user easy to understand the functionality of each
modules.

3.3.3 Hardware & Software Requirements:

Hardware:
 Intel ® Core i3 CPU 3.0 GHz or above
 8GM RAM
 500GB Hard Disk Drive (HDD) + 24G Solid State Drive (SSD)
 USB port 3.0
 Monitor
 Wireless Access Point

Software :

 Front End : Android Studio Development Kit


 Back End : Firebase and Firestore
 Operating System : Window XP/Window 7/Window 8 and Android 5.0
or above
 Programming Language : Dart

Page | 25
CHAPTER-4
DATA FLOW DIAGRAM

Page | 26
This is a data flow diagram (DFD), which shows the process of ordering food via
online catering system. The oval shape signifies an entity or a user. The boxes in the
middle of the diagram are the process box. The process box displays the number of processes
and its description. The boxes on the right side of the diagram are the data store.

The box represents when data is stored. Between the squares and the oval
form shows the data flow. The main purpose of a DFD is to show the flow of data
while doing a process. The DFD of the food ordering process for users.

Fig.4.1 Data Flow Diagram

Page | 27
Fig.4.2 Use case Diagram

Page | 28
Fig.4.3 Context level DFD for Online food system

Page | 29
CHAPTER -5
DESIGN

Page | 30
5.1 Architectural Design:

The system implementation contains 3 main users: -

Service customer, mess/restaurant owner and mess worker. When a person moves to a new city,
they need to find a clean, high-quality source of food. She will therefore explore and select a
restaurant based on its category.

The pattern in which the user will search for the services for a specific purpose The GPS system
must be enabled and part of the Geo Hashing algorithm is used. The person can be given the
option to search for a service by location which is the location of the person's home is detected
with GPS and the nearby service is searched based on the location of the selected option.
Searching by cost is another way.

Search by rating is also possible by our system. The list of services is given if it matches the
ratings given by the user when the services that have ratings are checked with him. The search can
be done by accepting the user's distance where they need to search and displaying the remote
service provider.

Fig.5.1 Architectural Design

Page | 31
Fig.5.2 Admin Controller

5.2 Background Management Platform:


There are five main modules, such as Log In Module, Category Management Module, Product
Info Management Module , Order Management Module.

5.2.1 Log in:


The administrator needs to login first before using the Background Management
Platform. An account username and password for the owner of company will be pre-settled
when the project is initialized. The administrator fills in the username and password in the
related fields and presses the login button. If the login is successful, the URL will direct to the
Background Management Platform main UI, otherwise, the user will be notified with an error
message.

Page | 32
Fig.5.3 Background Management Platform Login

5.2.2 Category Management:

Application provides function to allow customers to view dishes according to different


categories. Therefore, administrator needs to add to categories first. To add dish to display on
the website or Android, the administrator should add dish categories first, in order that display
dishes according to different categories.

1. Add Category:

In the Product Management, by clicking “Category Manage”, a list view page of current
existing dishes will be shown. By clicking “Add Category” button, the right frame will jump
to the category adding UI. Required data is filled in, then it is confirmed, and a dish will be
added successfully. At the same time, the right frame will jump back to the category list view
page, the new added dish will be displayed on this page.

Page | 33
2. Modify Category:

On the category list view page, every category item provides a “Modify” button, by using this
button, the administrator can modify the existing dish information.

Fig.5.4 Product Category Management

5.2.3 Product Info Management:

After adding categories, administrator can add dishes belong to different categories in Product
Management module. In the Product Management, there is a similar logic to that in Product
Category Management, such as adding, modifying and querying. Therefore, no detailed
description is given here.

5.2.4 Order Management :

The default state of produced order is unchecked, and the administrator can decide to change
the state to waiting deliver or cancel. For waiting deliver state order, the administrator can
change state to delivered or cancel. But for delivered order, the state cannot be changed any
more.
Page | 34
CHAPTER -6
IMPLEMENTATION
&
TESTING

Page | 35
6.1iImplementationiofiAuthentication::

iMostiprogramsirequireiuseriidentification.iKnowingitheiidentityiofitheiuseriallowsitheiappi
toisecurelyistoreiuseridataiinitheicloudiandigiveiaiconsistent,ipersonalizediexperienceiacrossi
alliuseridevices.Providesiusersiwithiauthenticationiforiyouriapplication,ifirebaseiauthenticationi
themediservices,ieasytouseiSDKsiandipasswords,iphoneinumbersiandiconfigurableiUIiframework
thatiacceptipopulariidentityiprovidersisuchiasiGoogle,iFacebookiandiTwitter.Integratingifirebasei
authenticationiwithiyouribackendiisieasyibecauseiitiworksiseamlesslyiwithiotherifirebaseiservicesi

andimeetsiindustryistandardsisuchiasiOAuthi2.0iandiOpenIDiFriendiConnect.

Howidoesiitiwork?

ii

iToiaddiaiuseritoiyouriapplication,iyouimustifirstiobtainitheiuser'siverificationicredentials.i
Examplesiofisuchitokensiareitheiuser'siemailiaddressiandipasswordioriOAuthitokenifromiai
sharediidentifieriprovider.iTheiproofiisithenisubmitteditoitheifirebaseiauthenticationiSDK.iThei
credentialsiareitheniverifiedithroughiourithematiciservicesiandigeticustomerifeedback.

Youicaniaccessibasiciuseriprofileiinformationiandirestrictiuseriaccessitoidataisavedioniotheri
firebaseiproductsiafterisuccessfulilogin.iYouicanialsoiuseitheiauthenticationicodeiprovidedi
toiverifyitheiidentityioficustomersiiniyouribackgroundiservices.

VerifiediusersireadiandiwriteiaccessitoitheiFirebaseirealtimeidatabaseiandicloudistorageibyi
default.iByiupdatingitheiFirebaseirealtimeidatabaseiandicloudistorageisecurityirules,iyouimayi
restrictiaccessitoicertainiusers.

Page | 36
Implementation paths

Using firebase Auth

Fig.6.1 Firebase Console

Page | 37
Fig.6.2 Authentication

6.2 Implementation of Profile:

Once the authentication concept is built, you may want to use the user profile management
feature in your application. While Auth UI does not offer this (other than consistent requests
from the public), it is much easier to do it ourselves.

Fig. 6.3 Users Profile


Page | 38
Fig. 6.4 Users details

6.3 Implementation of Database:

We use Firebase as a real-time database for this project. Since Firebase stores all data
as a JSON tree format, the entire database of our project is stored as a JSON file.
Every database is a JSON item and the data business is the object user. Businesses
have their own JSON assets which are the conditions of each business. These JSON
items have different ids. In these case the attributes are retained as two significant
values. There is also a JSON set of high-value symbols. Firebase is easy to trace but
there is a problem too. Since this is a non-SQL history, the queries are not the same as
standard SQL queries. There is no concept of a key or an external key. But this can be
achieved by building a JSON tree. As this is a new concept in the database, this may
seem confusing but this could be a great way to store big data soon.

6.4 Implementation of Navigation:

Navigation is the interaction that allows users to navigate, enter and exit through the
various information in your application. The navigation component of the Android
Jetpack helps you to implement navigation from basic button clicks to complex styles
such as app bars and navigation drawers.

Page | 39
6.5 Testing Implementation:

6.5.1 Testing :
Any project with a development program must have the test The primary goal of the
test is to ensure the quality, reliability, trustworthiness and quality of the application.
The project uses Android software for an electronic card sharing system.

6.5.2 Unit Test :

Every piece of software has been tasted to ensure the design is flawless. As a result, we
can make sure that every part of the program works properly.

6.5.3 Unit Test Case :

There are two pieces in the unit test case. Database and interface processors are two
different types of processors. Login, card design, share card and card removal are
some of the basic functions we use in our software. The database wizard checks these
three actions. As a result, our database wizard test cases now look like this. The user
can log in effortlessly using his phone. The user can quickly create a creative card,
share it with others and save or remove it.

6.5.4 Test Execution :

The implementation phase is final and important. Participate in user training, system testing
and efficient operation of the designed system.

Page | 40
CHAPTER -7
SCREENSHOT

Page | 41
7.1 APP LOGO:

The first things you need to understand when setting out to create an icon is
what exactly an app icon is and what job it performs. An app icon is a visual
anchor for your product. Think of it as a tiny piece of branding that not only
needs to look attractive and stand out, but ideally also communicates the
essence of your application.

Fig.7.1 App Logo

RESULT OF THE APPLICATION:-

Page | 42
7.2 SELLER’S APP
Welcome Screen:
Android Introduction Slider is basically used to introduce the major features of
the application to the user. It also attracts and helps the user to know about the
app. It is also called android welcome screen and is used to guide the user on
how to use the app just after installation. It is used in almost all popular apps
and games these days.

Fig.1 SplashScreen

Authentication Page

Page | 43
Fig.2 Login Page

Page | 44
Fig.3 Register Page

Page | 45
Fig.4 My Drawer Page

Page | 46
Fig.5 My Menus Page

Page | 47
Fig.6 Add Items Page

Page | 48
Fig.7 Delete this Item Page

Page | 49
7.3 USERS APP

Fig.8 SplashScreen

Page | 50
Fig.9 Login Page

Page | 51
Fig.10 Register Page

Page | 52
Fig.11 Home Page

Page | 53
Fig.12 Items Selection Page

Page | 54
Fig.13 Users Drawer

Page | 55
Fig.14 Add to Cart

Page | 56
Fig.15 Cart List Page

Page | 57
Fig.16 My Orders

Page | 58
Fig.17 Add Address Page

Page | 59
Fig.18 Order Place Page

Page | 60
Fig.19 Order Confirm

Page | 61
RIDERS APP

Fig.20 Splash Screen

Page | 62
Fig.21 Riders App Home Page

Page | 63
Fig.22 New Available Orders

Page | 64
Fig.23 Order Parcel in Page

Page | 65
CHAPTER – 8
APPENDIX

Page | 66
Appendix I

Firebase:
Google's Firebase technology allows developers to create mobile and online applications. It
started as a private company in 2011. Google acquired the platform in 2014 and is currently
the company's most important contributor to application development.

Envelope, founded in 2011 by James Tomplin and Andrew Lee, gave birth to Firebase.
Envolve has introduced an API for developers that allows them to add online chat features
to their websites. Tomplin and Lee discovered that the chat service was being used to send
application information that did not contain chat messages after the chat service was
removed. Envelope has been used by developers to sync app-like data with their customers'
real-time games. Tomblin and Lee decided to separate the negotiation system from real-time
construction. In September 2011, they founded Firebase as a premium company, and in
April 2012 they formed a community.

The Firebase Realtime Database is the company's initial product that syncs application data
across all iOS, Android and web devices and saves it in the Firebase cloud. Software
developers can use the tool to create real-time collaborative applications.

The Firebase platform has 18 products, divided into three categories: Upgrade, Quality and
Growth.

Fig.8.1 Firebase

Page | 67
Dependencies :
The references used in the relations between components are typed using concrete classes or
abstract classes. Interface dependencies: The references used in the relations between
components are typed using only interfaces

Dependencies used in my project:

Fig.8.2 Sellers App Dependencies

Page | 68
Fig.8.3 Users App Dependencies

Page | 69
Fig.8.4 Riders App Dependencies

Page | 70
CHAPTER – 9
CONCLUSION
AND
FUTURE WORK

Conclusion:

Page | 71
The main objective of the application is to help Computer Science students
understands the basics of Dart. The following results have been achieved
after completing the system and relate back to the system’s objective.
• Should allow Computer Science students to browse through the
code and application: This can be achieved when students are able
to run and install the application. When they run the application,
they can browse through the implementation of different objects.

• Should allow users to browse through different product


categories: This is achieved through an easy to use graphical
interface menu options.
• 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. Once item is added to
the cart, user is presented with detailed order to review or continue
shopping.
• 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. Button is
disabled when there are no items in the cart.
• Should allow the user to process the payment: This is achieved
when user selects “Processed to Checkout” button and fill up the
Payment information details.
• 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.

Future Work:
Page | 72
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.
• 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
• Delivery Options: Add delivery option
• Order Process Estimate: Provide customer a visual graphical order
status bar
• Order Status: Show only Active orders to Restaurant Employees.
• Order Ready notification: Send an Order Ready notification to the
customer
• Restaurant Locator: Allow to find and choose a nearby restaurant

Page | 73
CHAPTER - 10
REFERENCES

Page | 74
[1] “Github” Learn Android Development: https://github.com/topics/android-app
[2] “Android” https://www.android.com/

[3] “Firebase database” https://console.firebase.google.com/


[4] https://www.tutorialspoint.com/flutter/
[5] http://www.javatpoint.com/dart-tutorial
[6] www.w3schools.com
[7] Wikipedia
[8] https://www.slideshare.net/kalsoomhAsgher/online-food-ordering-app-
documentation
[9] https://www.freeprojectz.com/project-report/1778

Page | 75

You might also like