Want to create interactive content? It’s easy in Genially!

Get started free

Idea 2 - Python

paula.villablanca.a

Created on October 22, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

Recipe finder

Discover new recipes with your favourite ingredients!

start

Index

01 Project . . . . . . . . . . . . . . . . . . . . . . . . . .

02 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . .

03 Process . . . . . . . . . . . . . . . . . . . . . . . . .

04 Challenges . . . . . . . . . . . . . . . . . . . . . . .

05 Team . . . . . . . . . . . . . . . . . . . . . . . . . . . .

01

pROJECT

"Create a program to search for recipes based on an ingredient"

DATA

02

Edamam API

  1. Provides access to a database of recipes and food data.
  2. The Recipe Search API allows developers to search for recipes based on a variety of criteria, including ingredients, cuisine, diet, and nutritional information.
  3. It is used by businesses and organizations to integrate food and nutrition data into their products and service

+ info

PROCESS

03

Things we considered:

  • Ingredients input
  • Health requirements, cuisine type, meal type input
  • Number of servings
  • Calories per serving
  • Weight per serving
  • Total cook time
  • Order results by 'weight per serving'
  • Additional diet/nutritional information (low-carb, low-sodium, etc.)
  • Time function

+ info

MoSCoW

MUST

SHOULD

  • Users should be able to filter recipes by health requirements, cuisine type and meal type
  • Users should be able to know the number of servings per recipe
  • Users must be able to enter any ingredient of their choice
  • The name of the recipe must be shown in the results
  • The urls for the recipes must be accessible

(happy user)

COULD

WON'T

  • Users could know the weight and calories of each serving
  • Users could know additional dietary information
  • Recipes could be ordered by 'weight per serving'
  • Recipes could include total cook time.
  • Users won't be able to see ingredient/recipe prices
  • Users won't be able to purchase ingredients online

wHAT WE HAVE DONE

  • Retrieve data from API (input ingredient, input healthLabel, input cuisineType, input mealType)
  • User input - 'ingredient', 'refine search', 'health choice', 'cuisine type', 'meal type'
  • Time function (output is printed with time delay)
  • Print a message informing user which health choice, cuisine type, meal type, ingredient they have selected
  • If an input error occured in 'refine_search' - an error message is printed and the code exits "exit()"
  • Create a recipe dictionary list of recipes from the API based on user input
  • From the recipe dictionary list, we sorted the recipes based on weight per serving
  • Print the sorted list of recipes including the name(‘label’), website(‘url’), servings(‘yield’), calories per serving, weight per serving and total cooking time ('totalTime').
  • Retrieve data about dietLabel and printed an additional message about the recipe being a good choice for which diet. Also join the list of diets with a comma.
  • If no recipes are found a message is printed.
  • Save results to file

Each recipe will display:

  1. Name of the recipe
  2. The link to the website
  3. The number of servings per recipe
  4. The number of calories per serving
  5. The weight per serving (in grams)
  6. Total cook time
  7. Extra nutritional information for specific diets

Vegetarian diet

Gluten-free

Vegan

Dairy-free

lET'S TRY IT OUT!

Tomato as chosen ingredient:

extra dietary requirements

Type of diet

Number of servings

Low-carb

Vegetarian

3 servings

Let's find out

04

02

STRAWBERRY

BANANA

01

03

couscous

spinach

challenges we faced and how we solved THEM (1)

04

Challenge 1: Working collaboratively (potential challenge) -Teams meetings/Slack messages -Replit (share the code) -Genially (create presentation)

Chickpea flour

Challenge 2: Filter recipes per health, cuisine type, meal type -Asked Nour for advice -Added "&health={}" "&cuisineType={}" "&mealType={}" as part of the url (API) and within the function

challenges we faced and how we solved THEM (2)

04

Challenge 3: Sort recipes by a key (weight per serving) in a dictionary -Researched online - Tested several suggested codes until one worked

Chickpea flour

Challenge 4: Achieving desired output -Constant 'printing' at certain points within the code to see the output - Amending the code to achieve the desired output -For example, recipes were printing in a very long line as a list instead of a separate line so a 'for loop' was created to achieve the desired output

Next steps...

  • Tidy up code so it is easier to read and follow
  • Limit repeated code (maybe create more functions?)
  • Make it more user-interactive (link to website/images)
  • Save multiple ingredients into a file - e.g. "Shopping list" "What's in my pantry"

team

Jess Brown

Nazifah Aslam

Kye-Lee Low

Paula Villablanca

Bon appetit!

Thanks for your attention

Got an idea?

Let the communication flow!

With Genially templates, you can include visual resources to wow your audience. You can also highlight a particular sentence or piece of information so that it sticks in your audience’s minds, or even embed external content to surprise them: Whatever you like! Do you need more reasons to create dynamic content? No problem! 90% of the information we assimilate is received through sight and, what’s more, we retain 42% more information when the content moves.

  • Generate experiences with your content.
  • It’s got the Wow effect. Very Wow.
  • Make sure your audience remembers the message.

Got an idea?

Let the communication flow!

With Genially templates, you can include visual resources to wow your audience. You can also highlight a particular sentence or piece of information so that it sticks in your audience’s minds, or even embed external content to surprise them: Whatever you like! Do you need more reasons to create dynamic content? No problem! 90% of the information we assimilate is received through sight and, what’s more, we retain 42% more information when the content moves.

  • Generate experiences with your content.
  • It’s got the Wow effect. Very Wow.
  • Make sure your audience remembers the message.

Got an idea?

Let the communication flow!

With Genially templates, you can include visual resources to wow your audience. You can also highlight a particular sentence or piece of information so that it sticks in your audience’s minds, or even embed external content to surprise them: Whatever you like! Do you need more reasons to create dynamic content? No problem! 90% of the information we assimilate is received through sight and, what’s more, we retain 42% more information when the content moves.

  • Generate experiences with your content.
  • It’s got the Wow effect. Very Wow.
  • Make sure your audience remembers the message.

Got an idea?

Let the communication flow!

With Genially templates, you can include visual resources to wow your audience. You can also highlight a particular sentence or piece of information so that it sticks in your audience’s minds, or even embed external content to surprise them: Whatever you like! Do you need more reasons to create dynamic content? No problem! 90% of the information we assimilate is received through sight and, what’s more, we retain 42% more information when the content moves.

  • Generate experiences with your content.
  • It’s got the Wow effect. Very Wow.
  • Make sure your audience remembers the message.