Repository navigation
Functional Requirements Demo 1
-
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.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.
-
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.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 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.
-
-
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.2 The system will allow users to manage recipe ingredients.
- R4.2.1 Users will be able to add ingredient names.
- R4.2.2 Users will be able to add ingredient quantities.
- R4.2.3 Users will be able to add ingredient units.
- 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.1 The system will allow users to add ingredients to their personal pantry.
- R5.1.1 Users will be able to enter an ingredient name.
- R5.1.2 Users will be able to select an ingredient category.
- R5.1.3 Users will be able to enter an ingredient quantity.
- R5.1.4 Users will be able to enter an ingredient unit.
- R5.1.5 Users will be able to enter the price paid for the ingredient.
-
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.2.4 Users will be able to identify ingredients as out of stock.
-
R5.3 The system will allow users to update pantry ingredients.
- R5.3.1 Users will be able to edit ingredient names.
- R5.3.2 Users will be able to edit ingredient categories.
- R5.3.3 Users will be able to edit ingredient quantities.
- R5.3.4 Users will be able to edit ingredient units.
- R5.3.5 Users will be able to edit ingredient price information.
-
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.
-
R5.5 The system will allow users to mark pantry ingredients as out of stock.
- R5.5.1 Users will be able to mark an ingredient as out of stock.
- R5.5.2 Users will be able to restore an out of stock ingredient by updating its quantity.
- R6.1 The system will generate recipe suggestions based on the user's pantry ingredients.
- R6.2 The system will consider user dietary restrictions, allergies, disliked ingredients, and flavour profile when generating recipes.
- R6.3 The system will identify which recipe ingredients are available in the user's pantry.
- R6.4 The system will identify which recipe ingredients are missing from the user's pantry.
- R6.5 The system will allow users to regenerate recipe suggestions.
- R6.6 The system will allow users to filter generated recipes by cuisine type, cooking time, dietary restriction, and serving size.
-
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.1 The system will generate a shopping list from missing recipe ingredients.
- R8.2 The system will exclude pantry ingredients that the user already has in sufficient quantity.
- R8.3 The system will allow users to add missing ingredients from multiple recipes to one shopping list.
- R8.4 The system will allow users to manually add 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.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.1 The system will allow users to log out of their account.
· Team PUL5E · COS 301 · University of Pretoria · 2026 ·
Team PUL5E · COS 301
Demo 4
-
Software Requirements Specifications (SRS)
-
Software Architecture Specifications (SAS)
Demo 3
-
Software Requirements Specifications (SRS)
-
Software Architecture Specifications (SAS)
Demo 2
-
Software Requirements Specifications (SRS)
-
Software Architecture Specifications (SAS)
Demo 1
- Docker Setup
- CI Setup
- ACT Setup
- pgAdmin Setup
- Security Setup
- Render Setup
- Design Spec Deployment
- Wiki Submodule
Updated: 13 September 2026