Favorite Recipes

Requirements

    • Functional Requirement 3
      • Recipes can be favorited by the user. Favorited recipes will be at the top of applicable search suggestions, and a separate favorites page will display them.
    • Non-Functional Requirement 1: Scalability
      • No performance decrease with increasing amounts of:
        1. users
        2. uploaded recipes
        3. ingredient options

Design

    • At the top of the mobile page is the RecipeFinder Header and Task Bar, preset to "Saved Recipes". See the Header & Task bar page for more information.
    • At the top of the page is the search bar. This includes a text entry field and two filtering buttons.
      • Tapping in the text entry field brings up a keyboard from the bottom of the page. Entering text filters the list; only menu items matching the list will be displayed. Erasing text from the field resets the filter.
      • The A-Z button cycles sorting from A-Z to Z-A.
      • The Small-Large button on the furthest right cycles sorting from most commonly selected to least commonly selected.
    • If the user does not enter any search terms, the display area shows all of the user's favourited recipes.
    • Each dish is presented in a list with an "X" icon next to each recipe.
      • Tapping on the recipe name takes the user to the View Specific Recipe page.
      • Tapping on the 'X' will remove the entry from the user's favourites.
      • Alternatively checking on the already checked "Thumbs Up" button when viewing a specific recipe will also remove the recipe from the user's list of favorite recipes.
    • The user can scroll up and down if there are more items than can fit on the screen.
      • A maximum of 6 items will be displayed at a time to prevent any performances losses when loading recipes.

Usability Goals

  • Recipes should be able to be saved and unsaved by the user easily and intuitively.
  • Saved recipes appear on the home screen, and on the user profile.

User Experience Goals

  • Favorited recipes may not need as much information as the user makes them repeatedly, unnecessary instruction for something the user already knows how to make may be patronizing.