Meal Planner

Meal Planner mealplan function

Project homepage Code (not yet available)

Overview

Meal Planner uses a custom algorithm to offer personalized mealplans based on macro data such as kcalories, protein and fats. Portions sizes are calculated to meet the recommended daily nutrient values.

You may also generate a completely random dessert.

Code

The app uses Flask, a lightweight Python web framework, which helped to simplify the project structure and keep loading times fast. Flask is a good choice for this website as it is a relatively small project. Thanks to Bootstrap, a responsive CSS framework, the website is fully responsive in iOS, Android and other devices.

Furthermore, a stand-alone API is also available here.

Source code will be available soon, as it is still in pre-release state. Therefore, it may take a few weeks to get a first 1.0 release to publish on GitHub.

Dataset

This app uses a very large recipe dataset, Recipe1M+ (MIT) containing over one million user-generated cooking recipes. However, I have reduced them using filter algorithms to only 8000 recipes. Most of my focus was spent filtering recipes out thanks to multiple Python algorithms.

Next, I decided to classify these recipes to suggest main or snack courses. This was also achieved with a classification algorithm. The algorithm is fairly accurate but given the large amount of recipes, it may produce false positives.

It is estimated that 50% of the recipes are main courses and 50% are snacks. This is because users tend to add more snacks than main courses in our food recipe sources.

Meal Planner list of meal plans (ericnl.com)

Next steps

There are many features that could be implemented in the future, below you will find some:

  • Trending recipes and meal plans
  • Adding new recipes
  • User-generated meal plans
  • Daily mealplan alerts
  • Search all recipes
  • Mealplan score

These might be implemented in the future, feel free to contact me at eric@ericnl.com should you have any inqueries, suggestions or feedback about the project.