Use Case: Shade Layer

Summary

  • Scope: Shade Layer
  • Level: User Goal
  • Actors: App User
  • Brief: The user can add, edit, move, remove and delete shade areas in their map in the shade layer and adjust the intensity.
  • Assignee: Lukas
  • Status: Done
  • Simplification: we don't distinguish between Winter and Summer shade

Scenarios

  • Precondition: The user has opened the app and has selected the shade layer.
  • Main success scenario:
    • The user successfully adds, edits, moves, removes and deletes sun or shade areas in their map in the shade layer. This includes positioning the indicators in areas of the landscape that receive more or less sun exposure and adjusting the intensity of the shade area. Sun and shade areas can be added by a big brush to draw on the shade layer.
    • Sun, light shade, partial shade and permanent shade areas can be added by a small or big brush to draw on the shade layer.
  • Heatmap:
    • Nothing, i.e. transparent, is shown for default areas (without a brush, i.e., no data available).
    • green if light_requirements and shade matches (e.g. sun is brushed and the plant likes sun)
    • orange if light_requirement matches but shade doesn't match
    • red otherwise (if there is no match)
  • 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 or edit a shade area but the app is experiencing technical difficulties and is unable to complete the request, displaying an error message.
  • Postcondition: The user's map includes the added, edited, moved, removed or deleted shade area as desired.
  • Non-functional Constraints:
    • is a brushing layer
    • Performance: Map sizes with more than 1000 shadings in 1ha in 10000 raster elements (m²) per year should be usable without noticeable delays and acceptable memory overhead
  • Extensions:
    • For changing shade types
      • Change type "Shade" for frontend & backend
      • Update column "shade" of table "plants"
      • Update table "shadings"

Notes

  • Links:
  • Matching for light_requirement
    • Full = "no shade" in shade layer
    • Partial = either light or partial shade in shade layer
    • FullShade = full shade in shade layer
  • Example: a plant has light_requirement = { full sun } and shade = light shade then:
    • if the user has drawn a light shade: we get orange (Explanation: shade doesn't match but light_requirement matches)
    • if the user has drawn a partial shade: we get red (Explanation: light_requirement doesn't match and shade is also worse than what the plant tolerates)
  • Extensions/Changes:
    • For changing shade types
      • Change type "Shade" for frontend & backend
      • Update column "shade" of table "plants"
      • Update table "shadings"