Table of Contents
EatThis - a smart recipe application which allows you to create, edit, favorite, and search for new recipes. This app has recommendation algorithms which consider the user's food preferences.
Backend is powered by Python with Flask web framework and SQLAlchemy as its ORM, PostgreSQL for database. The front-end is written in HTML, Jinja and Javascript. Bootstrap and css were used to style the app.
Unregistered guests can see the most popular recipes, browse all recipes and search particular ones by cuisine/diet/recipe name or ingredient. After search button is pressed, request is send into my flask server which picks corresponding recipes from the database and sends them to the search results page.
Logged in users can add their own recipes with my “add new recipe” feature, that support multiple ingredients and instructions input and images attachment. Images are stored via Cloudinary API. These recipes are private by default user can choose to publish it to the website too. On the backend Flasks creates a recipe and stores it in the database.
When recipe was successfully submitted, user will be redirected to this recipe page immediately. Users also can add recipes to their favorites, I’ve used Javascript to implement this without reloading the page. Every favorite recipe can be modified according to user’s preferences, the amount of recipe variations is unlimited.
Another feature of my app is recipe recommendations based on user’s preferences.
Retrieve an entire repository from a hosted location via URL
git clone https://github.com/asya-code/EatThis.git
You’d then create a virtual environment:
virtualenv env
Next, you’d activate that environment:
source env/bin/activate
Finally, you’d use pip3 to install all of the requirements:
(env) $ pip3 install -r requirements.txt
The -r option lets you supply a text file in the format pip3 freeze produces. This command should install all of the listed libraries.To confirm that the correct packages are installed, you’d just run:
pip3 freeze
Once you’ve set up your virtual environment, activated it, and installed Flask, you should just be able to type:
python3 server.py
Project starts on 03.14.2022, ends on Steps:
MVP
- Users can create a profile and log in
- Users can Store their own recipes - ingredients and steps, pictures (cloudinary API)
- Users can save favorite recipes
2.0
- Users can look for a new recipes by: Name Cousine Ingredients
- Recommendations available based on: Most used recipes Favorite cousine Trending
3.0
- Long term meal planning
- Meal Planning recommendations and suggestions
- Recipes recalculations according to a family/group size
Nice-to-haves
- Dietary adjustment to whole MPV
- Calories/nutritions calculator based recommendations
Main data will come from the static database, working on how to implement dynamic update of the database from online sources