Kelly’s Status Report for 4/6/24
Work Accomplished:
- Integrated OpenAI API to get recipe using current inventory
- Connected the results from the filter options (Dietary Restrictions & Cuisine)
- Prompted the LLM and asked to end the recipe with !!! since there was a problem earlier where some long recipes are cut short and not finished.
- Checking to make sure the response has !!! in it and requesting the response again in a loop if not, until it has it.
- Generate Recipe button is disabled after it is clicked until it gives you a recipe to prevent multiple responses if the user clicks more times.
- Created a pop up with the name of the recipe
- Clicking “Back” goes back so you can generate a new recipe
- Clicking “Let’s get cooking!” goes to the recipe card page.
- Created an upload image button widget that can be reused across screens
- Users can upload a picture from their photo library, take a picture from their camera, or remove the picture.
- Created the recipe card page
- Able to upload image
- Parsed the data from the OpenAI result to bullet point the ingredients and number the instruction steps.
- Bookmark icon fills in when clicked, which will save the recipe to saved recipes (not implemented yet because the database is not connected)
- Allowed the saved recipe list to be clickable to open the recipe card.
- Adjusted the formatting for the item card as a recipe to be different from the inventory
- Created custom inventory input pop up when clicking the + button on the inventory page
- Title is the only required field and the save button is disabled if the title is empty
- Expiration date uses a date picker that opens a calendar
- Quantity can be typed in or use + and – buttons to adjust the quantity.
- Able to upload image
- Clicking out of the pop up exits it
- Created a custom recipe input pop up when clicking the + button on the recipe saved tab page
- Title, ingredients, and instructions are all required.
- Able to upload image
- Users will have to write out the ingredients and instructions using new lines
- It will save as the same format as the OpenAI response so that it can appear on the recipe card.
- Writing in – or * or numbers at the start of the line will also work and it’ll be parsed out.
video demo of the new features
Verification:
- I will run tests by timing the recipe generation (it is currently very fast so definitely meets the use case and design requirements)
- For the accuracy of the generated recipes, I will generate all different cuisines of recipes and then check the ingredients to make sure they are all in our inventory.
- I will calculate the percentage of accurate recipes from a sample size and if it is lower that our use case/ design requirements, I will edit the prompt/ add more verification steps to ensure they are accurate.
Progress:
- On track with the updated gantt chart. App is basically done on my end, it just needs to be connected to the DB for everything to work together (Sebastian’s role)
- Decided to make the “cookable” toggle and grayed out recipes a stretch goal since it is difficult to parse the ingredients from the string response that OpenAI provides
- Sometimes it’s listed as “garlic, 2 cloves” or “2 cloves of garlic” so getting just “garlic” to check against our DB would be difficult.
- Another stretch goal will be to edit things, like the text in the recipes and also the images of the inventory items.
- Made the filter button in the recipe tab a stretch goal. Will need to be saving the tags passed into the LLM and also set tags in custom recipes.
- The search, location filtering, and sorting will be done by Sebastian and might make more sense once the database is in the app, but it is not as big of a priority as other tasks.
Things to complete next week:
- Connect scanner video feed to the app
- Verification tests