CleanSpoon: An app where users can input the items in their fridge, browse recipes that use ingredients they have, and generate grocery lists.
I want to add ingredients to my fridge, and optionally enter the expiry date.
I use the search bar to find the ingredients I have.
I want to remove ingredients from my fridge.
When viewing everything in my fridge, I can click the delete button next to an ingredient I don't have anymore.
I want to set my dietary preferences and allergies so I don't get recipes I can't eat.
From my profile I can set dietary restrictions, which can also be modified when I'm searching for recipes.
I want to search for recipes based on what's in my fridge, and see what other ingredients are required.
From the homepage I can search for the recipes.
When searching for recipes, I want ingredients I don't have to be added to my shopping list.
From the recipes list, I can see which recipes require ingredients I don't have, and add them to my list.
I want to be able to see my shopping list and send it to a mobile phone.
From the shopping list, I can browse ingredients and send the whole list to a phone number.
When browsing recipes, I want to filter the results by calories, number of ingredients I don't have, (meal).
I can easily filter the results using the UI.
When browsing recipes, I want to save specific recipes to my profile to come back to them later.
From the recipes screen, I can thumbs up recipes to save them.
I want to be able to view my expired ingredients, but have them disappear from my main fridge after they're expired.
From the fridge view, I can see expired ingredients separately.
When something is expired, I want the option to add it to my next shopping list.
From the fridge view, I see a notification when something becomes expired and have the option to add it to my next shopping list.
When browsing my shopping list, I want to easily add all the items to my fridge after I'm done shopping.
From the shopping list, I can click "add all to fridge" to add every item, or add individual items separately.
STRETCH:
When I go shopping, I want to be able to scan my receipt and have those items go automatically into my fridge.
https://www.canva.com/design/DADVp7huS0Q/jeaC_KruWQI6th9qoDgFfQ/view
Backend: Rails API + Postgres
Frontend: React App (Webpack) + Axios
Use Yummly API
Users:
- Get user details:
GET /api/users/user[:id]
- Edit user profile:
PUT /api/users/user[:id]
- Create account:
POST /api/users/
(Login and logout routes are not MVP)
Recipes:
- Get user's saved recipes:
GET /api/fav_recipes/user[:id]
- Add a saved recipe:
POST /fav_recipes/user[:id]
- Delete a saved recipe:
DELETE /api/fav_recipes/fav_recipe[:id]
- Get recipes based on fridge items:
GET /api/recipes/user[:id]
Fridge:
- Browse what's in your fridge:
GET /api/fridges/user[:id]
- Add to your fridge:
POST /api/fridges/user[:id]
- Delete from your fridge:
DELETE /api/fridges/fridge_ingredient[:id]
Shopping List:
- Browse what's in your shopping list:
GET /api/lists/user[:id]
- Add to your shopping list:
POST /api/lists/user[:id]
- Delete from your shopping list:
DELETE /api/lists/list_ingredient[:id]
Parameters for search: (for get /api/recipes/user[:id])
- extraAllergies: additional allergies
- diet: if unchanged, just give user diet (vegetarian or vegan)
- excludedCourses[]: courses that are excluded. Users can x off courses shown in side bar to add this.
- excludeAllHolidays: boolean
- maxResult: number of recipes given
- start: of the array of results (eg: 10 items page 1: maxResult: 10, start: 0. Page 2, maxResult 10, start 10)
searchParameters: { extraAllergies: [string], diet: {vegetarian: boolean, vegan: boolean}, excludedCourses: [string], excludeAllHolidays: boolean, maxResult: number, start: number }
Always (for backend)
- requirePictures
- Same repo, add collaborators
- Code review before merging to master