Team 15
Team 15
for
Any-Delivery App
Prepared by:
Saikat Biswas(2022H1030100P) – [email protected]
Mayank Shrivastava(2022H1030101P) – [email protected]
K Rohan Reddy(2022H1030102P) – [email protected]
Gaurav Ghosh(2022H1030103P) – [email protected]
Swati Mohapatra(2022H1030108P) – [email protected]
1.1 Purpose
The purpose of this document is to give a detailed description of the requirements for the “Any-Delivery
App” software. It will illustrate the purpose and complete declaration for the development of system. It will
also explain system constraints, interface and interactions with other external applications. This document is
primarily intended to be proposed to a customer for its approval.
Terms Definitions
Customer or User The one who orders food from restaurant
Seller or Restaurant Owner or Owner The one who manages food outlets
Delivery Service Executive or Rider or Executive The one who delivers food to respective location
Admin The owner of the AnyDelivery application
The various restaurant and café owners on campus can easily join the delivery service through a special seller
app. There they may make a new account and upload the various dishes available at their premises for the
customers to choose from. Once a customer’s order is received the restaurant is notified and the owner can
easily keep track of individual orders from within the app, as well as confirm when the order is packed and
ready to be picked up.
Aspiring delivery executives may sign up to the service through a specialized delivery executive
app using their phone number or email address. Once logged in, they may view a list of all the
orders that have been packed and are ready to be picked up, from which they may choose any one to deliver
based on their proximity to the restaurant and the customer’s residence. The app also helpfully provides
location tracking and routing to help the executive reach the customer as quickly as possible.
The owner of the delivery service may access the list of customers, restaurant owners and delivery executives
through an exclusive admin portal accessible through a browser. The owner may block any of the customers,
restaurant owners or delivery executives if a pattern of malicious behavior is observed, in which case the user
is unable to continue using the app in that capacity any longer. After the duration of the suspension the admin
may reactivate the user if they wish to do so. The admin may also keep track of the net earnings of the
restaurant owners through the portal.
The various user-specific applications also allow the concerned user classes to keep track of their respective
histories i.e., the customer is able to view his past order history, each restaurant owner is able to view their
past orders, and the delivery executives are able to keep track of all their past deliveries as well.
1.5 References
C. Larman, APPLYING UML AND PATTERNS An Introduction to Object-Oriented Analysis and Design
and Iterative Development, 3rd ed.,Massachusetts: Pearson Education, 2005.D. Carrington,
IEEE Recommended Practice for Software Requirements Specifications, IEEE Standard 830, 1998.
2. Overall Description
CORE FEATURES
CUSTOMER
• A Customer is anyone wishing to place an order from any of the restaurants on campus through
the app.
• Customers will sometimes order multiple meals for group events or guests
• All the personal details of Customer will be accessible under ‘Account settings’ label. Customer can
edit, delete or add an address.
RESTAURANT OWNER
• Once the restaurant marks an order as packed, the order gets added to the list of ready to be
picked up orders visible to the executive
• The executive may view the details and location of the order and restaurant/customers
respectively, and choose whichever order they wish to deliver
• Once chosen, the app charts a route to the restaurant to help the executive reach the location
• After the order has been picked up and delivered to the customer, the executive marks it as such
within the app
• The executive also keeps track of their past deliveries and pending deliveries through the delivery
executive app
ADMINISTRATOR
• The administrator is potentially the owner of the AnyDelivery service, and is able to see the
details of all the customers, restaurants and delivery executives through an admin web portal
• The administrator may ban any member of the above 3 user types if there is malicious or
fraudulent activity, or they may reactivate their accounts if accidentally blocked
• The administrator may also view the net earnings of all the restaurants using the AnyDelivery
service
OPERATING DESCRIPTION
ENVIRONMENT
Mobile Platform TThe AnyDelivery app is available for all Android smartphones running
Android version 5.1 (Lollipop) and above
The AnyDelivery admin portal shall operate correctly with the following web
Web browser browsers:
version Windows Internet Explorer versions 7 and above
Google Chrome (all versions)
Firefox versions 12 and above
Database The AnyDelivery app uses the Google Firebase database, a highly
Environment available and reliable real time database
CONSTRAINTS DESCRIPTION
NUMBER
Constraint 1 The AnyDelivery app’s code shall be programmed in the Flutter
programming language, considering the language’s flexibility and
ease of use offered to build applications for Android
Constraint 2 The system shall use Google Firebase database for storing the information
Constraint 3 Only the menu manager shall have the access to edit the menus.
AnyDelivery app owner will be responsible for maintaining integrity of the
Constraint 4 service by monitoring all participating users
Step 3: After successful login, users may add their delivery address, restaurant owners may add menus and
menu items, and delivery executives may select and pick up packed orders to be delivered.
Customer Manual:
Step 1: Once the general registration is complete; the user is now eligible to place meal order.
Step 2: Search by restaurant or Search by meal in the search bar to select your food and click Search
Step 6: Please show your e-receipt to the delivery executive to confirm the order ownership.
2.7 USE CASE DIAGRAM
Requirement The seller must be logged in to the app and has good internet
connectivity.
Importance High
Description Owner should be logged in with valid credentials and click on the add
menu icon to add a short description, menu title and representative
image. Once the confirm button is clicked, the menu information is
stored in the database and the menu is added to the restaurant’s menu
list.
Rationale Interface provided so that seller can manage the menu which would be
made visible to the customer.
Exceptional scenario The app displays an error message if the image dimensions exceed
certain constraints or any menu form entry is left empty.
Post conditions The owner is able to view the newly added menu in the list of menus
offered by the restaurant
Requirement The rider must be logged in to the app and has good internet
connectivity.
Importance High
Description After logging in with valid credentials the executive clicks on the
active orders icon to view the currently active orders. They may select
any order to view additional information. Once they decide on an
order, they may select that order to be picked up and confirm so within
the app. The restaurant location for the selected order is retrieved from
the database, and the order is marked as selected by the executive and
removed from the list of active orders.
Rationale Interface provided so that rider has the choice of accepting any new
order delivery as per convenience.
Exceptional scenario The app displays an error message if the user’s email ID or phone
number are of invalid format.
Post conditions The delivery executive is able to view the route charted to the
restaurant for pickup in Google Maps.
Use Case Deliver newly accepted order from restaurant to customer
address.
Actor Delivery executive / Rider
Trigger The delivery executive updates the order status as picked up in
the rider app.
Requirement The rider must be logged in to the app and has good internet
connectivity.
Importance High
Description After logging in with valid credentials and picking up the order,
the executive updates the order status as picked up in the rider
app. After reaching the customer the delivery executive marks
the order as delivered. The order status is updated as picked up
and delivered after the order has been picked up from the
restaurant and delivered to the customer address respectively in
the customer app and rider app.
Rationale Interface provided so that rider can update delivery status after
picking order from restaurant.
Post conditions The delivery executive is able to view the route charted to the
delivery address in Google Maps after pickup from restaurant.
After delivery the order is marked as delivered and stored in the
past orders section of the customer and rider apps, and removed
from the active orders section.
3. Functional Requirements
3.1.2 Inputs
Customer should have a valid phone number or email ID which will be entered during registration
3.1.3 Outputs
The customer receives a successful registration message after which they may use the registered credentials
to login to the app
3.2.3 Outputs
The customer is able to view a list of all the restaurants that offer their desired food item, or the restaurants
matching the search string
3.3.2 Inputs
Customer should be logged in with valid credentials. Once the customer has selected their desired
restaurant and menu, they should add their desired quantity of food items to the cart and click checkout
3.3.3 Outputs
The customer views an order confirmation screen with the order ID and the total cash amount to be paid to
the delivery executive
3.4.2 Inputs
Customer should be logged in with valid credentials, and slide open the order histories menu on the left,
then click on the desired order to view details
3.4.3 Outputs
The customer is able to view the details of past orders or status of the current order in the app
3.5.2 Inputs
Owner should be logged in with valid credentials and click on the add menu icon to add a short
description, menu title and representative image
3.5.3 Outputs
The owner is able to view the newly added menu in the list of menus offered by the restaurant
3.6 - Add food items to a menu
3.6.1 Introduction
This Functional Requirement allows the restaurant owner to add new food items to the menu
3.6.2 Inputs
Owner should be logged in with valid credentials, then select the relevant menu and click on the add item
button to add a new item. Once the item details are entered click submit
3.6.3 Outputs
The added item is visible to the owner as well as available for customer’s to order from the app
3.7.2 Inputs
After logging in with valid credentials the owner should select the relevant menu or food item and click
edit to edit the details, then click submit.
3.7.3 Outputs
The changed menus and items are visible immediately to the owner and to the customers as well
3.8.2 Inputs
After logging in with valid credentials, the owner slides open the sidebar from the left and clicks on
active orders to view currently pending orders. After the orders are packed and ready to be picked up the
owner marks them as such by clicking on the ready for pickup button
3.8.3 Outputs
The order is removed from the active order list of the restaurant and added to the past orders list. Order status
is updated in the Anydelivery customer app as well
3.9.2 Inputs
After logging in with valid credentials and sliding open the sidebar from the left, the owner clicks on the
past orders icon to view a list of all past orders. The owner may click on the earnings icon to view net
earnings through the app
3.9.3 Outputs
The owner is able to view each order’s details after clicking on them, as well as the net sales since the time
they joined the AnyDelivery service through the app
3.10.2 Inputs
After logging in with valid credentials the executive clicks on the active orders icon to view the currently
active orders. They may select any order to view additional information. Once they decide on an order,
they may select that order to be picked up and confirm so within the app
3.10.3 Outputs
The delivery executive is able to view the route charted to the restaurant for pickup in Google Maps
3.11.2 Inputs
After logging in with valid credentials and picking up the order, the executive updates the order status as
picked up in the rider app. After reaching the customer the delivery executive marks the order as
delivered
3.11.3 Outputs
The order is marked as delivered and stored in the past orders section of the customer and rider apps, and
removed from the active orders section
3.12.2 Inputs
After logging in with valid credentials the delivery executive clicks on the earnings icon to view the total
sales from all the items delivered by them since joining the app
3.12.3 Outputs
The executive is able to view the total revenue from past deliveries on the screen
3.13 - Admin management through web portal
3.13.1 Introduction
This Functional Requirement allows the AnyDelivery app owner to manage the various user classes
involved in the AnyDelivery app through a web based portal
3.13.2 Inputs
The admin logs in with the admin credentials and is able to view and select any of the user details from
the three user classes:- customers, restaurant owners and delivery executives. They may then view
individual restaurant sales, delivery executive revenue or block or unblock any of the participating users
3.13.3 Outputs
The selected user is moved to the blocked or unblocked list depending on the action taken by the
administrator. The sales of the selected restaurant or delivery revenue of the delivery executive are visible in
a small pop-up
4. OTHER REQUIREMENTS
PER-1: The system should support more than 100 user to checkout at the same time.
PER-2: The response time of application should be less than 1 second.
PER-3: When the user request data by click on search button, searching result shall be
presented on the screen within no more than 2 seconds.
7. CLASS DIAGRAM
8. Formal Specification
Algebraic Specifications
1)Type:
Define lists
Exception:
IndexOutofBounds
Syntax:
In this we have 2 basic constructors (m1)[create,insert] , 1 extra constructor (m2) [deletion] and 1
basic inspector (n1) [search].
Equations:
delete(create) = φ
delete(insertion)= list
2)Type:
Define Maps
Syntax:
create: φ -> map
In this we have 2 basic constructors (m1)[create,put] , and 2 basic inspector (n1) [get,isEmpty].
Equations:
isEmpty(create)= True
isEmpty(put) = False
get(put(key:value)) = value
SIZE ESTIMATIONS
Lines Of Code (LOC):
rider app- 2380
seller app- 3017
customer app- 3427
admin app- 1805
Total lines of code (LOC)= 10,629
Unadjusted Function Point (UFP)= (Number of i/p’s)*4 + (Number of o/p’s)*5 + (Number of inquires)*4
+ (Number of files)*10 + (Number of interfaces)*7
=9 * 4 + 16 * 5 + 6 * 4 + 4 * 10 + 4 * 7
=208
Since complexity adjustment factors have avg values.
Degree of Influence (DI)= 14 * 4 = 56
Technical complexity factor (TCF) =0.65 + 0.01*DI
= 0.65 + 0.01*56
= 1.21
FUNCTION POINT(FP) = TCF*UFP
=1.21* 208
=251.68