- Re-work cuisine and type, move away from enum to join tables
- backend functionality to fetch the main_ingredients and cuisines
- Replace dropdowns with buttons for multple choice
- Re-work inserts into db
- look into as unkown on insert db query
- Persist filters in Redux
- Preview section output validation
- Simplify ingredients and instruction input - copy paste friendly
- Form validation, ensure non-empty fields are not left empty for required inputs
- For how many people are the recipe?
- Edit, remove & Add for metadata
- Edit, Remove & Add features for ingredients
- Edit, Remove & Add features for instructions
- Delete entire recipe
- Redirect back to Admin Page after succesful edit
- Troubleshoot issues with edit form - meta data is lost on page reloads when instructions and ingredients are not, and the filters are not properly selected
- Edit existing filter text
- Add new filters
- Remove filters
- Cascade into join table
- Refactor filters and types to always include both languages, and display only selected language
- Refactor the Filters component into sub components (???)
- List all recipes
- Add the filters as dropdowns
- Details view
- Mark recipe as favorite for users
- Modify the number of people the recipe is for
- Change email
- Change password
- Edit favorite lists - view / delete
- Meal planner / weekly list settings
- Form validation on Inputs, highlight missing information
- Generate lists based on full randomisation
- Pick number of days
- Change number of people
- Add filter options here too
- Re-use previous list project, add here
- Localstorage persist grocery list
- Add new items to list
- Share lists
- Share link? Code?
- Second minor UI for shared list vs personal list?
- Menu but ton to share list, generate link / code?
- Add ingredients from recipes to list
- Backup list to database if authenticated
- Finalise null checks
- Inspect sync of local and remote grocery lists
- Add null checks to grocery list db actions for more precise toast messages
- Ensure dynamic time before disappearing
- Close button good enough
- Database actions should have either Modal or Toast confirmation/errors
- Everything covered in try/catches with error handling.
- Small toast component for success / error messages.
- Finalise the toast styling
- Review error handling across pages and components
- Admin Page must redirect to error in case of non admin roles
- useContext for authentication
- AdminLayout to protect authenticated paths
- Use user roles to determine access
- search function should include matches on recipe titles, descriptions, and from the ingredient lists
-
Language options
-
Translate web elements between ENG/SWE (headings, menu labels etc)
-
Translate recipes between ENG/SWE
-
Proper unit translations for ingredients
-
Add missing translations for static web elements such as headings and buttons
-
Clean up horizontal menu styles in NavMenu - follow Filters.tsx
-
Look into the horizontal menu wrapper, see if the active section state can be repeated less
-
Refactor Output.tsx
-
Ensure full reusability
-
Include FadeInOutWrapper - allow fade effect on language change
-
Include FadeInOutWrapper on Heading.tsx - allow fade effect on language change
-
Ensure similar structure on the service and query layers
- Same try / catch principles
- Same import / export principles
- Naming standards
-
Refactor RecipeDetails.tsx - remove double markup
-
Look into FadeWrappers dubious useEffect
-
Look into Fading in / out the recipe list once filters are applied
-
Fix the empty favourite list use case on profile page
-
Fix placement of favourite icon on RecipeDetail.tsx
-
Lock favourite icon size on RecipeCard.tsx
-
Finalise CreateRecipe forms:
- hover: border on buttons in CreateRecipe components
- State is cleared after successful recipe insertion but no re-direct from preview page
- Must also trigger a new fetch of recipes
- Form validation - no validation occuring on the large input fields on ingredients and instructions
- Highlighting input with missing information
-
Button highlights - apply new utility (button-click) from index.css on buttons
-
add invalid: classes on form elements for CreateRecipe, Auth page, Profile page settings etc
-
Refactor ButtonRow component - use Tailwind instead of JavaScript
-
Refactor all Modal usage to use the new Context
-
Ensure that grocery list ingredient aggregation can identify 'tomato', 'Tomatoes' and 'tomatoes' etc as the same ingredient.