Use Cases - CMPUT301W13T03/classproject GitHub Wiki

Table of Contents

UC1: Save an input Recipe to Cache

User Stories US1, US5
Participating Actors User
Goal Save an input recipe to cache
Trigger User clicks 'Add Recipe' button
Precondition None
Postcondition The input recipe has been saved to cache
Basic Flow (1) User clicks 'Add Recipe' button
(2) System prompts for recipe information
(3) User inputs recipe information
(4) User clicks 'Save' button
(5) System saves recipe to cache
Exceptions (5) Missing vital recipe information
(5.1) System notifies user of required fields
(5.2) Return to step (2)
(5) Not enough memory
(5.1a) System notifies user that recipe can't be saved

UC2: Save Recipe from Server to Cache

User Stories US5, US8, US12
Participating Actors User
Goal User saves a recipe from the server to cache
Trigger User clicks 'Download' button after searching for a recipe
Precondition Recipe to be downloaded exists
Postcondition The recipe is saved to cache
Basic Flow (1) User clicks 'Download' button
(2) System saves recipe to cache
Exceptions (1) Lose connection to server
(1.1) System notifies user that it lost connection
(2) Not enough memory
(2.1) System notifies user that recipe can't be saved

UC3: Share a Recipe to Email

User Stories US2
Participating Actors User
Goal User sends recipe to an input email address
Trigger User clicks the 'Share' button after searching for a recipe
Precondition Recipe exists to be shared
Postcondition The recipe has been emailed correctly
Basic Flow (1) User clicks the 'Share' button
(2) System prompts for email to send to
(3) User inputs email
(4) System converts recipe to text format
(5) System sends recipe to email
Exceptions (3) Missing or invalid email
(3.1) System notifies user of invalid email
(3.2) Return to step (2)
(5) Not connected to internet
(5.1) System notifies user that it can't currently share the recipe

UC4: Publish Recipe to Server

User Stories US3
Participating Actors User
Goal Publish a recipe to the server
Trigger User clicks the 'Add Recipe' button
Precondition None
Postcondition The recipe has been published to the server
Basic Flow (1) User clicks 'Add Recipe' button
(2) System prompts for recipe information
(3) User inputs recipe information
(4) User clicks 'Save and Publish' button
(5) System saves recipe to cache and publishes recipe to server
Exceptions (5) Missing vital recipe information
(5.1) System notifies user of required fields
(5.2) Return to step (2)
(5) Publish fails
(5.1a) System notifies user that the publish failed

UC5: Search Cached Recipes

User Stories US4, US5, US8, US15
Participating Actors User
Goal Search for a recipe in cache
Trigger User clicks the 'Search Recipes' button
Precondition None
Postcondition A list of relevant recipes from the cache is displayed
Basic Flow (1) User clicks the 'Search Recipes' button
(2) System prompts for a keyword and displays the check boxes: 'Use Ingredients List', 'Search Offline', 'Search Online', 'Only list results with photos'
(3) User inputs keyword and checks only 'Search Offline'
(4) System displays a list of relevant recipes from cache
Exceptions (3) No keyword
(3.1) System defaults to list all cached recipes
(4) No relevant recipes
(4.1) System displays no results

UC6: Search Server Recipes

User Stories US4, US12
Participating Actors User
Goal Search for a recipe from the server
Trigger User clicks the 'Search Recipes' button
Precondition None
Postcondition A list of relevant recipes from the server is displayed
Basic Flow (1) User clicks the 'Search Recipes' button
(2) System prompts for a keyword and has the check boxes: 'Use Ingredients List', 'Search Offline', 'Search Online', 'Only list results with photos'
(3) User inputs keyword and checks only 'Search Online'
(4) System displays a list of relevant recipes from the server
Exceptions (1) Can't connect to server
(1.1) System notifies User that it can't currently do an online search
(3) No keyword
(3.1) System notifies User that a keyword is required for online search
(3.2) Return to step (2)
(4) No relevant recipes
(4.1) System displays no results

UC7: Search Recipes using Current Ingredients

User Stories US4, US14
Participating Actors User
Goal Search for a recipe using only ingredients from the Virtual Pantry
Trigger User clicks the 'Search Recipes' button
Precondition None
Postcondition A list of relevant recipes is displayed which only use ingredients from the Virtual Pantry
Basic Flow (1) User clicks the 'Search Recipes' button
(2) System prompts for keyword and has the check boxes: 'Use Ingredients List', 'Search Offline', 'Search Online', 'Only list results with photos'
(3) User checks the box 'Use Ingredients List', and checks either 'Search Offline', or 'Search Online'
(4) System displays a list of relevant recipes which only use ingredients from the Virtual Pantry
Exceptions (4) No recipes using appropriate ingredients, or empty Virtual Pantry
(4.1) System displays no results

UC8: Search Recipes with photos

User Stories US4, US17
Participating Actors User
Goal Search for a recipe which contain a photo
Trigger User clicks the 'Search Recipes' button
Precondition None
Postcondition List of relevant recipes displayed which contain at least one photo
Basic Flow (1) User clicks the 'Search Recipes' button
(2) System prompts for keyword and has the check boxes: 'Use Ingredients List', 'Search Offline', 'Search Online', 'Only list results with photos'
(3) User checks the box 'Only list results with photos', and checks either 'Search Offline', or 'Search Online'
(4) System displays a list of relevant recipes which contain at least one photo
Exceptions (4) No recipes have photos
(4.1) System displays no results

UC9: Take Photo

User Stories US6, US7, US9, US10, US11
Participating Actors User
Goal Takes a photo for a recipe
Trigger User clicks the 'Add Picture' button when adding a new recipe or editing a recipe
Precondition A recipe exists for the photo to be saved with
Postcondition The photo is saved for the desired recipe
Basic Flow (1) User clicks 'Add Picture' button
(2) System changes to a camera mode
(3) User takes a picture
(4) System allows the user to retake the picture
(5) User clicks 'Accept' button
(6) System saves picture to recipe
Exceptions (4) User wants to retake picture
(4.1) Return to step (3)
(6) Not enough memory to save picture
(6.1) Notify user that picture can't be saved

UC10: View Photos

User Stories US7, US9,
Participating Actors User
Goal View a photo of a recipe
Trigger User clicks the 'View Pictures' button after searching for a recipe
Precondition The recipe exists
Postcondition A scrollable list of photos for the desired recipe is displayed
Basic Flow (1) User clicks 'View Pictures' button
(2) System displays a scrollable list of saved photos for this recipe
Exceptions (2) Recipe contains no photos
(2.1) An empty list is displayed

UC11: View Current Ingredients

User Stories US13
Participating Actors User
Goal View list of current ingredients in the Virtual Pantry
Trigger User clicks the 'View Ingredients' button
Precondition None
Postcondition A list of current ingredients in the Virtual Pantry is displayed
Basic Flow (1) User clicks 'View Ingredients' button
(2) System displays a list of current ingredients in the Virtual Pantry
Exceptions (2) No current ingredients exist
(2.1) System displays no ingredients

UC12: Add New Ingredient

User Stories US13
Participating Actors User
Goal Add a new ingredient to the Virtual Pantry
Trigger User clicks the 'Add Ingredient' button when viewing current ingredients
Precondition None
Postcondition The Virtual Pantry is updated with the new ingredient
Basic Flow (1) User clicks 'Add Ingredient' button
(2) System prompts for ingredient information
(3) User inputs ingredient information
(4) User clicks 'Save' button
(5) System saves new ingredient to the Virtual Pantry
Exceptions (4) Missing required information
(4.1) System notifies user of required fields
(4.2) Return to step (2)

UC13: Modify a Current Ingredient

User Stories US13
Participating Actors User
Goal Modify a current ingredient in the Virtual Pantry
Trigger User clicks on an ingredient when viewing current ingredients
Precondition This current ingredient exists
Postcondition Any modifications to this ingredient are saved in the Virtual Pantry
Basic Flow (1) User clicks on an ingredient when viewing current ingredients
(2) System displays editable fields, along with save/delete buttons
(3) User modifies the ingredient information
(4) User clicks the 'Save' button
(5) System saves the changes to the Virtual Pantry
Exceptions (5) Missing required information
(5.1) System notifies user of required fields
(5.2) Return to step (2)

UC14: Delete a Current Ingredient

User Stories US13
Participating Actors User
Goal Delete an ingredient from the Virtual Pantry
Trigger User clicks a single ingredient when viewing current ingredients
Precondition This current ingredient exists
Postcondition This ingredient no longer exists in the Virtual Pantry
Basic Flow (1) User clicks on an ingredient when viewing current ingredients
(2) System displays editable fields, along with save/delete buttons
(3) User clicks the 'Delete' button
(4) System removes this ingredient from the Virtual Pantry

UC15: Modify a Cached Recipe

User Stories None
Participating Actors User
Goal Modify a recipe that has been saved to cache
Trigger User clicks the 'Edit' button after searching for a recipe
Precondition Recipe exists to be modified
Postcondition Any modifications to the cached recipe are saved
Basic Flow (1) User clicks the 'Edit' button
(2) System displays editable recipe information
(3) User makes some changes to recipe information
(4) User clicks 'Save' button
(5) System saves the changes to this recipe
Exceptions (5) User erased some vital recipe information
(5.1) System notifies user of required fields
(5.2) Return to step (2)

UC16: Delete a Cached Recipe

User Stories US16
Participating Actors User
Goal Delete a recipe that has been saved to cache
Trigger User clicks the 'Edit' button after searching for a recipe
Precondition Recipe exists to be deleted
Postcondition Recipe no longer exists in cache
Basic Flow (1) User clicks the 'Edit' button
(2) System displays editable recipe information
(3) User clicks 'Delete' button
(5) System deletes the recipe from the cache

UC17: Add a Tag to a Recipe

User Stories US18
Participating Actors User
Goal Add a tag to a recipe
Trigger User clicks the 'Add Tag' button when adding or modifying a recipe
Precondition Recipe exists to be tagged
Postcondition An input tag name is saved for this recipe
Basic Flow (1) User clicks 'Add Tag' button
(2) System prompts for the User to input a tag name
(3) User inputs a tag name and presses 'Save' button
(4) System saves this tag along with the recipe
Exceptions (4) User leaves tag name blank
(4.1) System notifies user of empty tag name
(4.2) Return to step (2)

UC18: Search Recipes by Tag

User Stories US19
Participating Actors User
Goal Search for recipes by an input tag name
Trigger User clicks the 'Search Recipes' button
Precondition None
Postcondition A list of relevant recipes is displayed
Basic Flow (1) User clicks 'Search Recipes' button
(2) System prompts for keyword and has the check boxes: 'Use Ingredients List', 'Search Offline', 'Search Online', 'Has Photo'
(3) User inputs the tag name as the keyword, and checks either 'Search Offline', or 'Search Online'
(4) System displays a list of relevant recipes containing the input tag name
Exceptions (4) No recipes contain the input tag name
(4.1) System displays no results
⚠️ **GitHub.com Fallback** ⚠️