The RecipeRecommender is a system that gives personalized recipe recommendations and was developed by Per Starke in the scope of his Bachelor Thesis in order to find out which recommendation algorithms work best in the context of recipe recommendations
The system has the main purpose of being used for the study of the thesis to collect the data needed to find out how good different recommendation algorithms work.
Additionally, it offers a platform for individuals, athletes and nutrition coaches to get personalized recipe recommendations that optionally match required macronutrients.
- Researches, that use the system to collect data and evaluate recommendation algorithms
- Users, that want to get personalized recipe recommendations
- Nutrition coaches, that use the system to get personalized recipe recommendations for their clients
- Raters, people who helped with getting initial ratings for all recipes to provide a basis for making recommendations
- Recipes from the underlying recipe database can be displayed.
- Users can rate these recipes.
- Two different recommendation algorithms (a collaborative filtering ItemKNN algorithm and a content-based algorithm) are used to make personalized recipe recommendations.
- Ratings for recommended recipes are collected for evaluation / answering the research question.
- The system has a good user experience
- The system can be used on different devices
- The development effort is adequate for the scope of a Bachelor Thesis
- The recipe database is large and diverse enough to make good recipe recommendations for users with various different tastes
|Spoonacular Food API
|A food API used to create the recipe database.
|Gives initial ratings for recipes to create a sufficiently large rating database before making recommendations.
|Uses the ‘Recipe Recommender’ to get personalized recipe recommendations.
|Can access user accounts that he/she manages and give ratings and get recommendations in the user’s name.
|Views and evaluates the research data that can be gained with the ‘Recipe Recommender’.
- Using a public GitHub repository for the development and the collaboration with the thesis supervisor, using GitHub Issues and a Kanban-board for a good overview
- Using an efficient tech-stack
- Using the Spoonacular API for creating the recipe database
- Manuel deployment of the system to the server it runs on
- Using csv- and json-files instead of having a relational database
- Not having any automated tests
Components / Modules
|Creates a recipe database using the Spoonacular API.
|Calculates the similarity between recipes.
|Initial Rating Collector
|Allows raters to give initial ratings to recipes to have a sufficiently large rating database before making recommendations. Contains a graphical user interface (GUI).
|User & Coach App
|The piece of the software that users and coaches use, makes personalized recipe recommendations. Contains a GUI.
|Writes the ratings that are needed to answer the research question into a file.
|A CSV file containing all given ratings for recipes.
|Several CSV and JSON files containing recipe information and recipe similarities.
|The ratings and corresponding information needed to answer the research question.
Python and additional libraries:
CSV and JSON files as data storage