Use Case: Plants Layer

Summary

  • Scope: Plants Layer
  • Level: User Goal
  • Actors: App User
  • Brief: The user can add, edit, move, remove, and delete plant elements in their map in the plants layer.
  • Assignee: Paul

Scenarios

  • Precondition: The user has opened the app and has selected the plants layer.
  • Main success scenario:
    • The user can search for plants or seeds.
    • While the user adds a plant, constraints are shown:
      • The user is able to view the relationships between the plants. She does so by looking at the lines connecting the existing plants with a symbol around the mouse cursor indicating companion or antagonist.
    • The user positions the plant element in the appropriate location in the map.
    • The user is able to
      • move,
      • resize (without flipping) and rotating,
      • edit (e.g. when planted, when harvested),
      • remove (that it was removed from the map to make space on this spot for other plants on this day), and
      • delete (that it never existed) selected plants.
    • The user adjusts the plant elements and their relationships as needed.
  • Alternative scenario:
    • The user accidentally edits, moves or removes an element and uses undo to correct the mistake.
    • The user accidentally adds an element and deletes it with the "delete" or "undo" functionality.
  • Error scenario:
    • The user attempts to add, move or edit a plant element but the app is experiencing technical difficulties and is unable to complete the request, displaying an error message.
    • There is an error in the app's plant relationship indication and the lines connecting the plants are not displayed correctly. In this case, the app displays an error message.
  • Postcondition:
    • The user's map includes the added, edited, moved, removed or deleted plant element as desired.
    • If constraints are violated for the place where a plant was added or moved, warnings get added (or removed) to (from) the relation layer.
  • Non-functional Constraints:
    • Partial offline availability: editing attributes, especially for planting and harvesting
    • Supports alternatives
    • Performance: more than 10000 elements per year and per alternative should be usable without noticeable delays and acceptable memory overhead
    • Annual plants automatically get removed after one year.

Development Progress

  • The user is presented with a list of seasonal plants.
    Currently only seasonal seeds are shown.
    The expiration date is NOT considered.
    The backend part is implemented here.
    The list is then shown in this component
  • Planting relationships are shown.
    The backend part is implemented here.
    The overlay is displayed from this component
  • Annual plants are NOT automatically removed after one year.