Use Cases - CMPUT301W13T03/classproject GitHub Wiki
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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) |
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) |
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 |
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) |
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 |
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) |
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 |