1. 1. Architecture
    ❱
    1. 1.1. Goals
    2. 1.2. Constraints
    3. 1.3. Context & Scope
    4. 1.4. Solution Strategy
    5. 1.5. Building Block View
    6. 1.6. Runtime View
    7. 1.7. Deployment
    8. 1.8. Crosscutting Concepts
    9. 1.9. Architecture Decisions
    10. 1.10. Quality
    11. 1.11. Risks and Technical Debt
    12. 1.12. Glossary
  2. 2. Authors
  3. 3. PermaplanT Backend
    ❱
    1. 3.1. Setup
    2. 3.2. How to obtain access tokens?
    3. 3.3. API documentation
    4. 3.4. HTTP Headers
    5. 3.5. Cronjobs
    6. 3.6. Performance Benchmarks
    7. 3.7. 06updating_schema_patch
    8. 3.8. Steps to add a Field to Entities
    9. 3.9. 08import_sql_files
    10. 3.10. Troubleshooting
  4. 4. CI/CD Pipeline
  5. 5. Contributing to PermaplanT
    ❱
    1. 5.1. Contributing to Backend
    2. 5.2. Contributing to Frontend
    3. 5.3. GitLab CLI Configuration
    4. 5.4. Labels
    5. 5.5. Gem
    6. 5.6. Useful Command-line Tools
    7. 5.7. Regular Tasks for Weekly Meeting
  6. 6. Database
    ❱
    1. 6.1. Application Settings
    2. 6.2. Cronjobs
    3. 6.3. Hierarchy
    4. 6.4. Importing Database dumps
    5. 6.5. Recovering Deleted Maps or Layers
    6. 6.6. Schemata
      ❱
      1. 6.6.1. ER diagram
      2. 6.6.2. Enum Types
      3. 6.6.3. Table descriptions
  7. 7. Decision Process
    ❱
    1. 7.1. EXPLANATIONS
    2. 7.2. TEMPLATE
    3. 7.3. Authentication & Authorization
    4. 7.4. Backend API documentation
    5. 7.5. Mail Client for the Backend
    6. 7.6. Backend ORM/SQL Crate
    7. 7.7. Backend Programming Language
    8. 7.8. Backend Web Framework
    9. 7.9. Backend Testing Strategy
    10. 7.10. Backend Web Framework
    11. 7.11. CI/CD
    12. 7.12. Database
    13. 7.13. Database Plant Hierarchy
    14. 7.14. Drawing Library
    15. 7.15. Example Migrations
      ❱
      1. 7.15.1. Normalized Plants and Ranks
        ❱
        1. 7.15.1.1. 2023-04-07-130215 Plant Relastionships
          ❱
          1. 7.15.1.1.1. down.sql
          2. 7.15.1.1.2. up.sql
        2. 7.15.1.2. example_queries.sql
      2. 7.15.2. One Table Per Taxonomy
        ❱
        1. 7.15.2.1. 2023-03-09-194135 Plant Relations
          ❱
          1. 7.15.2.1.1. down.sql
          2. 7.15.2.1.2. up.sql
      3. 7.15.3. Taxonomy Ranks And Concrete Plants
        ❱
        1. 7.15.3.1. 2023-04-04-220813 Taxons
          ❱
          1. 7.15.3.1.1. down.sql
          2. 7.15.3.1.2. up.sql
        2. 7.15.3.2. 2023-04-04-220921 Plant Relationships
          ❱
          1. 7.15.3.2.1. down.sql
          2. 7.15.3.2.2. up.sql
        3. 7.15.3.3. 2023-04-07-112305 Varieties
          ❱
          1. 7.15.3.3.1. down.sql
          2. 7.15.3.3.2. up.sql
        4. 7.15.3.4. example_queries.sql
    16. 7.16. Frontend Architecture Pattern
    17. 7.17. Frontend Build Tool
    18. 7.18. Frontend Documentation
    19. 7.19. E2E Testing
    20. 7.20. Frontend Editor
    21. 7.21. Frontend Keyhandling
    22. 7.22. Frontend Lazyloading
    23. 7.23. Frontend API Mocking Tool
    24. 7.24. Frontend Offloading
    25. 7.25. Frontend Programming Language
    26. 7.26. Frontend State Management
    27. 7.27. Timeline: Custom Date Picker Implementation Decision
    28. 7.28. Frontend UI Framework
    29. 7.29. Map Undo/Redo Implementation
    30. 7.30. Nextcloud Deployment
    31. 7.31. Polygon Calculations
    32. 7.32. Reversible deletion of database entities
    33. 7.33. Search Plants
    34. 7.34. Sync
    35. 7.35. Uuid
  8. 8. Development Setup
    ❱
    1. 8.1. Docker + local
    2. 8.2. Devcontainer
    3. 8.3. Reset guided tours
  9. 9. development_setup
  10. 10. Guidelines
    ❱
    1. 10.1. REST
    2. 10.2. Backend Logging
    3. 10.3. Tutorial for synchronized APIs in the Map Editor
    4. 10.4. Backend
    5. 10.5. Code Comments
    6. 10.6. Code Review
    7. 10.7. Code
    8. 10.8. Database
    9. 10.9. Documentation
    10. 10.10. e2e
    11. 10.11. Files
    12. 10.12. Frontend API Calls
    13. 10.13. Frontend Component Responsiveness
    14. 10.14. Creating a New Layer in Frontend
    15. 10.15. Frontend Map Default View
    16. 10.16. Frontend General Responsiveness
    17. 10.17. Frontend Keybindings
    18. 10.18. Frontend Locators
    19. 10.19. Frontend React
    20. 10.20. Structuring of Actions in the Store
    21. 10.21. Using and extending the Stored Map Information in the Frontend
    22. 10.22. Frontend UI & Usability
    23. 10.23. Frontend
    24. 10.24. i18n
    25. 10.25. Security
    26. 10.26. Tools Guidelines
    27. 10.27. Upgrading to newer software releases
    28. 10.28. Versioning
  11. 11. Meetings
    ❱
    1. 11.1. README
      ❱
      1. 11.1.1. Meeting 2023-03-07
      2. 11.1.2. Meeting 2023-03-14
      3. 11.1.3. Meeting 2023-03-15 Gamification
      4. 11.1.4. Meeting 2023-03-15 Polyculture Algorithm
      5. 11.1.5. Meeting 2023-03-20 DB Kick-Off
      6. 11.1.6. Meeting 2023-03-21
      7. 11.1.7. Meeting 2023-03-23 Backend Kick-Off
      8. 11.1.8. Meeting 2023-03-28
      9. 11.1.9. Meeting 2023-03-30 - Polyculture
      10. 11.1.10. Meeting 2023-03-31
      11. 11.1.11. Meeting 2023-04-04
      12. 11.1.12. Meeting 2023-04-07 DB
      13. 11.1.13. Meeting 2023-04-07 Frontend
      14. 11.1.14. Meeting 2023-04-11
      15. 11.1.15. Meeting 2023-04-18
      16. 11.1.16. Meeting 2023-04-25
      17. 11.1.17. Meeting 2023-04-27 DB
      18. 11.1.18. Meeting 2023-05-02
      19. 11.1.19. Meeting 2023-05-09
      20. 11.1.20. Meeting 2023-05-16
      21. 11.1.21. Meeting 2023-05-23
      22. 11.1.22. Meeting 2023-05-26 Architecture
      23. 11.1.23. Meeting 2023-05-30
      24. 11.1.24. Meeting 2023-06-06
      25. 11.1.25. Meeting 2023-06-13
      26. 11.1.26. Meeting 2023-06-20
      27. 11.1.27. Meeting 2023-06-27
      28. 11.1.28. Meeting 2023-07-04
      29. 11.1.29. Meeting 2023-07-11
      30. 11.1.30. Meeting 2023-07-18
      31. 11.1.31. Meeting 2023-07-25
      32. 11.1.32. Meeting 2023-07-31
      33. 11.1.33. Meeting 2023-08-08
      34. 11.1.34. Meeting 2023-08-15
      35. 11.1.35. Meeting 2023-08-22
      36. 11.1.36. Meeting 2023-08-28
      37. 11.1.37. Meeting 2023-09-04
      38. 11.1.38. Meeting 2023-09-11
      39. 11.1.39. Meeting 2023-09-18
      40. 11.1.40. Meeting 2023-09-25
      41. 11.1.41. Meeting 2023-10-02
      42. 11.1.42. Meeting 2023-10-09
      43. 11.1.43. Meeting 2023-10-16
      44. 11.1.44. Meeting 2023-10-23
      45. 11.1.45. Meeting 2023-10-30
      46. 11.1.46. Meeting 2023-11-06
      47. 11.1.47. Meeting 2023-11-13
      48. 11.1.48. Meeting 2023-11-20
      49. 11.1.49. Meeting 2023-11-27
      50. 11.1.50. Meeting 2023-12-04
      51. 11.1.51. Meeting 2023-12-11
      52. 11.1.52. Meeting 2023-12-18
      53. 11.1.53. Meeting 2023-12-27
    2. 11.2. README
      ❱
      1. 11.2.1. Meeting 2024-01-02
      2. 11.2.2. Meeting 2024-01-08
      3. 11.2.3. Meeting 2024-01-15
      4. 11.2.4. Meeting 2024-01-22
      5. 11.2.5. Meeting 2024-01-29
      6. 11.2.6. Meeting 2024-02-05
      7. 11.2.7. Meeting 2024-02-12
      8. 11.2.8. Meeting 2024-02-19
      9. 11.2.9. Meeting 2024-03-11
      10. 11.2.10. Meeting 25.03.2024
      11. 11.2.11. Meeting 02.04.2024
      12. 11.2.12. Meeting 04.04.2024 - Scrum Processes
      13. 11.2.13. Meeting 08.04.2024
      14. 11.2.14. Meeting 15.04.2024
      15. 11.2.15. Meeting 22.04.2024
      16. 11.2.16. Meeting 06.05.2024
      17. 11.2.17. Meeting 13.05.2024
      18. 11.2.18. Meeting 20.05.2024
      19. 11.2.19. Meeting 27.05.2024
      20. 11.2.20. Meeting 03.06.2024
      21. 11.2.21. Meeting 10.06.2024
      22. 11.2.22. Meeting 17.06.2024
      23. 11.2.23. Meeting 24.06.2024
      24. 11.2.24. Meeting 27.06.2024 - Heatmap
      25. 11.2.25. Meeting 15.07.2024
      26. 11.2.26. Meeting 22.07.2024
      27. 11.2.27. Meeting 29.07.2024
      28. 11.2.28. Meeting 05.08.2024
      29. 11.2.29. Meeting 12.08.2024
      30. 11.2.30. Meeting 19.08.2024
      31. 11.2.31. Meeting 26.08.2024
      32. 11.2.32. Meeting 09.09.2024
      33. 11.2.33. Meeting 16.09.2024
      34. 11.2.34. Meeting 23.09.2024
      35. 11.2.35. Meeting 30.09.2024
      36. 11.2.36. Meeting 07.10.2024
      37. 11.2.37. Meeting 14.10.2024
      38. 11.2.38. Meeting 21.10.2024
      39. 11.2.39. Meeting 28.10.2024
      40. 11.2.40. Meeting 04.11.2024
      41. 11.2.41. Meeting 11.11.2024
      42. 11.2.42. Meeting 23.11.2024
      43. 11.2.43. Meeting 02.12.2024
      44. 11.2.44. Meeting 09.12.2024
      45. 11.2.45. Meeting 16.12.2024
    3. 11.3. Meeting 13.1.2025
    4. 11.4. Meeting 20.1.2025
    5. 11.5. Meeting 27.1.2025
    6. 11.6. Meeting 03.02.2025
    7. 11.7. Meeting 10.02.2025
    8. 11.8. Meeting 17.02.2025
    9. 11.9. Meeting 24.02.2025
    10. 11.10. Meeting 03.03.2025
    11. 11.11. Meeting 10.03.2025
    12. 11.12. Meeting 17.03.2025
    13. 11.13. Meeting 24.03.2025
    14. 11.14. Meeting 31.03.2025
    15. 11.15. Meeting 07.04.2025
    16. 11.16. Meeting 14.04.2025
    17. 11.17. Meeting 21.04.2025
    18. 11.18. Meeting 28.04.2025
    19. 11.19. Meeting 05.05.2025
    20. 11.20. Meeting 12.05.2025
    21. 11.21. Meeting 19.05.2025
    22. 11.22. Meeting 26.05.2025
    23. 11.23. Meeting 02.06.2025
    24. 11.24. Meeting 09.06.2025
    25. 11.25. Meeting 16.06.2025
    26. 11.26. Meeting 23.06.2025
    27. 11.27. Optional Meeting 30.06.2025
    28. 11.28. Meeting 07.07.2025
    29. 11.29. Meeting 14.07.2025
    30. 11.30. Biology Meeting 16.07.2025
    31. 11.31. Meeting 21.07.2025
    32. 11.32. Meeting 28.07.2025
    33. 11.33. Meeting 04.08.2025
    34. 11.34. 2025_08_06_PM
    35. 11.35. Meeting 11.08.2025
    36. 11.36. Meeting 18.08.2025
    37. 11.37. Meeting 25.08.2025
    38. 11.38. Meeting 01.09.2025
    39. 11.39. Meeting 08.09.2025
    40. 11.40. Meeting 15.09.2025
    41. 11.41. Meeting 22.09.2025
    42. 11.42. Meeting 25.09.2025
    43. 11.43. Meeting 29.09.2025
    44. 11.44. Meeting 06.10.2025
    45. 11.45. Meeting 13.10.2025
    46. 11.46. Meeting 20.10.2025
    47. 11.47. PM Meeting 24.10.2025 11:30
    48. 11.48. Meeting 27.10.2025
    49. 11.49. 2025_10_31_PM
    50. 11.50. Meeting 03.11.2025
    51. 11.51. 2025_11_07_PM
    52. 11.52. Meeting 10.11.2025
    53. 11.53. 2025_11_14_PM
    54. 11.54. Meeting 17.11.2025
    55. 11.55. 2025_11_21_PM
    56. 11.56. Meeting 24.11.2025
  12. 12. Mockups
  13. 13. Releases
    ❱
    1. 13.1. 0.7.0 Summer
    2. 13.2. 0.8.0
    3. 13.3. Changelog
    4. 13.4. Releases
    5. 13.5. Changelog
  14. 14. Research
    ❱
    1. 14.1. Keycloak Basics
    2. 14.2. Map Performance
    3. 14.3. Mautic Integration
    4. 14.4. Nextcloud Integration
    5. 14.5. Typeshare
  15. 15. Testing Strategy
    ❱
    1. 15.1. Backend Testing
    2. 15.2. Frontend testing
    3. 15.3. Manual tests
      ❱
      1. 15.3.1. Report
        ❱
        1. 15.3.1.1. Heatmap with Shade
        2. 15.3.1.2. Manual Test Report (pre v0.3 case study release)
        3. 15.3.1.3. Manual Test Report (v0.3 case study release)
        4. 15.3.1.4. Manual Test Report (v0.3.1)
        5. 15.3.1.5. Manual Test Report (v0.3.2)
        6. 15.3.1.6. Manual Test Report (v0.3.3)
        7. 15.3.1.7. Manual Test Report (v0.3.4)
        8. 15.3.1.8. Manual Test Report (v0.3.5)
        9. 15.3.1.9. Manual Test Report (v0.3.6)
        10. 15.3.1.10. Manual Test Report (v0.4.0)
        11. 15.3.1.11. Manual Test Report (v0.4.1)
        12. 15.3.1.12. 240801
        13. 15.3.1.13. 240801_dev
        14. 15.3.1.14. 240802_seeds
        15. 15.3.1.15. 241023
        16. 15.3.1.16. 241104
        17. 15.3.1.17. 250407
        18. 15.3.1.18. 250512
        19. 15.3.1.19. 250717
        20. 15.3.1.20. 250718
        21. 15.3.1.21. 250902
        22. 15.3.1.22. template
      2. 15.3.2. testcases
        ❱
        1. 15.3.2.1. additional_layer
        2. 15.3.2.2. Area of Plantings
        3. 15.3.2.3. Base Layer
        4. 15.3.2.4. Copy & Paste
        5. 15.3.2.5. crop_rotation
        6. 15.3.2.6. Drawing Layer
        7. 15.3.2.7. Entry and List Seeds
        8. 15.3.2.8. Grid
        9. 15.3.2.9. Guided Tour
        10. 15.3.2.10. Heatmap
        11. 15.3.2.11. Hierarchy Test Cases
        12. 15.3.2.12. hydrology_layer
        13. 15.3.2.13. Inventory
        14. 15.3.2.14. landing_page
        15. 15.3.2.15. Layer Management
        16. 15.3.2.16. Layer Visibility
        17. 15.3.2.17. Login
        18. 15.3.2.18. manage_additional_layers
        19. 15.3.2.19. Map Creation
        20. 15.3.2.20. Map Deletion
        21. 15.3.2.21. Map Search
        22. 15.3.2.22. Map Timeline
        23. 15.3.2.23. map_timeline_event_view
        24. 15.3.2.24. map_timeline_single_selection
        25. 15.3.2.25. Map Toolbar
        26. 15.3.2.26. Map Undo Redo
        27. 15.3.2.27. Measuring Distances
        28. 15.3.2.28. Multi Select
        29. 15.3.2.29. Plant Layer
        30. 15.3.2.30. Read Only
        31. 15.3.2.31. Remembering View State of the map
        32. 15.3.2.32. rename_layers
        33. 15.3.2.33. Search Plants
        34. 15.3.2.34. Shade Layer
        35. 15.3.2.35. soil_texture_layer
        36. 15.3.2.36. Translation
        37. 15.3.2.37. zoom
    4. 15.4. Smoke Tests
      ❱
      1. 15.4.1. Smoke Test Reports
        ❱
        1. 15.4.1.1. Smoke Test Report
      2. 15.4.2. Smoke Test Testcases
        ❱
        1. 15.4.2.1. Smoke Test Report
    5. 15.5. Testusers
  16. 16. Usecases
    ❱
    1. 16.1. Assigned Use Cases
      ❱
      1. 16.1.1. Use Case: Copy & Paste Between Users
      2. 16.1.2. Use Case: Map Editor Navigation Mobile Usability
      3. 16.1.3. Use Case: Map Editor Timeline Mobile Usability
      4. 16.1.4. Use Case: Map Editor Toolbar Mobile Usability
      5. 16.1.5. Use Case: Nextcloud Circles
      6. 16.1.6. Use Case: Plant attributes
      7. 16.1.7. Use Case: Display and Manage Plant Markers
      8. 16.1.8. Use Case: Plant search icons
      9. 16.1.9. Use Case: Zones Layer
    2. 16.2. Current Use Cases
      ❱
      1. 16.2.1. Use Case: Access Control
      2. 16.2.2. Use Case: General Mobile Usability
      3. 16.2.3. Use Case: Highlight Searched Plants
      4. 16.2.4. Use Case: Map Collaboration
      5. 16.2.5. Use Case: Remember Viewing State
      6. 16.2.6. Use Case: Visitor chat
    3. 16.3. Done Use Cases
      ❱
      1. 16.3.1. Use Case: Additional Layer
      2. 16.3.2. Use Case: Area of Plantings
      3. 16.3.3. Use Case: Base Layer
      4. 16.3.4. Use Case: Copy & Paste Between Own Maps
      5. 16.3.5. Use Case: Copy & Paste Via Icons
      6. 16.3.6. Use Case: Copy & Paste Within the Same Map
      7. 16.3.7. Use Case: Crop Rotation
      8. 16.3.8. Use Case: Entry and List of Seeds
      9. 16.3.9. Use Case: Grid
      10. 16.3.10. Use Case: Guided Tour
      11. 16.3.11. Use Case: Heatmap
      12. 16.3.12. Use Case: Hydrology Layer
      13. 16.3.13. Use Case: Landing Page
      14. 16.3.14. Use Case: Layer Visibility
      15. 16.3.15. Use Case: Login
      16. 16.3.16. Use Case: Manage Additional Layers
      17. 16.3.17. Use Case: Map Creation
      18. 16.3.18. Use Case: Map Deletion
      19. 16.3.19. Use Case: Map Search
      20. 16.3.20. Use Case: Map Timeline Event View
      21. 16.3.21. Use Case: Map Timeline Single Selection
      22. 16.3.22. Use Case: Map Undo/Redo
      23. 16.3.23. Use Case: Measuring Distance
      24. 16.3.24. Use Case: Multi-Select
      25. 16.3.25. Use Case: Plants Layer
      26. 16.3.26. Use Case: Rename Layers
      27. 16.3.27. Use Case: Search Plants
      28. 16.3.28. Use Case: Shade Layer
      29. 16.3.29. Use Case: Soil Layer
      30. 16.3.30. Use Case: Translation
      31. 16.3.31. Use Case: Zoom
    4. 16.4. Draft Use Cases
      ❱
      1. 16.4.1. Use Case: Add Plant Relationships
      2. 16.4.2. Use Case: All Layer
      3. 16.4.3. Use Case: Brushing
      4. 16.4.4. Use Case: Buy Seeds
      5. 16.4.5. Use Case: Contributing Member
      6. 16.4.6. Use Case: Diff
      7. 16.4.7. Use Case: Dimensioning Layer
      8. 16.4.8. Use Case: Diversity Score
      9. 16.4.9. Use Case: Event Notification
      10. 16.4.10. Use Case: Experimental Results
      11. 16.4.11. Use Case: Gain Blossoms
      12. 16.4.12. Use Case: Habitats Layer
      13. 16.4.13. Use Case: Import and Export Maps
      14. 16.4.14. Use Case: Ingredient Lists
      15. 16.4.15. Use Case: Landing Page News
      16. 16.4.16. Use Case: Layer Alternatives
      17. 16.4.17. Use Case: Map Honors
      18. 16.4.18. Use Case: Map-Specific Favorite Groups
      19. 16.4.19. Use Case: Map Statistics
      20. 16.4.20. Use Case: Matchmaking
      21. 16.4.21. Use Case: Membership Application
      22. 16.4.22. Use Case: New Plant
      23. 16.4.23. Use Case: Offline
      24. 16.4.24. Use Case: Paths Layer
      25. 16.4.25. Use Case: Persistent Multi Selection
      26. 16.4.26. Use Case: Plant Database Update Notification
      27. 16.4.27. Use Case: Plant Lore
      28. 16.4.28. Use Case: Review Plant
      29. 16.4.29. Use Case: Review Plant Relationships
      30. 16.4.30. Use Case: Reward Preview
      31. 16.4.31. Use Case: Select all plants of same type
      32. 16.4.32. Use Case: Terrain Layer
      33. 16.4.33. Use Case: Trees Layer
      34. 16.4.34. Use Case: Winds Layer
    5. 16.5. Later Use Cases
      ❱
      1. 16.5.1. Use Case: Calendar
      2. 16.5.2. Use Case: Fertilization Layer
      3. 16.5.3. Use Case: GeoMap
      4. 16.5.4. Use Case: Incomplete Groups
      5. 16.5.5. Use Case: Infrastructure Layer
      6. 16.5.6. Use Case: Landscape Layer
      7. 16.5.7. Use Case: Map Timeline Range Selection
      8. 16.5.8. Use Case: Map to PDF
      9. 16.5.9. Use Case: New Member Notification
      10. 16.5.10. Use Case: Plant List
      11. 16.5.11. Use Case: Relation Layer
      12. 16.5.12. Use Case: Suggest Plants
      13. 16.5.13. Use Case: Todo Layer
      14. 16.5.14. Use Case: Watering Layer
    6. 16.6. Use Case: <Title (except of spaces and Title capitalization same as file name)>
  17. 17. Workflows
    ❱
    1. 17.1. Issue Creation Workflow
    2. 17.2. Issue Triage Workflow
    3. 17.3. Issue Refinement Workflow
    4. 17.4. Workflow Name
    5. 17.5. Decisions
    6. 17.6. Iteration Planning Workflow
    7. 17.7. Meetings Workflow
    8. 17.8. Review Workflow
    9. 17.9. Roles
    10. 17.10. Tools Workflow
    11. 17.11. Workflows

PermaplanT

Database