ChickenKyiv / ChickenKyiv/recipe-api-only
Menu. Advanced(not finished)
- Dominant language
- JavaScript
- Stars
- 37
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
Have status: publish, draft.
When status **publish** - we can display it on menus list(task: update remote method, when we're calling getMenus) #76
(task: attach menus to user, by userId)
**Menu.Edit**
When we want to make changes(update menu) -> we need to clone it with content, assign to user and then apply our changes. **ACL** only user, who made an updates, can with this menu.
Menus, published by chiefs, can be view-able by all users(or if we'll have separation by dishes types) filtered by this types too.
Menu can have types(**related to allergies or dishes only?**) #76
So, if Menu1 have Recipe1 with peanuts allergy and User1 don't want to have recipes with peanuts allergy - we need to remove this recipeId from User1 Menu(not sure if we need to make a clone of this menu for this situation. maybe we need it).
If we attach Recipe1 with allergy to a Menu1 with this allergy restriction, we need to generate error and show message: 'You cannot attach this recipe with allergy to Menu...'
User can add allergies filter #75 to their account, so we'll filter recipes on menu.
When user decide to update recipe(change serving, change/remove ingredients from recipe -> we need to clone recipe and upgrade it)
We need to clone Menu and update this particular recipeId
Also we need to attach this Menu to User
When we run **clone** method - we check if this menu have grocery_id - we must regenerate grocery list.
Case: we add to grocery list some items, not related to menus, and then we need to regenerate grocery list - we can loose this items.
Split grocery list to two sections.
**Section1** - items from recipes from menu, **Section2** - added items by hands.
- [ ] Delete Recipe from Menu
- [ ] Change Order of Recipes in menu
- [ ] Update structure from
`menu: recipes: [recipeId, recipeId]` to `menu:recipes: {monday: [recipeid, recipeId], tuesday: [recipeid, recipeid]}` or `menu:calendar:{monday: [recipeid, recipeId], tuesday: [recipeid, recipeid]}`
- [ ] Then update remote methods, that can be broken with this structure updates
- [ ] Update menu date(move it to the next week, of +2 weeks from published date)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the existing getMenus remote method and the current Menu, Recipe, and grocery-list relationships. The issue is done only when the listed menu editing, ordering, calendar, publication, filtering, cloning, and grocery-list behaviors are specified and implemented, with broken remote methods updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100