You are on page 1of 15

Food Advisor Software Requirements

Specification
Version 1.0
Submission Date: 11/28/2015

MIS 565 Software System Requirements


Team 3
Instructor: Sameh Sabet

Monmouth University
Department of CS & SE

Table of Contents

1 INTRODUCTION

1.1
1.2
1.3
1.4
1.5

PURPOSE
SCOPE
GLOSSARY OF TERMS
REFERENCES
Overview

2
2
2
3
3

2 OVERALL DESCRIPTION

2.1 USE-CASE MODEL SURVEY


2.2 ASSUMPTIONS AND DEPENDENCIES

4
5

3 SPECIFIC REQUIREMENTS

3.1 USE-CASE REPORTS


3.1.1 CREATE NEW ACCOUNT (APP USER)
3.1.2 CREATE NEW ACCOUNT (RESTAURANT OWNER)
3.1.3 UPDATE ACCOUNT INFO
3.1.4 MONITOR SYSTEM RECORDS (ADMIN MAINTENANCE)
3.1.5 USER/ADMIN LOGIN
3.1.6 AUTHENTICATE A PAYMENT (FOR RESTAURANT SUBSCRIPTIONS)
3.1.7 SEARCH/FIND RESTAURANTS
3.1.8 SPECIFY/REFINE USER PREFERENCES
3.1.9 GENERATE DEFAULT RECOMMENDATIONS
3.1.10 CHECK-IN
3.1.11 RATE A RESTAURANT
3.1.12 SUBMIT REVIEW FOR A RESTAURANT
3.1.13 MONITOR/SCREEN SUBMITTED REVIEWS (BEFORE PUBLISHING TO PUBLIC)
3.1.14 ADD/UPLOAD A PHOTO/VIDEO
3.1.15 RESPOND TO REVIEWS (BY REGISTERED RESTAURANT OWNERS)
3.2 SUPPLEMENTARY REQUIREMENTS

6
6
6
7
7
8
8
9
10
11
11
11
12
12
12
13
14

4 SUPPORTING INFORMATION

14

Revision History
Date

Version

Description

Authors

11/22/2015

1.0.0

Software Requirements Specification


Document

Sunita, Pallavi, Ricky,


Akanksha, Abid

11/25/2015

1.0.1

Update Functional requirements

Sunita, Pallavi, Ricky,


Akanksha, Abid

11/28/2015

1.0.2

Update document Sections and finalized


requirements.

Sunita, Pallavi, Ricky,


Akanksha, Abid

1 Introduction
1.1 Purpose
The purpose of this document is to outline a detailed functional requirements description of the
Food Advisor application. The document will cover the high level objectives, features and
functionalities of the application to be built, how the system will achieve its intended overall
objectives, how it will react to various user interactions, and the external interfaces required to
support normal system operations. This document takes into consideration the viewpoints of both
the system developers as well as the stakeholders involved in the system.

1.2 Scope
This software product will offer users the option to conveniently find/search restaurants based on
their personal food/taste preferences, within New Jersey state. The system will be designed to
enable users to enjoy an improved dining experience, by offering custom restaurant
recommendations as per users personal food preference choices, reducing customer
disappointment and enhancing overall customer satisfaction. The system shall be built to serve as
an online-based mobile and desktop application

1.3 Glossary of Terms


Terms

Definitions / Details and Examples

Weighted Priority Listing

Registered restaurants will have a slightly


higher appearance rate in the restaurant search
results, based on a combined weighting of
their subscription level and overall user rating
score.

Search Attributes
System parameters that are used to customize
restaurant search results as per user
preference selection.

Examples Customer satisfaction rating,


Cuisine type (Italian, American, Asian,
Indian, Caribbean, etc), price range,
location/proximity, number of reviews,
restaurant visual ambience, breakfast-, lunch-,
or dinner-special offers, parking space
availability, and happy hours listing.
Search Preference Profile
Customized set of Search Attributes,
selected by individual user. This is used to
execute a personalized search query to find
matching restaurants.
User Contact Information
Mandatory Information First Name, Last
Name, Telephone Number.
Restaurant Contact Information
Mandatory Fields Restaurant Name,
Contact Number, Restaurant address,
Restaurant type.
Review Fields
Optional text fields to be filled by the user to
submit their reviews.
Available Fields Short summary, pros,
cons, feedback, etc.

1.4 References
Template Use Case-Based SRS.doc
Food Advisor App Use Case- v1.0
Food Advisor Vision Document- version 1.0

1.5 Overview
The rest of this document outlines the overall system description with detailed description of
high level functional requirements aimed for the purpose of facilitating product development.

2 Overall Description
2.1 Use-Case Model Survey
Figure 2.1 below describes all the involved actors and their interactions with the Food Advisor
system. The Use Cases depict the key system functionalities supported by the Food Advisor
application. A detailed description of all the Use-Case scenarios has been provided in the Food
Advisor Use Case Specification Document; version 1.0

Figure 2.1: A high level Use Case Diagram of the Food Advisor Application.

2.2 Assumptions and Dependencies


The normal operations of the Food Advisor app will require a running internet service and a GUI
based electronic device such as a smart phone, desktop, or an iPad.
The system assumes that the user is already familiar with the supported functionalities in the
system. Additional dependencies shall be determined during subsequent iterations of this
document, as well as during the detailed design analysis and specification phase.

3 Specific Requirements
3.1

Use-Case Reports

3.1.1 Create New Account (App User)


3.1.1.1 The user shall install and open the food advisor app on their device.
3.1.1.2

The system shall prompt the user to register or login to the food advisor app.

3.1.1.3 The system shall request the user to choose the type of user they wish to be.
3.1.1.4 The system shall request the user to set up user name and password.
3.1.1.5 The system shall verify if the username and password are available and valid.
3.1.1.6

If the user details are not available/incorrect, the system shall display an error and
requests to try.

3.1.1.7

The system shall request user to enter their personal details.

3.1.1.8

Once all details are confirmed by the user, the system shall now request user to type in
code provided to them through a text sent on their phone.

3.1.1.9

The system shall send a confirmation email to the user after authentication and shall
display account creation success message on screen.

3.1.2 Create New Account (Restaurant Owner)


3.1.2.1 The user shall install and open the food advisor app on their device.
3.1.2.2 The system shall prompt the user to register or login to the food advisor app.
3.1.2.3 The system shall request the user to choose the type of user they wish to be.
3.1.2.4 The system shall requests the user to set up user name and password.
3.1.2.5 The system shall verify if the username and password are available and valid.
3.1.2.6 If the user details are not available/incorrect, the system shall display an error and
requests to try again.
3.1.2.7 The system shall request user to enter restaurant details/contact information.
3.1.2.8 Once all details are confirmed by the user, the system shall now request user to type in
code provided to them through a text sent on their phone.
6

3.1.2.9 The system shall request user to make an initial restaurant subscription payment.
3.1.2.10 The system shall use the authentication gateway to clear user payment.
3.1.2.11 Once the payment has been received, the system shall send the user a confirmation mail
and displays successful registration message.

3.1.3 Update Account Info


3.1.3.1 The system shall prompt the user to login to the food advisor app
3.1.3.2 The system shall verify user login credentials and grant access to use Food Advisor app.
3.1.3.3 The user can now choose to update user account information by accessing the My
Info option on their home screen.
3.1.3.4 The system shall open user information page in a non-editable format and presents an
edit option.
3.1.3.5 The system shall open an editable page once the user chooses to edit their personal
information.
3.1.3.6 The system shall record all changes made and verifies whether any of the mandatory
fields are left.
3.1.3.7 The system shall display an error message and requests user to try again if any of the
changes are invalid or any mandatory space is left blank.
3.1.3.8 The system shall now display all updated information in a non-editable format
providing a submit
3.1.3.9 The system shall update the new information once the user confirms changes by
choosing the submit option.
3.1.3.10 The system shall display an account update success message on the screen.

3.1.4 Monitor System Records (Admin Maintenance)


3.1.4.1 The system shall prompt the Admin to login
3.1.4.2 The system shall request admin to enter username and password.

3.1.4.3 If the username or password is incorrect, the system shall request user to try again or
choose the resend login details option.
3.1.4.4 After successful login attempt, the user shall choose activities option from home screen.
3.1.4.5 The system shall now show options that the admin can perform.
3.1.4.6 The admin can choose to view system records.
3.1.4.7 The system allows the admin to sort and display records as needed.
3.1.4.8 The system provides option to print or download these records as shown.

3.1.5 User/Admin Login


3.1.5.1 The system shall prompt the user to login to the food advisor app
3.1.5.2 The system shall request user to enter username and password.
3.1.5.3 If the username or password is incorrect, the system shall request user to try again or
choose the resend login details option.
3.1.5.4 If the user enters incorrect login details for more than 3 times, the system shall block
user account temporarily and requests them to try again after 30 minutes.
3.1.5.5 The system also verifies if user is logged in multiple devices and displays appropriate
warning.
3.1.5.6 The system shall now allow user to access the food advisor app.

3.1.6 Authenticate a Payment (for restaurant subscriptions)


3.1.6.1 The system shall allow user to choose and buy from a list of restaurant subscription
plans.
3.1.6.2 The system shall prompt the user to provide the following information: First Name, Last
Name, and Credit Card information.
3.1.6.3 The system shall default the billing address in a payment to the one specified in the
user's profile.
3.1.6.4 The system shall allow the user to update the Billing Address if its different than the

one in user profile.

3.1.6.5 The system shall calculate and display the overall cost of subscription, including service
charges, and taxes.
3.1.6.6 The system shall prompt the user to enter the payment details then receives the unique
cart number and allows user to confirm the purchase.
3.1.6.7 The system shall give the details about purchasing process made by the customer and
the details of the taxes involved with the cost.
3.1.6.8 If the card details or paypal details are incorrect, the payment gets declined and
system shall advise the user to enter the correct details.
3.1.6.9 If there are insufficient funds in their bank account the system shall decline the
purchase.
3.1.6.10 The system shall send a confirmation email/text message to the user with specific
details of the purchase made.

3.1.7 Search/Find Restaurants


3.1.7.1 Normal Flow
3.1.7.1.1 The system shall provide option to the registered user to search/find restaurants.
3.1.7.1.2 The system shall prepare a custom search query, using the "search preference profile"
in the user account.
3.1.7.1.3 The system shall scan for all matching restaurants registered in the database using the
prepared custom search query.
3.1.7.1.4 The system shall generate a list of matched results.
3.1.7.1.5 The system shall display the results in a weighted priority listing (see section 1.3).
3.1.7.1.6 The system shall display no more than 20 matched results per page.
3.1.7.1.7 The system shall display the restaurant results in the order of matched preferences
(from highest to least).
3.1.7.2 Alternative Flow
3.1.7.2.1 If the user search preference profile is not already populated with custom user food
preference choices, the system shall ask the user to specify user preferences (3.1.8).

3.1.7.2.2 If no search results are returned for the users search preference profile, the system
shall display an error message: ERR3.1.7.
3.1.7.2.3 The system shall allow the user to specify the choice to "Specify/Refine User
Preferences (see 3.1.8 below).
3.1.7.2.4 The system shall allow the user to specify their choice to Generate Default
Recommendations (see 3.1.9 below).

3.1.8 Specify/Refine User Preferences


3.1.8.1 The system shall generate a new user preferences profile (see 1.3) for every registered
account.
3.1.8.2 The system shall provide an option to specify user food preferences from a set of
predefined search attributes (see 1.3) to be used in the search/find restaurants feature
(3.1.5).
3.1.8.3 The system shall allow the user to update/modify an existing user preference profile.
3.1.8.4 The system shall allow the user to specify their food preferences from a given set of
search attributes (see section 1.3) predefined in the system.
3.1.8.5 The system shall generate an updated "search preference profile" (see 1.3) based on the
new user-selected search attribute choices.
3.1.8.6 The system shall update/save the custom "search preferences profile" in the users
account.
3.1.8.7 The system shall display a confirmation message to the user, when a "search preference
profile" is successfully created and saved in the account.

3.1.9 Generate Default Recommendations


3.1.9.1

The system shall allow the user to opt for a default restaurant recommendations
choice.

3.1.9.2 The system shall prepare a search query based on current restaurant ratings along with a
weighted priority listing (specified in section 1.3) to generate a default list of
restaurants.
10

3.1.9.3

The system shall execute the prepared search query to generate default list of restaurant
recommendations.

3.1.9.4 The system shall display the returned results in the order of highest to lowest user
rating.
3.1.9.5 If the search result has no results, the system shall throw an error: ERR3.1.9.

3.1.10 Check-in
3.1.10.1 The system shall allow a registered user the option to tag their friends from social media
sites (facebook, and twitter) with a restaurant entry of their choice.
3.1.10.2 The system shall allow the user to input a text comment (not exceeding 50 characters)
along with the check-in.
3.1.10.3 The system shall prompt the user to confirm the check-in operation.
3.1.10.4 The system shall display a confirmation message to the user of the check-in status.
3.1.10.5 The system shall register the users check-in status.
3.1.10.6 The system shall allow the user to make their check-in status either public or private.

3.1.11Rate a Restaurant
3.1.11.1 The system shall allow the user to give their rating (not mandatory) to a particular
restaurant of their choice on a scale of 1 to 5.
3.1.11.2 On choosing Submit option the system shall make the user rating public for other users
to see.
3.1.11.3 The system shall allow the user to cancel the rating before submission.

3.1.12 Submit Review for a Restaurant


3.1.12.1 The system shall allow the user to select any restaurant to give their review.
3.1.12.2 The system shall prompt the user to update the fields (see Glossary of Terms) giving
their review in detail about the restaurant.

11

3.1.12.3 If the restaurant search returns no results, the system shall display error code:
ERR3.1.12.
3.1.12.4 The system shall provide a submission option (possibly with a submit button) to enter
the user's review comments.
3.1.12.5 The system shall allow the comment to be displayed to all users only in read-only view,
once its submitted and screened (see Req 11.1.1).
3.1.12.6 The system shall display the timestamp and commenter's name at the top of the
published review comment.

3.1.13 Monitor/Screen Submitted Reviews (before publishing to public)


3.1.13.1 The system shall provide interface with an external text analytics support system to
automatically filter user reviews against offensive posts.
3.1.13.2 The system shall subject all the submitted user reviews through the text filtering
mechanism.

3.1.14 Add/Upload a Photo/Video


3.1.14.1 The system shall prompt a registered user to login to the system before they can upload
photo/ video, if they are not already logged in.
3.1.14.2 The system shall allow a registered app user (including restaurant owner) to upload
photos/ videos from their device into their profile.
3.1.14.3 The system shall request the user to confirm the files chosen for upload.
3.1.14.4 The system checks to see if the uploaded file is supported (valid format) by the system.
3.1.14.5 If the uploaded file is not supported, the system shall display an error message ERR
3.1.14 with a new request to upload a file only with correct format.
3.1.14.6 The system shall allow the user to cancel an upload operation in progress.
3.1.14.7 If the file upload process is interrupted by the user via a cancel operation, the system
shall request the user to confirm the cancellation.
3.1.14.8 The system shall add the uploaded files into the user account.

12

3.1.14.9 The system shall only allow the restaurant owners to add/modify photos/videos in their
restaurant profile.
3.1.14.10

The system shall display a confirmation message when the file is uploaded into

the user/restaurant profile.


3.1.14.11

The system shall allow the user to set the visibility status of the uploaded

photo/video to either private or public.

3.1.15 Respond to Reviews (by Registered Restaurant Owners)


3.1.15.1 The system shall allow the restaurant owner to respond to the respective user reviews.
3.1.15.2 The system shall not allow restaurant owner to modify any of the user's
comment/review.
3.1.15.3 The system shall prompt a text field to the restaurant owner in which they can provide
their response to the respective user reviews (maximum of 200 words)
3.1.15.4 On submission of the restaurant owners response the system shall make the response
visible for other users for viewing.
3.1.15.5 The response comment shall display the timestamp and restaurant name at the top of the
response body.
3.1.15.6 If the response character exceeds the maximum allowed char limit the system shall
display an error message: ERR3.1.15".

3.2 Supplementary Requirements


A separate supplementary specification has been provided along with this document outlining the
supplementary requirements. Please refer to the Supplementary Specification Version 1.0 for
details.

4 Supporting Information

13

The table below shows a list of error codes used by the system and their corresponding
descriptions.
Error Code

Description

ERR3.1.12

No restaurant matches found for the entered

ERR3.1.15

text
Character limit exceeds maximum limit of

ERR3.1.14
ERR3.1.7
ERR3.1.9

200
File format not supported
No restaurants match the user search criteria.
No restaurants recommendations can be
populated with the current system search
query.

Table 4.1 Error Codes Description Table.

14