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.
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.