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.
  • Status: Done
  • Assignee: Ben
  • Criticality: System Critical

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:
      • All constraints of the currently visible screen via the heatmap.
      • The user is able to view the spatial relationships to all plants on the map. She does so by looking at the lines connecting the mouse cursor to existing plants, which are either companion (green), antagonist (red) or ambivalent (orange). Also relationships outside of the currently visible screen are indicated, so that she can find companions anywhere on the map.
      • Relationship constraints take the plant hierarchy into account, e.g. a constraint declared for two species also applies to varieties / cultivars within those species.
    • 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.
    • The map is in read-only state, then the user cannot add, edit, move or remove anything.
    • Annual plants automatically get removed after one year.
    • The user enables plant labels. The plant labels are shown in front of the plantings.
    • The user selects plantings with relations. The plant relations are shown in front of the plantings.
    • The user enables plant labels and selects plantings with relations. The plant relations are shown in front of the plant labels.
  • 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; without noticeable delays and acceptable memory overhead it should be possible to:
      • have more than 10000 elements per year
      • indicate more than 100 visualization of spatial relationships

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.