ANKAYA UNIVERSITY
FACULTY OF ENGINEERING
COMPUTER ENGINEERING DEPARTMENT
Project Report
Version 2
CENG 407
Innovative System Design and Development I
P201606
Recipe Recommendation System for the Turkish Cuisine
Damla Pnar GVENER
201112031
Esin AIK
201211001
Hivda ZATLI
201211042
Advisor: Assist. Prof. Dr. Engin DEMR
Page vii
Table of ContentsTable of ContentsiiLIST OF TABLESivLIST OF
FIGURESvABSTRACTvi1.INTRODUCTION11.1Purpose11.2Scope of
Project12.Literature Review12.1Challenges of This
Project12.2Recommendation Techniques22.2.1Collaborative
Filtering22.2.2Content-based Filtering22.2.3Hybrid
Filtering32.3Algorithms32.3.1Memory-Based
Algorithm32.3.2Model-Based Algorithm42.4User Rating43.Software
Requirements Specification53.1Introduction53.1.1Purpose53.1.2Scope
of Project53.1.3Glossary63.1.4Overview of Document63.2Overall
Description73.2.1System Environment73.2.2Functional Requirements
Specification83.2.3Actor Characteristics143.2.4Non-Functional
Requirements143.3Requirement Specification143.3.1Interface
Requirements143.3.2Functional Requirements153.3.3Non-Functional
Requirements243.3.4Flow Description24
4.Software Design
Description254.1Introduction254.1.1Purpose254.1.2Scope of
Project254.1.3Glossary254.1.4References254.1.5Overview of
Document264.1.6Motivation264.2Deployment Diagram284.3Architecture
Design294.3.1Web System Architecture294.4Data Structure
Design424.4.1ER Diagram424.4.2User
Information434.4.3Recipe_ingredient Information434.4.4Ingredient
Information444.4.5Categories Information444.4.6Recipe_Category
Information444.4.7Recipe Information454.4.8Rating
Information454.5Use Case Realizations464.5.1Use Case:
User474.5.2Use Case: Admin484.5.3Use Case: Recommendation
Engine494.6Interface Design494.6.1Home Page494.6.2Login
Page504.6.3Register Page504.6.4Personal Information
Page514.6.5Search Page514.6.6Recommendation
Page525.CONCLUSIONS53Acknowledgement53References54
LIST OF TABLES
Table 1: User Information43
Table 2: Recipe_Ingredient Information43
Table 3: Ingredient Information44
Table 4: Categories Information44
Table 5: Recipe_Category Information44
Table 6: Recipe Information45
Table 7: Rating Information45
LIST OF FIGURES
Figure 1: Pearson Correlation Formula3
Figure 2: Cosine Correlation Formula4
Figure 3: Recipe Recommendation System, System Environment7
Figure 4: User Use Case9
Figure 5: Admin Use Case12
Figure 6: Recommendation Engine Use Case13
Figure 7: Waterfall Process Timeline27
Figure 8: Scrum Diagram27
Figure 9: Deployment Diagram28
Figure 10: Web System Architecture29
Figure 11: ER Diagram42
Figure 12: Whole System Sequence Diagram46
Figure 13: User Sequence Diagram47
Figure 14: Admin Sequence Diagram48
Figure 15: Recommendation Engine Sequence Diagram49
Figure 16: Home Page49
Figure 17: Recipe Page50
Figure 18: Recipe Page 250
Figure 19: Personal Information Page51
Figure 20: Search Page51
Figure 21: Recommendation Page52
ABSTRACT
RECIPE RECOMMENDATION SYSTEM
FOR THE TURKISH CUISINE
Damla Pnar GVENER, Esin AIK, Hivda ZATLI
Department of Computer Engineering
Supervisor: Assist. Prof. Dr. Engin DEMR
December 2016, 54 Pages
The main purpose of this project is to create recipe
recommendation system for Turkish cuisine. In this report,
literature review, software requirement specification and design
document about this project was conducted. First of all,
recommendation system as a key word was searched in literature and
in text books. Then, the problem definition was made to understand
more clearly which subjects we should focus on this project,
because there were lots of information and examples about
recommendation system. Secondly, in body section, recommendation
techniques were investigated to decide that which recommendation
techniques can be used as related with our project and algorithms
which are used in recommendation system and user ratings subject
were searched in detail. In the requirements analysis section, the
use case is drawn and functional and non-functional requirements
are explained in detail. In the design section, the software
development methodologies which used and to be used are explained.
In the second part, the deployment diagram and architecture of the
system are explained. In addition to these, the database diagram of
the system is shown and the database tables are explained. Sequence
diagrams are prepared separately for each actor. Finally, the
interface design of the system is done.
Keywords: recommendation system, recipe recommendation, food
recommender system, Requirement analysis, use case, functional
requirement, non-functional requirement, software development
methodology, deployment diagram, system architecture, database,
sequence diagram
ZET
TRK MUTFAI N YEMEK TARF NER SSTEM
Damla Pnar GVENER, Esin AIK, Hivda ZATLI
Bilgisayar Mhendislii Blm
Danman: Yrd. Do. Dr. Engin DEMR
ARALIK 2016, 54 Sayfa
Bu projenin temel amac, Trk mutfa iin bir yemek tarifi neri
sistemi oluturmaktr. Bu raporda, proje ile ilgili olarak yaplan
literatr taramas, gereksinim analizi ve dizayn dokman yer
almaktadr. ncelikle, anahtar kelime olarak da belirtilen neri
sistemi konusu literatr ve kitaplarda aratrlmtr. Ardndan,
literatrde neri sistemleri hakknda ok fazla bilgi ve rnek
olduundan, bu projede konu ile ilgili olarak hangi blme odaklanlmas
gerektiini daha iyi anlayabilmek iin problem tanm yaplmtr. kinci
olarak, proje ile ilgili olarak hangi neri teknikleri kullanlabilir
sorusuna karar verebilmek iin neri teknikleri aratrlm ve incelenmi
ve neri sistemlerinde kullanlan algoritmalar ve kullanc
derecelendirmeleri konusu detayl olarak aratrlmtr. Gereksinim
analizi ksmnda ise kullanm senaryosu izilmi ve fonksiyonel ve
fonksiyonel olmayan gereksinimler ayrntl biimde aklanmtr. Dizayn
dokman ksmnda ise kullanlan ve kullanlacak olan yazlm gelitirme
metodolojileri aklanmtr. kinci ksmda sistemin yaylma diyagramn ve
mimarisi aklanmtr. Bunlara ek olarak sistemin veritaban diyagram
gsterilmi, veri taban tablolar aklanmtr. Sralama diyagramlar her
aktr iin ayr ayr izilmitir. Son olarak sistemin arayz tasarm
yaplmtr.
Anahtar Kelimeler: neri sistemi, yemek tarifi nerisi, yemek
tavsiye sistemi, gereksinim analizi, kullanm senaryosu, fonksiyonel
gereksinim, fonksiyonel olmayan gereksinim, yazlm gelitirme
metodolojisi, yaylma diyagram, sistem mimarisi, veritaban, sralama
diyagram
ii
INTRODUCTION Purpose
The purpose of this document is to explain the Recipe
Recommendation System for Turkish Cuisine projects documents. These
documents are literature review, software requirement specification
and software design document. The purpose of literature review is
to gather information about project. We viewed similar projects and
researched about our projects some key points. Software requirement
specification document is prepared for both stakeholders and system
developers. Purpose of this document is to explain the Recipe
Recommendation System for Turkish Cuisine in detail. The purpose of
software design document is to describe the design of the Recipe
Recommendation System for the Turkish Cuisine project.
Scope of Project
This document will explain similar projects, algorithms of
recommendation systems and recommendation techniques, use case,
initial step by step descriptions of actors, requirement
specification and general architecture of system, database design
and interface design. This documents first part is literature
review. Second part is software requirement specification. Last
part is software design part. Every parts have their specific
glossaries. In addition this document contains our software
development methodologies for this project.
Literature ReviewChallenges of This Project
Data is the one of the big requirements. If there is less data
about user, the possibility of system correction is less too. For
that reason, Data must be collected with looking the users history,
forms and catalogs. While can find out user detailed food
preferences, system need to wait until a user create enough data.
[4] At the same time there must be many users in the system.
Recommendation systems work in the direction of users request
and preference. However these preferences able to change over time
and frequently. For that reason, the system should be focus on
interacting with the user many times of iterations and at each
stage the user should give feedback to the system in the form of a
reward or utility value for the recommended items. [5]
Cold-start problem is one of the most important issues for the
recommendation systems. The user who is new in the system and the
item which is newly entered cause this problem. Cold-start problems
have many solutions. Ask-to-rate technique is used for getting some
information about the new user and for learning the users
preferences in the most direct way. [6]
Recommendation TechniquesCollaborative Filtering
This method is used for recommending items to users which have
similar preferences. Collaborative filtering is most widespread
technique. For example; collaborative technique is used in
amazon.com to recommend products to customers [7]. Pearson and
cosine correlations can be used for finding similarities in this
technique. There is many recommendation system projects which used
collaborative techniques. For example; In University of Santa
Barbara, a movie recommendation system project has been developed
and collaborative filtering technique has been used for this
project. This projects article is found in University of Santa
Barbara website.
Content-based Filtering
Items which are similar to the previous preferred items are
recommended to user. This technique uses user profile and users
preferences and history of interactions information are important
for this technique. New items can be easily added to system.
Hybrid Filtering
Hybrid filtering is combination of collaborative and
content-based filtering. This means that rating and preferences
history of user and opinions of other users information are
important for this technique. Hybrid technique was used for many
recommendation system. For example; Netflix. They make
recommendation according to searching and watching history of
similar users, this is collaborative filtering, and users preferred
movies [8].
Algorithms
We can use many algorithms for recommendation systems such as
memory-based algorithms, model-based algorithms, and stochastic
gradient descent algorithm. Different algorithms were used for
different recommendation system projects. Most widely used
algorithms are memory-based and model-based algorithms.
Memory-Based Algorithm
Similarity is the most important issue for recommendation
systems. Memory based algorithm is used for calculating similarity
between users or items and creating recommendations for them
[9].Generally, Pearson correlation and cosine (vector) similarity
are used.
Pearson correlation; Pearson correlation coefficient ranges from
+1 to -1 [10]. Value +1 means that variables have excellent
positive correlation between each other [11]. Formula of Pearson
correlation;
Figure 1: Pearson Correlation Formula
Cosine (Vector) correlation; Cosine correlation measures
similarity between two n-dimensional vectors based on angle between
them [10]. Formula of cosine correlation;
Figure 2: Cosine Correlation Formula
Model-Based Algorithm
Memory-based algorithms can be slow to generate real time
recommendation. Model-based algorithm is used for generating real
time recommendations for very large datasets [12]. There is two
model-based algorithm which cluster users. First one is k-nearest
neighbor. In this algorithm, user- to-user similarity is
calculated. Pearson correlation is used for this calculation.
Secondly, k-means clustering. In this algorithm, users who are
closed to each other based on similarity are clustered [13].
User Rating
Recommendation systems consist of items and users and we must
correlate between them. In our project, user gave as rating for
items based on degree of him/her preference and for that a utility
matrix is used. The principle of this utility matrix is giving 1-5
or 1-10 integer sets as a rating by user. Some ratings can be left
blank which means that user does not have any idea about this item.
We can make inferences from users rating. When user clicks like
button after s/he viewed an item, so 1s and 0s create this utility
matrix. 0 means no rating, for example, if a user views an item, we
can infer that s/he is interested with it. [1]
Yemeksepeti.com uses user rating to recipes. The system
recommends similar recipes and user can give as ratings to them.
Therefore, system can learn and give better recommendation in the
future. [3] As we said before, historical information were used as
an off-line process in our project. There are two different models
for that, these are low and high level models. In low level model,
users ratings and specific items are used to recommend this item.
In high level model, types of items and types of users are
important in rating and they must be classified according to some
constraints. [14]
Software Requirements SpecificationIntroductionPurposeThe
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.
Scope of ProjectThis 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 users time to find preferred recipes.
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, users 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.
Overview of Document The document contains the Recipe
Recommendation Systems 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.Overall
DescriptionSystem Environment
Figure 3: 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.
1.
1.
Functional Requirements Specification
Recipe Recommendation System for Turkish Cuisine has 3 actors
namely user, admin and recommendation engine.
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
Diagram:
Figure 4: 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 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.Admin Use CaseUse Case: Search Recipe
View Recipe Add recipe to system Add recipes nutritional values
Delete recipe from system Update Recipe View users profiles
Diagram:
Figure 5: Admin Use Case
Brief Description:
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 Description1. 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 recipes information.7. If admin wants to view
users profile, presses Users Profiles button and system lists
users. 8. Admin writes or selects users name and view his/her
profile.Recommendation Engine Use Case
Use Case: Show Recipes Show Recommended Recipes Calculate
average of rate
Diagram:
Figure 6: Recommendation Engine Use Case
Brief DescriptionRecommendation 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 Description1. 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 users rates and number of users which give rate to
recipe.
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.
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.
Requirement Specification
In this section, interface requirements, functional and
non-functional requirements subtitles were described.
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.
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.
Functional Requirements
In this section, main functions of recommendation system are
clarified.
User Use Case
The main sequential functions of user-side of the system is
shown below.
Register User
Use Case Name:
Register User
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Register button
Pre-Condition:
Access to Recipe Recommendation Web Site
Basic Path:
1. User opens the Web Site
Alternative Path:
None
Post-Condition:
Registered user can login to system
Exception Paths:
None
Other:
None
Login to the System
Use Case Name:
Login to the System
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Login button
Pre-Condition:
Registration to the Web Site
Basic Path:
1. User opens the Login Page
Alternative Path:
None
Post-Condition:
User can view recommended recipes, view or search recipes,
update profile, add new recipe
Exception Paths:
None
Other:
None
Add New User to Own Account
Use Case Name:
Add New User to Own Account
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Add New User button
Pre-Condition:
Login to the system
Basic Path:
1. User is directed to main page, then profile page
2. User can add a new user by filling all necessary fields about
new user
Alternative Path:
None
Post-Condition:
User can view recommended recipes, view or search recipes,
update profile, add new recipe
Exception Paths:
None
Other:
None
Add Own Allergies and Diets
Use Case Name:
Add Own Allergies and Diets
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Dzenle button in profile page
Pre-Condition:
Login to the system
Basic Path:
1. In profile page, user add own allergies and diets information
to the system
Alternative Path:
None
Post-Condition:
User can view recommended recipes, view or search recipes,
update profile, add new recipe
Exception Paths:
None
Other:
None
View Recommended Recipes
Use Case Name:
View Recommended Recipes
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Login button
Pre-Condition:
Login to the system
Basic Path:
1. User is directed to main page
Alternative Path:
None
Post-Condition:
User can select from recommended recipes and rate it
Exception Paths:
1. User does not want to select from recommended recipes
2. User can search any recipe
Other:
None
Search Recipe
Use Case Name:
Search Recipe
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Search button
Pre-Condition:
Login to the system
Basic Path:
1. User is directed to main page
2. User can write recipe name on search box
Alternative Path:
None
Post-Condition:
User can select searched recipe and rate it
Exception Paths:
User can give up searching at any time
Other:
The recipe list is updated according to new recipes to be
added
Add Weekly Meal Plan
Use Case Name:
Add Weekly Meal Plan
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Make a Meal Plan button
Pre-Condition:
Search recipe from the system
Basic Path:
1. User can organize his/her weekly meal plan according to
investigated recipes
Alternative Path:
None
Post-Condition:
User can select searched recipe and rate it
Exception Paths:
None
Other:
The meal plan is updated according to new meal plan to be
added
View Recipe
Use Case Name:
View Recipe
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Recipe List button
Pre-Condition:
Login to the system
Basic Path:
1. User can see recipe list
Alternative Path:
None
Post-Condition:
User can select from recipe list and rate it
Exception Paths:
User can give up viewing at any time
Other:
The recipe list is updated according to new recipes to be
added
View and Update Profile
Use Case Name:
View and Update Profile
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Profile button
Pre-Condition:
Login to the system
Basic Path:
1. User can view and make any changes on his/her profile
Alternative Path:
None
Post-Condition:
User can search or view recommended recipes
Exception Paths:
None
Other:
None
Add New Recipe
Use Case Name:
Add New Recipe
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Add New Recipe button
Pre-Condition:
Login to the system
Basic Path:
1. User write ingredients list, calorie and recipe information
to add a new recipe to the system
2. Added new recipe is controlled by admin
3. If it is approved, it is added
Alternative Path:
None
Post-Condition:
User can search or view recommended recipes
Exception Paths:
If added new recipe is not appropriate, the new recipe is not
added to the system.
Other:
The recipe list is updated.
Rate Recipe
Use Case Name:
Rate Recipe
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
User wants to rate selected recipe
Pre-Condition:
User views recommended recipes or search/view recipes and select
one
Basic Path:
1. User rates the selected recipe based on him/her liking (1-5
degree)
Alternative Path:
None
Post-Condition:
User can select from recommended recipes and rate it
Exception Paths:
If user does not want to select from recommended recipes, s/he
can continue to search any recipe
Other:
None
Add Recipe to Favorites
Use Case Name:
Add Recipe to Favorites
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
User wants to add a recipe to favorite recipes list
Pre-Condition:
User rates a recipe
Basic Path:
1. User likes the recipe
2. User adds recipe to favorites
Alternative Path:
None
Post-Condition:
User can select from favorite recipes list
Exception Paths:
If user does not like the recipe, user does not add it to the
favorites list
Other:
Favorite recipes list is updated, if there is any changes on it
(addition, deletion)
View Past Selected Recipes
Use Case Name:
View Past Selected Recipes
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
User clicks View Past Selections button
Pre-Condition:
User rates a recipe
Basic Path:
1. User can want to view which recipes s/he selected past
Alternative Path:
None
Post-Condition:
User select a recipe from these past selections
Exception Paths:
None
Other:
None
Choose Prospective Recipes
Use Case Name:
Choose Prospective Recipes
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
Click on the Login button
Pre-Condition:
User makes a favorite list
Basic Path:
1. In main page, user can search recipes and add them to own
favorite list
2. Then, user can choose prospective recipes from favorite
list
3. Place them all on calendar
Alternative Path:
None
Post-Condition:
User can rate recipes and make any changes on favorite list
Exception 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
View Favorites
Use Case Name:
View Favorites
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
User wants to see favorite recipes list
Pre-Condition:
Adding a recipe to favorites list
Basic Path:
1. User views favorites
Alternative Path:
1. User can view favorites where to select a recipe from
recommended recipes
Post-Condition:
User can select from favorite recipes list
Exception Paths:
None
Other:
Favorite recipes list is updated, if there is any changes on it
(addition, deletion)
Delete Recipe from Favorites
Use Case Name:
Delete Recipe from Favorites
Xref:
Section 3.2.2.1 , User Use Case
Trigger:
User wants to delete a recipe from favorite recipes list
Pre-Condition:
Adding a recipe to favorite recipes list
Basic Path:
1. User does not like the recipe any more
2. User deletes the recipe from favorite recipes list
Alternative Path:
None
Post-Condition:
User can select from recommended recipes or search a recipe
Exception Paths:
None
Other:
None
3.2.2. Admin Use Case
The main sequential functions of admin-side of the system is
shown below.
Search Recipe
Use Case Name:
Search Recipe
Xref:
Section 3.2.2.2 , Admin Use Case
Trigger:
Click on Search button
Pre-Condition:
Using one of admin computers to login
Basic Path:
1. Admin can write recipe name on search box
Alternative Path:
None
Post-Condition:
Admin can update, delete or view the recipe
Exception Paths:
None
Other:
None
View Recipe
Use Case Name:
View Recipe
Xref:
Section 3.2.2.2 , Admin Use Case
Trigger:
Click on the Recipe List button
Pre-Condition:
Using one of admin computers to login
Basic Path:
1. Admin can see recipe list
Alternative Path:
None
Post-Condition:
Admin can add, delete or update the recipe
Exception Paths:
None
Other:
None
View Users Profiles
Use Case Name:
View Users Profiles
Xref:
Section 3.2.2.2 , Admin Use Case
Trigger:
Click on the Users Profiles button
Pre-Condition:
Any complaints from the user
Basic Path:
1. Admin can list users profiles
Alternative Path:
1. Admin can write users name and search them
Post-Condition:
Admin can send messages to users about their complaints
Exception Paths:
None
Other:
None
Add Recipe to System
Use Case Name:
Add Recipe to System
Xref:
Section 3.2.2.2 , Admin Use Case
Trigger:
Click on the Add Recipe button
Pre-Condition:
Expansion recipe list
Basic Path:
1. Admin write ingredients list, calorie and recipe information
to add a new recipe to the system
Alternative Path:
None
Post-Condition:
Recipes can be recommended to users
Exception Paths:
None
Other:
The recipe list is updated
Add Recipes Nutritional Values
Use Case Name:
Add Recipes Nutritional Values
Xref:
Section 3.2.2.2 , Admin Use Case
Trigger:
Click on the Add Recipe button
Pre-Condition:
Add a new recipe
Basic Path:
1. Admin write nutritional value for recipe will be added
Alternative Path:
None
Post-Condition:
Recipes can be recommended to users
Exception Paths:
None
Other:
None
Delete Recipe from System
Use Case Name:
Delete Recipe from System
Xref:
Section 3.2.2.2 , Admin Use Case
Trigger:
Click on the Delete Recipe button
Pre-Condition:
The presence of unpopular and low grade recipes
Basic Path:
1. Admin observes unpopular, low grade recipes
2. Admin can delete them from system
Alternative Path:
None
Post-Condition:
Users can select from the rest of recipes
Exception Paths:
None
Other:
The recipe list is updated
Update Recipe
Use Case Name:
Update Recipe
Xref:
Section 3.2.2.2 , Admin Use Case
Trigger:
Click on the Update Recipe button
Pre-Condition:
Some ingredients list or recipe changes occurring
Basic Path:
1. Admin makes necessary changes on recipe and update it
Alternative Path:
None
Post-Condition:
Updated recipe can be recommended to users
Exception Paths:
None
Other:
The updated recipe is added to recipe lists
Recommendation Engine Use Case
The main sequential functions of system-side of the
recommendation engine is shown below.
Show Recipes
Use Case Name:
Show Recipes
Xref:
Section 3.2.2.3 , Recommendation Engine Use Case
Trigger:
Users click on the Search or Recipe List button
Pre-Condition:
Users want to search or view recipes
Basic Path:
1. System checks whether searched recipe is in recipe list or
not
2. If it is available in recipe list, system shows this
recipe
Alternative Path:
If user want to see whole recipe list
1. System shows whole recipe list
Post-Condition:
Users can select from recipe list
Exception Paths:
None
Other:
None
Show Recommended Recipes
Use Case Name:
Show Recommended Recipes
Xref:
Section 3.2.2.3 , Recommendation Engine Use Case
Trigger:
User clicks on the Login button
Pre-Condition:
Users login to system
Basic Path:
1. System shows recommended recipes to user
Alternative Path:
None
Post-Condition:
Users can select from recipe list
Exception Paths:
None
Other:
None
Calculate Average of Rate
Use Case Name:
Calculate Average of Rate
Xref:
Section 3.2.2.3 , Recommendation Engine Use Case
Trigger:
Users rate the selected recipe
Pre-Condition:
Users rate the recipe
Basic 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:
None
Post-Condition:
Recommendation list to user is updated based on this
calculations
Exception Paths:
None
Other:
None
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
Systems 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.
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.
Software Design DescriptionIntroductionPurposeThe purpose of
this document is to describe the design of the Recipe
Recommendation System for the Turkish Cuisine project. This
document contains the software architecture, deployment diagram,
system sequence diagram, design details, actors sequence diagrams
and interface design.Scope of ProjectThis document will describe
the design and diagrams of the project. This software design
document will explain the general architecture of system, database
design and interface design. System has two parts. First one is
database. Database includes all entities of system such as
ingredients, recipes. Other part is interface. Glossary
TERM
DEFINITION
SDD
Software Design Document
SQL
Recipe Recommendation System for Turkish Cuisine project
database
ASP.NET
ASP.NET is an open-source server-side web application framework
designed for web development to produce dynamic web pages.
GUI
Graphical User Interface
C#
C# is a general object-oriented programming (OOP) language for
networking and Web development
SCRUM
Scrum is an agile software development model. [15]
Sprint
Sprint is period of time during which specific work.
The Waterfall Model
Waterfall is the system development life cycle model for
software engineering.
References
[15] (Directly retrieved from,
http://searchsoftwarequality.techtarget.com/definition/Scrum,
2016)
Overview of Document
This document has six chapter. First of all, first chapter is
introduction. Second chapter contains deployment diagram.
Deployment diagram consists of nodes and links. Node refers to the
hardware part of the system. It shows systems hardware topology.
Third chapter contains Architecture design. Architecture design
contains describes of all functions and users of system. Fourth
chapter includes data structure design. In this part database
tables, tables attributes, attribute types and sizes. Fifth chapter
includes Use Case Realization. In addition sequence diagrams for
each actor are shown in this chapter. Sixth chapter contains
interface of system website and finally conclusion part.
MotivationToday, the recommendation system, which is mostly
located on the shopping sites, is calculated taking into
consideration the preferences you have made in the past and the
similar preferences of others. Shoe, picture, music, recipe etc.
preferences are kept in memory. These preferences are then used
both for ourselves and for other users. We are dealing with recipe
recommendation systems. We conducted regular research about our
project for 3 months. We have found and reviewed applications that
are similar to the web application we want to do. We found the
algorithms we could use. We decided on the interface of the web
application. We searched for what functions to use for what. We've
figured out how to keep the data. Keeping the data was the most
pressing issue. Because we decided between the applications we have
not encountered before. We searched for these applications.
In first part we worked with the waterfall model. Because
working with the waterfall model is easy and straightforward. At
the same time, the waterfall model does not interfere with each
other and works with comprehensive documentation, which is why we
prefer waterfall. We showed Waterfall Process Timeline in Figure
7.
In second part we will work with one of the agile methods,
scrum. One of the reasons we want to use the Scrum method is that
it has small steps. So it is fast and motivational. It allows you
to do efficient work in a short time. Working with Scrum is the one
of the reason for preferring regular meetings. So things are
clearer. SDD documentation was prepared. Deployment diagram was
made in this document. Then the architecture of the system was
created. The interface of the Web application is designed.
Figure 7: Waterfall Process Timeline
Figure 8: Scrum Diagram
Deployment Diagram
Figure 9: Deployment Diagram
The purpose of the deployment diagram is that defines the
working principles of recommendation system of our website. System
has 4 main sub modules: Client, Web Server, Application Server and
Database Server. Client module makes a connection between system
and user/admin. Client module has only web browser. Web server has
web application. In web application, we designed website with .Net
and Html codes. With the application server, visuals were created
to be delivered to the user. In application server, we use data
analytics, recommendation engine and search engine. For recipe
recommendation to user we used recommendation engine. To search the
recipes we used search engine and to match the recipes we use data
analytic. Database server is to collect the recipes, user and admin
information. We collected all this information in MsSQL and used
Mongodb for the recipe explanation.
Architecture DesignWeb System Architecture
Figure 10: Web System Architecture
User
Name: User
Type: Web Page
Description: This page is users home page. There are one search
box and two buttons. One button is used to view users profile.
Other button is used to add recipe to system. If the user wants to
add recipe to system, user can press Tarif Ekle button. After
pressing the button, textboxes for recipe information are
displayed. User can write recipe information and press Kaydet
button. After pressing Kaydet button, system directs to users home
page. System displays recommended recipes to user in home page. If
the user wants to search recipe, s/he can write search word in
search box and press enter. After pressing enter, system displays
found recipes. User can press Tarifi ncele button and see recipes
ingredients, method, description, total calories, rating of recipe
and comments about this recipe. User can write comment to this
recipe and rate recipe. In this page, user can add recipe to
favorites. In addition, in users home page if the user wants to
view his/her profile, user can press Profilim button. In this page,
user can view profile, view favorites, delete recipe from favorites
and update his /her profile.
Operations:
Name: register ()
Pre-conditions: Access to Recipe Recommendation Web Site
Post-Condition: Registered user can login to system
Exception Paths: None
Flow of Events:
1. The user is on Recipe Recommendation Web Site
2. The user clicks ye Ol button
3. Web Site lists textboxes for getting information about
user.
4. The user fills boxes with his or her information and clicks
Kaydet button.
Name: login ()
Pre-Condition: Registration to the Web Site
Post-Condition: User can view recommended recipes, view or
search recipes, update profile, add new recipe
Exception Paths: None
Flow of Events:
1. The user is on Recipe Recommendation Web Site
2. User clicks Giri Yap button
3. System displays textboxes for login. The user writes his or
her email address and password and clicks Giri Yap button.
4. The user logins to system.
Name: search ()
Pre-Condition: Login to the system
Post-Condition: User can select searched recipe and rate it
Exception Paths: User can give up searching at any time
Flow of Events:
1. The user writes search word or recipe name to search box and
clicks Ara button.
2. SQL server lists the found recipes
Name: viewRecipe ()
Pre-Condition: Login to the system
Post-Condition: User can select from recipe list and rate it
Exception Paths: User can give up viewing at any time
Flow of Events:
1. After listing recipes, user selects recipe and clicks Tarifi
ncele buttons.
2. System lists information about recipe such as ingredients,
description and method.
Name: ViewRecommendedRecipe ()
Pre-Condition: Login to the system
Post-Condition: User can select from recommended recipes and
rate it
Exception Paths:
1. User does not want to select from recommended recipes
2. User can search any recipe
Flow of Events:
1. System lists recommended recipes according to users history
and preferences.
2. User can select recipe from Recommended Recipe lists and
click Tarifi ncele button.
3. System lists information about selected recommended
recipe.
Name: Rate ()
Pre-Condition: User views recommended recipes or search/view
recipes and select one
Post-Condition: User can select from recommended recipes and
rate it
Exception Paths: If user does not want to select from
recommended recipes, s/he can continue to search any recipe
Flow of Events:
1. After viewing selected recipe, user clicks one of rate points
from 1 to 5
2. System gets points.
Name: UpdateProfile ()
Pre-Condition: Login to the system
Post-Condition: User can search or view recommended recipes
Exception Paths: None
Flow of Events:
1. In users homepage, the user clicks Profilim button.
2. System displays users profile information
3. User clicks Dzenle button.
4. System displays editable textboxes for every personal
info
5. User edits his or her profile and clicks Kaydet button.
6. Edited information are changed in systems database.
7. System displays updated profile of user.
Name: AddRecipeToFavorite ()
Pre-Condition: User rates a recipe
Post-Condition: User can select from favorite recipes list
Exception Paths: If user does not like the recipe, user does not
add it to the favorites list
Flow of Events:
1. After clicking Tarifi ncele button, user sees detail
information about recipe and if s/he likes it, s/he can add to
him/her favorite recipe list by clicking Favorilere Ekle
button.
2. Favorite recipe list is updated.
Name: ViewFavorites ()
Pre-Condition: Adding a recipe to favorites list
Post-Condition: User can select from favorite recipes list
Exception Paths: None
Flow of Events:
1. In users homepage, the user clicks Profilim button.
2. System displays users profile information and favorite
list.
3. User clicks Favori Yemek Tariflerim button.
4. System displays favorite list
Name: DeleteRecipeFromFavorite ()
Pre-Condition: Adding a recipe to favorite recipes list
Post-Condition: User can select from recommended recipes or
search a recipe
Exception Paths: None
Flow of Events:
1. In users homepage, the user clicks Profilim button.
2. System displays users profile information and favorite
list.
3. User clicks Favori Yemek Tariflerim button.
4. System displays favorite list
5. Sil button places near to all recipes.
6. User can click this button which is near to which one s/he
wants to delete.
Name: ViewProfile ()
Pre-Condition: Login to the system
Post-Condition: User can search or view recommended recipes
Exception Paths: None
Flow of Events:
1. In users homepage, the user clicks Profilim button.
2. System displays users profile information
Name: AddRecipe ()
Pre-Condition: Login to the system
Post-Condition: User can search or view recommended recipes
Exception Paths: If added new recipe is not appropriate, the new
recipe is not added to the system.
Flow of Events:
1. In users homepage, the user clicks Tarif Ekle button.
2. System displays textboxes for recipe information.
3. User writes recipe information and press Kaydet button.
4. System directs user to users homepage.
Name: AddUsertoOwnAccount ()
Pre-Condition: There must be users in the system.
Post-Condition: View at the recipes that the system
recommended.
Exception Paths: None
Flow of Events:
1. In users home page, the user clicks Davet Yarat button.
2. In invitation page, the user clicks Davetli ekle button.
3. The user writes the names of the users you want to invite in
the search box.
4. Then user clicks ner button.
5. System recommend recipes according to preferences, allergic
and paste selected recipes of all users.
6. The user selects the recipe that you want.
Name: ProspectiveRecipes ()
Pre-Condition: The user or admin must already have installed the
recipe on the system.
Post-Condition:
Exception Paths: None
Flow of Events:
1. In user home page, the user clicks special day section.
2. In special day page, the user fills out the form of event
type, event day, event time, and list name.
3. In Recipes page, the user chooses list name from drop down
list.
4. System records data.
Name: AddAllergyDiet ()
Pre-Condition: In users profile page, the user must be
identified with nutrients that are allergic.
Post-Condition: Filtered recipes for recommending to users.
Exception Paths: None
Flow of Events:
1. In users home page user clicks Profil button.
2. Select the nutrients that are allergic.
3. Clicks the Save button.
4. The system displays recipes that filter out the nutrition for
which they are allergic.
5. View the recipes.
Name: ViewPastSelectedRecipes ()
Pre-Condition: Several recipes must be selected by the user in
the past.
Post-Condition: View past selected recipes.
Exception Paths: None
Flow of Events:
1. In users home page user click Gemi button.
2. The system displays the recipes chronologically.
3. View the past selected recipes.
Admin
Name: Admin
Type: Web Page
Description: This page is admins home page. There are one search
box and two buttons. One button is used to view users. The other
one is used to view recipes. If admin wants to view recipes, s/he
clicks Yemek Tarifleri button and system lists all recipes in
alphabetical order. In this page, there is a search box and admin
can search specific recipe in here. If admin want to add a new
recipe to recipe list, s/he clicks Yemek Tarifi Ekle button and
fills necessary information about the new recipe. Also, admin can
delete any recipe from recipe list by clicking Sil button and s/he
can update any recipe by clicking Gncelle button which place near
to all recipes. Moreover, admin view users by clicking Kullanclar
button in admins home page and users are listed in alphabetical
order. Admin can search by writing the name of user in search box
in this page and system displays user as a list. Then admin clicks
Grntle button which places near to all users in list to see user in
detail. Search box is used to search any word or recipe.
Operations:
Name: search ()
Pre-Condition: Login to the system
Post-Condition: Admin can update, add, delete or view the recipe
and view users profiles.
Exception Paths: None
Flow of Events:
1. In admins homepage, admin writes a word or recipe in search
box and press Ara button.
2. SQL server lists the found recipes.
Name: ViewRecipe ()
Pre-Condition: Login to the system
Post-Condition: Admin can add, delete or update the recipe
Exception Paths: None
Flow of Events:
1. In admins homepage, admin clicks Yemek Tarifleri button.
2. System lists all recipes in alphabetical order.
3. Admin writes recipe name to view it in search box.
4. System displays recipes as a list.
5. Admin clicks Tarifi ncele button to see recipe in detail.
Name: AddRecipe ()
Pre-Condition: Login to the system
Post-Condition: Recipes can be recommended to users
Exception Paths: None
Flow of Events:
1. In admins homepage, admin clicks Yemek Tarifleri button.
2. System lists all recipes in alphabetical order.
3. Admin clicks Yemek Tarifi Ekle button.
4. System displays textboxes for recipe information.
5. Admin writes recipe information and press Kaydet button.
Name: AddNutritionalValues ()
Pre-Condition: Login to the system
Post-Condition: Nutritional values can be added to system and
shown in recipe page.
Exception Paths: None
Flow of Events:
1. In admins homepage, admin clicks Yemek Tarifleri button.
2. System lists all recipes in alphabetical order.
3. Admin selects a recipe.
4. Admin clicks Besin Deerleri Ekle button in recipe page.
5. Admin writes nutritional values and press Kaydet button.
Name: DeleteRecipe ()
Pre-Condition: Login to the system, the presence of unpopular
and low grade recipes
Post-Condition: Users can select from the rest of recipes
Exception Paths: None
Flow of Events:
1. In admins homepage, admin clicks Yemek Tarifleri button.
2. System lists all recipes in alphabetical order.
3. According to recipes rating, admin decided to delete recipe
by clicking Sil button.
Name: UpdateRecipe ()
Pre-Condition: Login to the system, some ingredients list or
recipe changes occurring
Post-Condition: Updated recipe can be recommended to users
Exception Paths: None
Flow of Events:
1. In admins homepage, admin clicks Yemek Tarifleri button.
2. System lists all recipes in alphabetical order.
3. Admin clicks Gncelle button to make any changes on
recipe.
4. System displays textboxes for recipe information.
5. Admin writes updated recipe information and press Kaydet
button.
Name: ViewUsersProfile ()
Pre-Condition: Login to the system, any complaints from the
user
Post-Condition: Admin can send messages to users about their
complaints
Exception Paths: None
Flow of Events:
1. In admins homepage, admin clicks Kullanclar button.
2. System lists all users in alphabetical order.
3. After searching the name of user in search box, admin clicks
Grntle button to view users profile.
Recommendation Engine
Name: System Actor
Type: Web Page
Description: The system is the component in the operation of the
program. The system allows the program to work properly. The system
adds recipes sent by the user and the admin. The system allows
users and administrators to navigate to the pages they want to
process. The system is returning the desired recipes. The system
also shows recommended recipes.The user evaluates recipes and the
system calculates the rating of these recipes. The system does this
by dividing the total number of users by the number of users.
Operations:
Name: ShowRecipe ()
Pre-Condition: System shall be able to show recipes to
users.
Post-Condition: System shall be able to showing recipes to user
and admin.
Exception Paths: None
Flow of Events:
1. In admins page or in users page they write to search box.
2. System list all recipes.
Name: ShowRecommendedRecipes ()
Pre-Condition: System shall be able to show recommendations to
users.
Post-Condition: System shall be able to showing recipes to user
and admin.
Exception Paths: None
Flow of Events:
1. System recommend recipes according to user history and
preferences.
2. System list all recipes.
Name: CalculateAvgRate ()
Pre-Condition: System shall be able to calculate average rate
using the ratings given by users.
Post-Condition: System shall be able to showing rates to user
and admin.
Exception Paths: None
Flow of Events:
1. User rate the recipes.
2. According to this rates system calculate the average
rates.
3. Showing the rates to users and admin.
Data Structure Design
All data of our system are stored in database. ER diagram, its
fields are shown below tables.
ER Diagram
Figure 11: ER Diagram
User Information
Attribute Name
Attribute Type
Attribute Size
Name
Nvarchar
50
Surname
Nvarchar
50
Lenght
Int
120
Email
Nvarchar
50
Username
Nvarchar
50
Age
Int
120
Weight
Decimal(7,3)
Password
Nvarchar
50
Gender
Nvarchar
50
Table 1: User Information
User table is used to keep user information. This table has
username as a primary key. System gathers user information from
user and keeps them in this table.
Recipe_ingredient Information
Attribute Name
Attribute Type
Attribute Size
Ingredient_ID
Nvarchar
50
Recipe_ID
Nvarchar
50
Recipe_Ingredient_ID
Nvarchar
50
Ingredient_Quantity
Nvarchar
50
Table 2: Recipe_Ingredient Information
Recipes have many ingredients and ingredients can be used in
many recipes. This table makes a connection between recipes and
their ingredients.
Ingredient Information
Attribute Name
Attribute Type
Attribute Size
Ingredient_ID
Nvarchar
50
Ingredient_Name
Nvarchar
50
Calories
Decimal(7,3)
Table 3: Ingredient Information
This table keeps information about ingredients. Ingredient_ID is
a primary key of this table.
Categories Information
Attribute Name
Attribute Type
Attribute Size
Categori_ID
Nvarchar
50
Categori_Name
Nvarchar
50
Table 4: Categories Information
A recipe can belong to more than one categories. In addition, a
category can have many recipes. For example; green runner beans
belong to vegetable dishes and appetizer categories.
Recipe_Category Information
Attribute Name
Attribute Type
Attribute Size
Categori_ID
Nvarchar
50
Recipe_ID
Nvarchar
50
Recipe_Category_ID
Nvarchar
50
Table 5: Recipe_Category Information
This table connects recipes and categories because a recipe can
belong to more than one category and a category can has more than
one recipe.
Recipe Information
Attribute Name
Attribute Type
Attribute Size
Recipe_ID
Nvarchar
50
Recipe_title
Nvarchar
50
Recipe_description
Nvarchar
50
Method_Name
Nvarchar
50
Table 6: Recipe Information
This tables keeps recipe information. Recipe_ID is a primary key
of this table.
Rating Information
Attribute Name
Attribute Type
Attribute Size
Rating_Num
Nvarchar
50
Recipe_ID
Nvarchar
50
User_ID
Nvarchar
50
Rating_ID
Nvarchar
50
Table 7: Rating Information
This table keeps rating information. In this system users can
rate recipes. Users can give point from 0 to 5 to recipe. This
table has Rating_ID primary key
Use Case Realizations
Figure 12: Whole System Sequence Diagram
Use Case: User
Detail information about user had given in Software Requirement
Specifications 3.3.2.
Figure 13: User Sequence Diagram
Use Case: Admin
Detail information about admin had given in Software Requirement
Specifications 3.3.2.
Figure 14: Admin Sequence Diagram
Use Case: Recommendation Engine
Detail information about recommendation engine had given in
Software Requirement Specifications 3.3.2.
Figure 15: Recommendation Engine Sequence Diagram
Interface Design
Design of pages are shown below. Some modifications on these
pages can be made in future, changed pages will be updated in this
report.
Home Page
Figure 16: Home Page
Recipe Page
Figure 17: Recipe Page
Figure 18: Recipe Page 2
Personal Information Page
Figure 19: Personal Information Page
Search Page
Figure 20: Search Page
Recommendation Page
Figure 21: Recommendation Page
CONCLUSIONS
This report contains literature review, SRS and SDD documents.
First, the literature has been mentioned. It was determined that
the challenges of the project and what should be considered.
Information on recommendation techniques were collected. Algorithms
that can be used in the software part of the project have been
determined. Secondly, the description given in the SRS document is
explained. We mentioned our purpose in this section and the scope
of this chapter. We did an overview of the division. Then the
requirements of the interface of the system environment, the
functional and non-functional requirements of the system have been
determined. The Use Case diagram was drawn. It is explained that
user, admin etc. actors can do. Finally, the data given in the SDD
documentation is explained. The project management methodology was
first defined in this section. Deployment diagram, all functions
for each actor, sequence diagram of the system and sequence
diagrams for each actor are drawn. At the same time, the database
tables of the system were drawn. The ER diagram was drawn.
Attributes and attribute information were explained. Interface was
prepared. By using this information, we had determined the general
state and prototype of our project. We had defined the basic
algorithms and project management methods for use in software
development.
Acknowledgement
We would like to thank Engin Demir, our advisor for providing
opinion and expertise to help the research to a great extent.
References
[1]
J. Leskovec, A. Rajaraman and J. D. Ullman, "Ch 9 -
Recommendation Systems," in Mining of Massive Datasets, 2014, pp.
307-343.
[2]
S. S. Li and E. Karahanna, "Online Recommendation Systems in a
B2C E-Commerce Context: A Review and Future Directions," Journal of
the Association for Information Systems, vol. 16, no. 2, pp.
72-107, 2015.
[3]
D. Bianchini, V. D. Antonellis, N. D. Franceschi and M.
Melchiori, "PREFer: a Prescription-based Food recommender,"
Computer Standards & Interfaces, 2016.
[4]
longqi Yang; Cheng-Kang Hsieh; Serge Belongie; Nicola Dell;
Hongjian Yang; Deborah Estrin, "Yum-me: Personalized Healthy Meal
Recommender System," 2016.
[5]
Negar Hariri;Bamshad Mobasher;Robin Burke, "Adapting to User
Preference Changes in Interactive Recommendation," Chicago,
2015.
[6]
Mohammad-Hossein; Nadimi-Shahraki; Mozhde Bahadorpour,
"Cold-start Problem in Collaborative Recommender Systems: Efcient
MethodsBasedonAsk-to-rateTechnique," Najafabaf, 2014.
[7]
By Michael D. Ekstrand, John T. Riedl and Joseph A. Konstan,
"Collaborative Filtering Recommender Systems," 2011.
[8]
"Wikipedia," [Online]. Available:
https://en.wikipedia.org/wiki/Recommender_system#Content-based_filtering.
[Accessed 27 10 2016].
[9]
Hendrik Drachsler, Hans G. K. Hummel and Rob Koper ,
"Recommendations for learners are different:Applying memory-based
recommender system techniques to lifelong learning".
[10]
Dietmar Jannach,Markus Zanker,Alexander Felfernig,Gerhard
Friedrich, Recommender Systems An Introduction, cambridge
university press, 2011.
[11]
Priyanka Shenoy, Manoj Jain, Abhishek Shetty, Deepali Vora, "Web
Usage Mining Using Pearsons Correlation Coefficient," International
Journal of, vol. 3, no. 2, 2013.
[12]
"Computer Science," Carleton, [Online]. Available:
http://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/modelbased.html.
[13]
Bamshad Mobasher and Robin Burke and JJ Sandvig, "Model-Based
Collaborative Filtering as a Defense Against Profile Injection
Attacks," School of Computer Science, Telecommunication and
Information Systems.
[14]
M. N. Moreno, S. Segrera, V. Lpez, M. D. Muoz and . L. Snchez,
"Web mining based framework for solving usual problems in
recommender systems. A case study for movies' recommendation,"
Neurocomputing-Elseiver, pp. 72-80, 2016.
Page 6