table of contents · web view2017. 4. 4. · in general, user shall be able to register system,...
TRANSCRIPT
Progress report submitted toThe Department of Computer Engineering of Çankaya University
in partial fulfilment of the requirement forCENG 407-Innovative System Design and Development
SRS DOCUMENT OF
RECIPE RECOMMENDATION SYSTEM
FOR THE TURKISH CUISINEVersion 2.0
By
Damla Pınar GÜVENEREsin AÇIK
Hivda ÖZATLI
Supervisor:
Assist. Prof. Dr. Engin DEMİR
Çankaya UniversityDepartment of Computer Engineering
Fall 2016
STATEMENT OF NONPLAGIARISM
We hereby declare that all information in this report has been obtained and presented in
accordance with academic rules and ethical conduct. We also declare that, as required by
these rules and conduct, we have fully cited and referenced all materials and results that are
not original to this work.
Date: 20.03.2017
Name, Surname Signature
Damla Pınar GÜVENER
Esin AÇIK
Hivda ÖZATLI
i
TABLE OF CONTENTS
STATEMENT OF NONPLAGIARISM..............................................................................................i
TABLE OF CONTENTS.............................................................................................................................. ii
LIST OF FIGURES.................................................................................................................................... iii
1. INTRODUCTION..................................................................................................................................1
1.1. Purpose.......................................................................................................................................1
1.2. Scope of Project...........................................................................................................................1
1.3. Glossary.......................................................................................................................................2
1.4. Overview of Document................................................................................................................2
2.0. OVERALL DESCRIPTION....................................................................................................................3
2.1. System Environment...................................................................................................................3
2.2. Functional Requirements Specification.......................................................................................4
2.2.1. User Use Case.......................................................................................................................4
2.2.2. Admin Use Case....................................................................................................................7
2.2.3. System Use Case...................................................................................................................8
2.3. Actor Characteristics....................................................................................................................9
2.4. Non-Functional Requirements...................................................................................................10
3. REQUIREMENT SPECIFICATION.........................................................................................................10
3.1. Interface Requirements.............................................................................................................10
3.2. Functional Requirements...........................................................................................................11
3.2.1. User Use Case.....................................................................................................................11
3.2.2. Admin Use Case..................................................................................................................16
3.2.3. System Use Case.................................................................................................................19
3.3. Non-Functional Requirements...................................................................................................20
3.4. Flow Description........................................................................................................................20
CONCLUSION........................................................................................................................................20
ii
LIST OF FIGURES
Figure 1: RECIPE RECOMMENDATION SYSTEM, SYSTEM ENVIRONMENT............................3Figure 2: USER USE CASE...................................................................................................................5Figure 3: ADMIN USE CASE...............................................................................................................7Figure 4: RECOMMENDATION ENGINE USE CASE.......................................................................9
iii
1. INTRODUCTION
1.1. Purpose
The purpose of this document is to explain the Recipe Recommendation System for
Turkish Cuisine in detail. This document describes the system's software requirements,
system intent, and features. This document is prepared for both stakeholders and system
developers. The purpose of this system is to present the recipes that the user is looking for
and recommend recipes similar to the user's preferred recipes.
In the General Description section, your system's use case diagram is shown. Initial Step-
By-Step Description for each actor is explained.
In the Requirements Specification section, the use cases are explained step by step. It is
explained in detail what each actor did in the system in detail.
1.2. Scope of Project
This system will be a website. This system aims to finding and presenting recipes that the
user is searching and providing correct recommendations similar to what the user prefers.
The system contains a database which is providing lists of users, recipes, category of
recipes, recipes’ ingredients. This database enables to keep the information of recipes and
users.
In addition, this system also receives personal information such as age, height, weight
from the user. Users can update this information and keep this information under control.
Also some of ingredients’ calories will be found in the system. Users can choose recipe
according to the amount of calories they need to take daily.
In addition, this system will save user’s time to find preferred recipes.
1
1.3. Glossary
TERM DEFINITION User People who search recipes and recommended it.
Admin Person who can manage the all system and can add recipes.
System Recommends recipes based on what they prefer to the user
Database Location of all recipes, ingredients, user’s information, rates on this system.
Website A website where the user searches for recipes and receives recipe suggestions.
Recommendation System It is a system that offers suggestions for the user based on past purchases, searches, or behaviors of other users.
1.4. Overview of Document
The document contains the Recipe Recommendation System’s details. We will explain that in
overall description. Using use case we showed all available functions in the second part. The
use case of three actors have been identified. The relationship of the actors to use case has
been explained in detail. Summarized at the end. In the third part, the system's functional
requirements and non-functional requirements have been mentioned. Database ER diagram
has been showed and explained. The entities of each table have been showed. Types and
explanations have been added to the document in tabular form.
2
2.0. OVERALL DESCRIPTION
2.1. System Environment
FIGURE 1: RECIPE RECOMMENDATION SYSTEM, SYSTEM ENVIRONMENT
The recipe recommendation system of Turkish cuisine aimed at facilitating the selection of
food which we are hard to decide. This system has two actor and one system
(recommendation engine). As can be understood from the above, it is a system in which users
play an active role. Admin and system have limited tasks.
3
2.2. Functional Requirements Specification
Recipe Recommendation System for Turkish Cuisine has 3 actors namely user, admin and recommendation engine.
2.2.1. User Use Case
Use Case:
Register User
Login Account
Search Recipe
View Recipe
View Recommended Recipe
Rate Recipe
Update Profile
Add Recipe to Favorite
View Favorites
Delete Recipe from Favorites
View Profile
Add Recipe
Add new user to own account
Add weekly meal plan
View past selected recipes
Choose prospective recipes
Add own allergies and diets
4
Diagram:
FIGURE 2: USER USE CASE
Brief Description
In general, user shall be able to register system, login to system, view his/her profile search
recipes, add recipes and view recipes and view recommended recipes in the direction of the
preferred recipes. All recipes have rate value and user shall be able to rate recipes. Every user
have favorite recipes and user can add recipes to his/her favorites and view favorites.
Moreover, users can add new user to their own account, so system recommends recipes based
on this multiuser profile. Allergies and diet information, weekly meal plan can be added by
5
user. Also, users can view past selected recipes and can choose prospective recipes and put
them on their own calendar. In addition, if a recipe is not as preferred by the user as the
former, user can delete this recipe from favorites.
Initial Step-by-Step Description
1. If User do not have account, user chooses Register button.
2. The user registers and logs in to the system, system lists
recommended recipes.
3. The user enters recipe name into search box, system lists recipes
and recommended recipes.
4. The user selects recipe.
5. The user rates recipes.
6. The user adds own allergies and diets information.
7. If the user wishes to add a new user to own account, press “Add
new user” button in profile page.
8. If the user adds the recipe to the favorite, the system lists his/her
favorite recipes.
9. If the user wishes to delete a recipe from favorite, press “Delete
“Recipe” button in favorite part.
10. If the user wants to add his/her special recipe to the system, press
“Add Recipe” button, system lists textboxes for getting information
about recipe.
11. The user can view past selected recipes, by clicking “View past
selections” button.
12. The user can add new weekly meal plan by clicking “Make a meal
plan” button.
13. The user can choose prospective recipes and can put them on own
calendar.
14. If the user wants to update his/her profile, user press “Update
Profile” button.
15. The user presses “Save” button after updating profile and system
shows his/her profile.
6
2.2.2. Admin Use Case
Use Case:
Search Recipe
View Recipe
Add recipe to system
Add recipes’ nutritional values
Delete recipe from system
Update Recipe
View users’ profiles
Diagram:
FIGURE 3: ADMIN USE CASE
Brief Description:
7
Admin shall be able to search, view recipes. In addition, admin shall be able to add, delete or
update recipes and add recipes’ nutritional values. Also, admin can view all users’ profiles.
Initial Step-by-Step Description
1. Admin writes recipe name into search box, system lists
recipes.
2. Admin adds recipes’ nutritional values to the system.
3. Admin views recipe.
4. Admin presses ‘Add Recipe’ button and system shows
textboxes for getting information of new recipe from admin.
5. If admin wants to delete a recipe from system, presses ‘Delete
Recipe’ button, recipe is removes from system.
6. If admin wants to update a recipe, presses ‘Update Recipe’
button, system list recipe’s information.
7. If admin wants to view user’s profile, presses ‘Users’ Profiles’
button and system lists users.
8. Admin writes or selects user’s name and view his/her profile.
2.2.3. Recommendation Engine Use Case
Use Case:
Show Recipes
Show Recommended Recipes
Calculate average of rate
Diagram:
8
FIGURE 4: RECOMMENDATION ENGINE USE CASE
Brief Description
Recommendation engine shall be able to show recipes and recommended recipes to users. In
addition, it shall be able to calculate average rate using the ratings given by users.
Initial Step-by-Step Description
1. Recommendation engine shows recipes and recommended
recipes, if any user search recipe.
2. Recommendation engine shows recommended recipes in
homepage after user logs in the system.
3. Recommendation engine calculates average rate using user’s rates
and number of users which give rate to recipe.
2.3. Actor Characteristics
All types of people can use this system. There is no any specification for them.
All they need is the Internet connection to use this recommendation system.
9
2.4. Non-Functional Requirements
In this part, how this system works is shown. Some crucial non-functional requirements are
accessibility, performance and security. First of all, accessibility is very important, so web
page design should be done simply for users. In addition to that user should be reach easily
what s/he is looking for. The other important thing is performance, searching for recipes and
also recommendation to user should be done quickly, so speed is important. Finally, security
is essential for users as important as in many systems, because users share their personal
information.
3. REQUIREMENT SPECIFICATION
In this section, interface requirements, functional and non-functional requirements subtitles
were described.
3.1. Interface Requirements
In user interface, according to historical and user information, some recipe recommendations
will be shown to user. That is basically definition of the system. Moreover, five
recommendations will be given to each user and one thousand recipes will be entered to
system at the start. User interface phases are divided to three phases:
User
In this interface, users’ perspective is shown. Firstly, users can register and then login to the
system. After that, they can search, view recipes and recommended five recipes, rate them.
They can add recipe to favorites and to system, organize their favorite list and do some
changes on their profile.
Admin
Admins are this system designers, at this point we are admins. We can search and view
recipes, add new recipe to system or delete from the system, update them and lastly they can
view users’ profile.
10
Recommendation Engine
Some algorithms will work in background of this system. This system will show recipes,
recommended recipes to users and will calculate average of rate based on users’ rate. Users’
feedback as rating are very important to calculate them by the recommendation engine.
3.2. Functional Requirements
In this section, main functions of recommendation system are clarified.
3.2.1. User Use Case
The main sequential functions of user-side of the system is shown below.
3.2.1.1. Register User
Use Case Name: Register UserXref: Section 2.1.1, User Use Case Trigger: Click on the Register buttonPre-Condition: Access to Recipe Recommendation Web
SiteBasic Path: 1. User opens the Web SiteAlternative Path: NonePost-Condition: Registered user can login to systemException Paths: NoneOther: None
3.2.1.2. Login to the System
Use Case Name: Login to the SystemXref: Section 2.1.1, User Use Case Trigger: Click on the Login buttonPre-Condition: Registration to the Web SiteBasic Path: 1. User opens the Login PageAlternative Path: NonePost-Condition: User can view recommended recipes, view
or search recipes, update profile, add new recipe
Exception Paths: NoneOther: None
11
3.2.1.3. Add New User to Own Account
Use Case Name: Add New User to Own AccountXref: Section 2.1.1, User Use Case Trigger: Click on the Add New User buttonPre-Condition: Login to the systemBasic Path: 1. User is directed to main page, then profile
page2. User can add a new user by filling all necessary fields about new user
Alternative Path: NonePost-Condition: User can view recommended recipes, view
or search recipes, update profile, add new recipe
Exception Paths: NoneOther: None
3.2.1.4. Add Own Allergies and Diets
Use Case Name: Add Own Allergies and DietsXref: Section 2.1.1, User Use Case Trigger: Click on the Düzenle button in profile pagePre-Condition: Login to the systemBasic Path: 1. In profile page, user add own allergies
and diets information to the systemAlternative Path: NonePost-Condition: User can view recommended recipes, view
or search recipes, update profile, add new recipe
Exception Paths: NoneOther: None
3.2.1.5. View Recommended Recipes
Use Case Name: View Recommended RecipesXref: Section 2.1.1, User Use Case Trigger: Click on the Login buttonPre-Condition: Login to the systemBasic Path: 1. User is directed to main pageAlternative Path: NonePost-Condition: User can select from recommended recipes
and rate itException Paths: 1. User does not want to select from
recommended recipes2. User can search any recipe
Other: None
12
3.2.1.6. Search Recipe
Use Case Name: Search RecipeXref: Section 2.1.1, User Use Case Trigger: Click on the Search buttonPre-Condition: Login to the systemBasic Path: 1. User is directed to main page
2. User can write recipe name on search boxAlternative Path: NonePost-Condition: User can select searched recipe and rate itException Paths: User can give up searching at any timeOther: The recipe list is updated according to new
recipes to be added
3.2.1.7. Add Weekly Meal Plan
Use Case Name: Add Weekly Meal PlanXref: Section 2.1.1, User Use Case Trigger: Click on the Make a Meal Plan buttonPre-Condition: Search recipe from the systemBasic Path: 1. User can organize his/her weekly meal
plan according to investigated recipesAlternative Path: NonePost-Condition: User can select searched recipe and rate itException Paths: NoneOther: The meal plan is updated according to new
meal plan to be added
3.2.1.8. View Recipe
Use Case Name: View RecipeXref: Section 2.1.1, User Use Case Trigger: Click on the Recipe List buttonPre-Condition: Login to the systemBasic Path: 1. User can see recipe listAlternative Path: NonePost-Condition: User can select from recipe list and rate itException Paths: User can give up viewing at any timeOther: The recipe list is updated according to new
recipes to be added
13
3.2.1.9. View and Update Profile
Use Case Name: View and Update ProfileXref: Section 2.1.1, User Use Case Trigger: Click on the Profile buttonPre-Condition: Login to the systemBasic Path: 1. User can view and make any changes on
his/her profileAlternative Path: NonePost-Condition: User can search or view recommended
recipesException Paths: NoneOther: None
3.2.1.10. Add New Recipe
Use Case Name: Add New RecipeXref: Section 2.1.1, User Use Case Trigger: Click on the Add New Recipe buttonPre-Condition: Login to the systemBasic Path: 1. User write ingredients’ list, calorie and recipe
information to add a new recipe to the system2. Added new recipe is controlled by admin3. If it is approved, it is added
Alternative Path: NonePost-Condition: User can search or view recommended recipesException Paths: If added new recipe is not appropriate, the new
recipe is not added to the system.Other: The recipe list is updated.
3.2.1.11. Rate Recipe
Use Case Name: Rate RecipeXref: Section 2.1.1, User Use Case Trigger: User wants to rate selected recipePre-Condition: User views recommended recipes or search/view
recipes and select oneBasic Path: 1. User rates the selected recipe based on him/her
liking (1-5 degree)Alternative Path: NonePost-Condition: User can select from recommended recipes and
rate itException Paths: If user does not want to select from recommended
recipes, s/he can continue to search any recipeOther: None
14
3.2.1.12. Add Recipe to Favorites
Use Case Name: Add Recipe to FavoritesXref: Section 2.1.1, User Use Case Trigger: User wants to add a recipe to favorite recipes listPre-Condition: User rates a recipeBasic Path: 1. User likes the recipe
2. User adds recipe to favoritesAlternative Path: NonePost-Condition: User can select from favorite recipes listException Paths: If user does not like the recipe, user does not add
it to the favorites listOther: Favorite recipes list is updated, if there is any
changes on it (addition, deletion)
3.2.1.13. View Past Selected Recipes
Use Case Name: View Past Selected RecipesXref: Section 2.1.1, User Use Case Trigger: User clicks View Past Selections buttonPre-Condition: User rates a recipeBasic Path: 1. User can want to view which recipes s/he
selected pastAlternative Path: NonePost-Condition: User select a recipe from these past selectionsException Paths: NoneOther: None
3.2.1.14. Choose Prospective Recipes
Use Case Name: Choose Prospective RecipesXref: Section 2.1.1, User Use Case Trigger: Click on the Login buttonPre-Condition: User makes a favorite listBasic Path: 1. In main page, user can search recipes and
add them to own favorite list2. Then, user can choose prospective recipes from favorite list3. Place them all on calendar
Alternative Path: NonePost-Condition: User can rate recipes and make any changes
on favorite listException Paths: If user does not want to select from favorite
list, s/he can search any recipe and choose a date for all of them at that point
Other: None
15
3.2.1.15. View Favorites
Use Case Name: View FavoritesXref: Section 2.1.1, User Use Case Trigger: User wants to see favorite recipes listPre-Condition: Adding a recipe to favorites list Basic Path: 1. User views favoritesAlternative Path: 1. User can view favorites where to select a
recipe from recommended recipesPost-Condition: User can select from favorite recipes listException Paths: NoneOther: Favorite recipes list is updated, if there is
any changes on it (addition, deletion)
3.2.1.16. Delete Recipe from Favorites
Use Case Name: Delete Recipe from FavoritesXref: Section 2.1.1, User Use Case Trigger: User wants to delete a recipe from favorite
recipes listPre-Condition: Adding a recipe to favorite recipes listBasic Path: 1. User does not like the recipe any more
2. User deletes the recipe from favorite recipes list
Alternative Path: NonePost-Condition: User can select from recommended recipes
or search a recipeException Paths: NoneOther: None
3.2.2. Admin Use Case
The main sequential functions of admin-side of the system is shown below.
3.2.2.1. Search Recipe
Use Case Name: Search RecipeXref: Section 2.1.2, Admin Use Case Trigger: Click on Search buttonPre-Condition: Using one of admin computers to loginBasic Path: 1. Admin can write recipe name on search
boxAlternative Path: NonePost-Condition: Admin can update, delete or view the recipeException Paths: NoneOther: None
16
3.2.2.2. View Recipe
Use Case Name: View RecipeXref: Section 2.1.2, Admin Use Case Trigger: Click on the Recipe List buttonPre-Condition: Using one of admin computers to loginBasic Path: 1. Admin can see recipe listAlternative Path: NonePost-Condition: Admin can add, delete or update the recipeException Paths: NoneOther: None
3.2.2.3. View Users’ Profiles
Use Case Name: View Users’ ProfilesXref: Section 2.1.2, Admin Use Case Trigger: Click on the Users’ Profiles buttonPre-Condition: Any complaints from the userBasic Path: 1. Admin can list users’ profilesAlternative Path: 1. Admin can write users’ name and search
themPost-Condition: Admin can send messages to users about their
complaintsException Paths: NoneOther: None
3.2.2.4. Add Recipe to System
Use Case Name: Add Recipe to SystemXref: Section 2.1.2, Admin Use Case Trigger: Click on the Add Recipe buttonPre-Condition: Expansion recipe listBasic Path: 1. Admin write ingredients’ list, calorie and
recipe information to add a new recipe to the system
Alternative Path: NonePost-Condition: Recipes can be recommended to users Exception Paths: NoneOther: The recipe list is updated
17
3.2.2.5. Add Recipes’ Nutritional Values
Use Case Name: Add Recipes’ Nutritional ValuesXref: Section 2.1.2, Admin Use Case Trigger: Click on the Add Recipe buttonPre-Condition: Add a new recipeBasic Path: 1. Admin write nutritional value for recipe will
be addedAlternative Path: NonePost-Condition: Recipes can be recommended to users Exception Paths: NoneOther: None
3.2.2.6. Delete Recipe from System
Use Case Name: Delete Recipe from SystemXref: Section 2.1.2, Admin Use Case Trigger: Click on the Delete Recipe buttonPre-Condition: The presence of unpopular and low grade recipesBasic Path: 1. Admin observes unpopular, low grade recipes
2. Admin can delete them from systemAlternative Path: NonePost-Condition: Users can select from the rest of recipesException Paths: NoneOther: The recipe list is updated
3.2.2.7. Update Recipe
Use Case Name: Update RecipeXref: Section 2.1.2, Admin Use Case Trigger: Click on the Update Recipe buttonPre-Condition: Some ingredients’ list or recipe changes occurringBasic Path: 1. Admin makes necessary changes on recipe and update
itAlternative Path: NonePost-Condition: Updated recipe can be recommended to usersException Paths: NoneOther: The updated recipe is added to recipe lists
18
3.2.3. Recommendation Engine Use Case
The main sequential functions of system-side of the recommendation engine is shown below.
3.2.3.1. Show Recipes
Use Case Name: Show RecipesXref: Section 2.1.3, Recommendation Engine Use Case Trigger: Users click on the Search or Recipe List buttonPre-Condition: Users want to search or view recipesBasic Path: 1. System checks whether searched recipe is in recipe list
or not2. If it is available in recipe list, system shows this recipe
Alternative Path: If user want to see whole recipe list1. System shows whole recipe list
Post-Condition: Users can select from recipe listException Paths: NoneOther: None
3.2.3.2. Show Recommended Recipes
Use Case Name: Show Recommended RecipesXref: Section 2.1.3, Recommendation Engine Use Case Trigger: User clicks on the Login buttonPre-Condition: Users login to systemBasic Path: 1. System shows recommended recipes to userAlternative Path: NonePost-Condition: Users can select from recipe listException Paths: NoneOther: None
3.2.3.3. Calculate Average of Rate
Use Case Name: Calculate Average of RateXref: Section 2.1.3, Recommendation Engine Use Case Trigger: Users rate the selected recipePre-Condition: Users rate the recipeBasic Path: 1. System calculates average rate by using users’ rate
2. At the same time, system calculate number of users who rate the recipe
Alternative Path: NonePost-Condition: Recommendation list to user is updated based on this
calculationsException Paths: NoneOther: None
19
3.3. Non-Functional Requirements
Some important non-functional requirements for the system are listed below.
Accessibility
Users should be reach easily what they are looking for in the website. Web design should be done simply. Generally, website should be reachable for users.
Usability
All functions but especially complex functions should be tested.
Performance
System’s response time to user and also some small time measurements are very important such as refresh time etc.
Security
Users’ personal information should be kept secret in the system.
3.4. Flow Description
First of all system needs about 1000 recipe to show user. Admin should add recipes to
system.
The user registers on the system. Then the user can log in to the system.
Admin suggest at least 5 different type of recipes to users.
User choose this 5 suggestion optional or search recipes.
The system displays the desired recipe to the user or shows other recipe similar to the
selected recipe.
Finally, the user can evaluate the recipe used.
CONCLUSION
Software requirements document is an important document of project. We explained how we
will do the project in this document. This software requirements document describes in detail
the functional and non-functional requirements and the interface requirements of the system.
The e-r diagram of the system's database is shown. The Use Case Diagram of the system was
drawn and explained what actors could do step by step.
20