Skip to content

Scenario: Recipe Manager

Samuel C. Tyler edited this page Oct 27, 2020 · 2 revisions

From ticket #53:

A simple shopping list with items that can be hidden, marked as done, or marked as not done. Each item should be categorized into sections in the store (i.e. dairy, vegetables, cereal, etc.). A user can show the list alphabetically, in order of completion, or by section in the store. When the shopping trip is over, the user should be able to hide all the checked items, then show a list of hidden items so they can be moved back to unchecked state. This is to prevent users from having to enter in each item every time they want to go shopping.

Introduction

This page lays out a scenario for QuestLists' usage and a core reason for creating this application. The intended readers are the consumers of this application, the content creators, and the developers of QuestLists. This software requirement specification will include an overview of this scenario, a list of features that should be implemented to be able to recreate this scenario, existing popular applications that already solve this problem, and how QuestLists differs from them, failure mitigation strategies, and potential roadblocks in feature implementation.

Overview

In this scenario, we want to create a simple shopping list. Everyone needs to buy items to consume, and most people find a shopping list most useful in that endeavor. In fact, there are many existing tools for managing shopping lists and recipes. QuestLists differs from these existing tools in that it allows items to be moved and shared across lists, has special views of lists for recipes, shopping, and managing inventory, and allows users to disable items that are not currently being used so they can reuse them when they are needed.

Users

Existing Tools

There are many existing tools that solve this type of problem. There are simple list managers that work well enough: Google Keep Notes, Todoist, Evernote, and a slew of others. There are also many applications specific to this task: BigOvenBigOven, AvocadoList, Our Groceries, Bring!, Listonic, Out of Milk, and many more.

Functionality (Featureset)

The core features of this project are as follows:

  • ✅ Creation of Lists
  • 🔨 Creation of Child Lists (sub lists)
  • 🔨 Ability to hide and disable list items
  • 🔨 Ability to re-enable list items that were previously hidden
  • ✨ Ability to create recipe lists (special view for lists)
  • ✨ Ability to share list items across lists
  • ✨ Ability to step through list items, in a wizard-like fashion (for preparing food)

Key:

  • ✅ completed
  • 🔨 Current Release (1.0)
  • ✨ Next Release (2.0)

Goals and Scopes

  • Users should be able to login and create a recipe
    • users should be able to choose a recipe view for editing recipes, via a selection box from the list view
    • the list should be structured such that the list items are ingredients, and the description is the method of preparation and other info
  • Users should be able to select a new view tailored for shopping, where they can check off these items
  • Users should be able to choose a view tailored for making the recipe, in a wizard-like fashion
    • the first page is the ingredients list, with states for whether the item has been prepared (ex: "3 eggs" item is in a "prepared" state)
    • each subsequent page is a step in the preparation method.
      • there needs to be special handling of MOP data to accomplish this

Deliverables

  • the source code.
  • the Scenario Requirements Specification (SRS) (this document)

Risk Management

Risks Identified

Risk Mitigation

Timeline Estimates

  • 3 weeks for each view: recipe edit, shopping list, kitchen wizard
  • 3 weeks for the ancillary items: selecting views, reading and writing the MOP data

Technical Process

We will be implementing this scenario using the Vue.js toolkit, with ancillary HTML, Javascript, and CSS. Tests will be created for each feature, but we will ost likely not be using TDD methodologies.