Top Banner
Ç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 Pınar GÜVENER 201112031 Esin AÇIK 201211001 Hivda ÖZATLI
82

yemektenevarblog.files.wordpress.com€¦  · Web viewThe main purpose of this project is to create recipe recommendation system for Turkish cuisine. In this report, literature review,

Apr 16, 2018

Download

Documents

trannga
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

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