Functional Requirements Demo 2 - COS301-SE-2026/Mealchemy GitHub Wiki
Mealchemy
Functional Requirements
R1: Registration and Login
- R1.1 The system will allow users to sign up for an account.
- R1.1.1 Users should be able to signup with an email address and password.
- R1.2 The system shall allow users to log into their account.
- R1.2.1 Users should be able to log into their account with their email address and password.
R2: User Profile and Preference Management
-
R2.1 The system will allow users to store and update their profile details.
- R2.1.1 Set their display name.
- R2.1.2 Set their profile picture.
- R2.1.3 Set their preferred unit of measurement (imperial or metric).
- R2.1.4 Set the cooking equipment they have available to them.
- R2.1.5 Set their preferred font size.
-
R2.2 The system will allow users to store and update their preferences.
- R2.2.1 Set their dietary restrictions.
- R2.2.2 Set their allergy constraints.
- R2.2.3 Set their common disliked ingredients.
- R2.2.4 Set their flavour profile.
- R2.2.5 Set their nutritional goals.
R3: Vault Creation and Management
-
R3.1 The system will have a global recipe vault.
- R3.1.1 The system will allow users to publish standardised recipes to the global vault.
- R3.1.2 The system will allow users to save a copy of a recipe in the global vault to their private vault.
- R3.1.3 The system will allow users to flag recipes that violate community guidelines, which will be reviewed by admins.
-
R3.2 The system will allow users to have 2 additional types of recipe vaults.
-
R3.2.1 Private Vault
- R3.2.1.1 The system will assign a private vault to a user upon account creation.
- R3.2.1.2 The system will allow users to upload and edit personal recipes to their private vault, using a standardised template.
- R3.2.1.3 The system will allow users to create custom recipe folders within their private vault.
-
R3.2.2 Shared Vault
- R3.2.2.1 The system will allow users to created shared vaults and add other users to these vault.
- R3.2.2.2 The system will allow users to create custom recipe folders within the shared vault.
- R3.2.2.3 The system will allow vault members to upload and edit their recipes within the shared vault.
- R3.2.2.4 The system will assign an admin role to the creator of the vault.
- R3.2.2.4.1 The system will allow admins to add and remove vault members.
- R3.2.2.5 The system will allowed users to save a copy of a recipe in the shared vault to their private vault.
-
R4: Recipe Creation and Management
-
R4.1 The system will allow users to create recipes using a standardised recipe template.
- R4.1.1 Users will be able to enter a recipe title.
- R4.1.2 Users will be able to enter a recipe description.
- R4.1.3 Users will be able to select a cuisine type.
- R4.1.4 Users will be able to enter preparation time and cooking time.
- R4.1.5 Users will be able to enter serving size.
- R4.1.6 Users will be able to upload an optional recipe photo.
- R4.1.7 Users will be able to upload an optional tutorial video.
- R4.1.8 Users will be able to upload an optional external link.
-
R4.2 The system will allow users to manage recipe ingredients.
- R4.2.1 Users will be able to add ingredients from a given catalogue.
- R4.2.2 Users will be able to add ingredient quantities.
- R4.2.3 Users will be able to select ingredient units (Metric/Imperial).
- R4.2.4 Users will be able to edit recipe ingredients.
- R4.2.5 Users will be able to remove recipe ingredients.
- R4.2.6 Users will be able to reorder recipe ingredients.
-
R4.3 The system will allow users to manage recipe steps.
- R4.3.1 Users will be able to add numbered cooking steps.
- R4.3.2 Users will be able to edit cooking steps.
- R4.3.3 Users will be able to remove cooking steps.
- R4.3.4 Users will be able to reorder cooking steps.
-
R4.4 The system will allow users to view saved recipes.
- R4.4.1 Users will be able to view recipe details.
- R4.4.2 Users will be able to view recipe ingredients.
- R4.4.3 Users will be able to view recipe steps.
-
R4.5 The system will allow users to update saved recipes.
- R4.5.1 Users will be able to edit recipe metadata.
- R4.5.2 Users will be able to edit recipe ingredients.
- R4.5.3 Users will be able to edit recipe steps.
- R4.5.4 Users will be able to replace or remove recipe media.
-
R4.6 The system will allow users to delete saved recipes.
- R4.6.1 Users will be able to confirm recipe deletion before it is permanently removed.
R5: Pantry Ingredient Management
-
R5.1 The system will allow users to add ingredients to their personal pantry.
- R5.1.1 Users will be able to add ingredients from a given catalogue.
- R5.1.2 Users will be able to enter an ingredient quantity.
- R5.1.3 Users will be able to select an ingredient unit.
-
R5.2 The system will allow users to view pantry ingredients.
- R5.2.1 Users will be able to view all pantry ingredients.
- R5.2.2 Users will be able to view ingredient quantities and units.
- R5.2.3 Users will be able to view ingredient categories.
-
R5.3 The system will allow users to update pantry ingredients.
- R5.3.1 Users will be able to edit ingredient quantities.
- R5.3.2 Users will be able to edit ingredient units.
-
R5.4 The system will allow users to remove ingredients from their pantry.
- R5.4.1 Users will be able to delete pantry ingredients.
- R5.4.2 Users will be able to confirm deletion before an ingredient is removed.
R6: Recipe Recommendation
- R6.1 The system will consider user dietary restrictions, allergies, disliked ingredients when recommending recipes.
- R6.2 The system will recommend recipes based on the user's preference weights of recommendation signals.
- R6.2.1 The system will recommend recipes based on the user's pantry ingredient matches.
- R6.2.2 The system will recommend recipes based on the user's flavour preferences (cuisine affinities).
- R6.2.3 The system will recommend recipes based on the user's nutritional goals.
- R6.2.4 The system will recommend recipes based on the user's pantry ingredient freshness.
- R6.2.5 The system will recommend recipes based on a novelty score.
- R6.3 The system will group recommend recipes by cuisine type.
R7: Guided Discovery
-
R7.1 The system will provide a guided recipe discovery interface.
- R7.1.1 Users will be able to view one recipe suggestion card at a time.
- R7.1.2 Users will be able to like a recipe suggestion.
- R7.1.3 Users will be able to pass on a recipe suggestion.
- R7.1.4 Users will be able to preview full recipe details before liking or passing.
- R7.1.5 Users will be able to undo their most recent swipe action.
- R7.1.6 Users will be able to view recipes liked during the current discovery session.
- R7.1.7 Users will be able to save liked recipes to their vault.
-
R7.2 The system will use discovery feedback to improve future recipe suggestions.
R8: Shopping List Management
- R8.1 The system will allow users to create personal shopping lists.
- R8.2 The system will generate a shopping list from a user selected recipe.
- R8.2.1 The system will exclude pantry ingredients that the user already has in sufficient quantity if the user chooses.
- R8.2.2 The system will allow the user to add all of the selected recipe's ingredients to a new shopping list if the user chooses.
- R8.3 The system will allow users to manually add custom shopping list items.
- R8.4 The system will allow users to manually edit custom shopping list items.
- R8.5 The system will allow users to remove shopping list items.
- R8.6 The system will allow users to check off purchased items.
- R8.7 The system will allow users to update their pantry from checked-off shopping list items.
R9: Nutritional Information
- R9.1 The system will calculate nutritional information for recipes.
- R9.2 The system will display calories and macronutrient information for recipes.
- R9.3 The system will update nutritional information when recipe ingredients are edited.
- R9.4 The system will allow nutritional values to scale according to serving size.
- R9.5 The system will display a nutritional data accuracy disclaimer.
R10: Flagged recipe review
- R10.1 The system will allow admins to view flagged recipes.
- R10.2 The system will allow admins to resolve flagged recipes.
- R10.2.1 The system will allow admins to remove flagged recipes from the global vault.
- R10.2.2 The system will allow admins to dismiss flagged recipes, keeping the recipe in the global vault.
R11: Session and Account Access Management
- R11.1 The system will allow users to log out of their account.