Skip to content
Brandon Lodge

Smart Meal Planner

Smart Meal Planner combines a Selenium-based scraper with a small Flask web app. The scraper crawls Gousto's recipe pages, parses each recipe's title, URL and ingredient list, and stores them in a local SQLite database, normalising ingredient names as it goes (for example, treating "garlic", "minced garlic" and "garlic clove" as the same ingredient) so near-duplicates don't build up. The web app lets you select the ingredients you already have, choose whether a recipe must use all of them or just any one, and see matching recipes with a link back to the original Gousto page.

Completed
View source →

Features

  • Scrapes recipe data (title, URL, ingredients) from Gousto using Selenium
  • Normalises ingredient names to avoid near-duplicate entries
  • Search recipes by ingredients you already have, matching on all or any
  • Links back to the original recipe on Gousto

Goals

  • Web scraping and browser automation (Selenium)
  • Data storage and querying (SQLite)
  • Backend web app development (Flask)
  • Automated testing (pytest)
  • Continuous integration (GitHub Actions)

Built with

PythonFlaskSeleniumSQLitepytestGitHub Actions