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
  4. 4. Changelog
  5. 5. CI/CD Pipeline
  6. 6. Contributing to PermaplanT
    ❱
    1. 6.1. Contributing to Backend
    2. 6.2. Contributing to Frontend
  7. 7. Database
    ❱
    1. 7.1. Application Settings
    2. 7.2. Cronjobs
    3. 7.3. Hierarchy
    4. 7.4. Recovering Deleted Maps or Layers
    5. 7.5. Schemata
      ❱
      1. 7.5.1. ER diagram
      2. 7.5.2. Enum Types
      3. 7.5.3. Table descriptions
  8. 8. Decision Process
    ❱
    1. 8.1. EXPLANATIONS
    2. 8.2. TEMPLATE
    3. 8.3. Authentication & Authorization
    4. 8.4. Backend API documentation
    5. 8.5. Mail Client for the Backend
    6. 8.6. Backend ORM/SQL Crate
    7. 8.7. Backend Programming Language
    8. 8.8. Backend Web Framework
    9. 8.9. Backend Testing Strategy
    10. 8.10. Backend Web Framework
    11. 8.11. CI/CD
    12. 8.12. Database
    13. 8.13. Database Plant Hierarchy
    14. 8.14. Drawing Library
    15. 8.15. Example Migrations
      ❱
      1. 8.15.1. Normalized Plants and Ranks
        ❱
        1. 8.15.1.1. 2023-04-07-130215 Plant Relastionships
          ❱
          1. 8.15.1.1.1. down.sql
          2. 8.15.1.1.2. up.sql
        2. 8.15.1.2. example_queries.sql
      2. 8.15.2. One Table Per Taxonomy
        ❱
        1. 8.15.2.1. 2023-03-09-194135 Plant Relations
          ❱
          1. 8.15.2.1.1. down.sql
          2. 8.15.2.1.2. up.sql
      3. 8.15.3. Taxonomy Ranks And Concrete Plants
        ❱
        1. 8.15.3.1. 2023-04-04-220813 Taxons
          ❱
          1. 8.15.3.1.1. down.sql
          2. 8.15.3.1.2. up.sql
        2. 8.15.3.2. 2023-04-04-220921 Plant Relationships
          ❱
          1. 8.15.3.2.1. down.sql
          2. 8.15.3.2.2. up.sql
        3. 8.15.3.3. 2023-04-07-112305 Varieties
          ❱
          1. 8.15.3.3.1. down.sql
          2. 8.15.3.3.2. up.sql
        4. 8.15.3.4. example_queries.sql
    16. 8.16. Frontend Architecture Pattern
    17. 8.17. Frontend Build Tool
    18. 8.18. Frontend Documentation
    19. 8.19. E2E Testing
    20. 8.20. Frontend Keyhandling
    21. 8.21. Frontend Lazyloading
    22. 8.22. Frontend API Mocking Tool
    23. 8.23. Frontend Offloading
    24. 8.24. Frontend Programming Language
    25. 8.25. Frontend State Management
    26. 8.26. Timeline: Custom Date Picker Implementation Decision
    27. 8.27. Frontend UI Framework
    28. 8.28. Map Undo/Redo Implementation
    29. 8.29. Polygon Calculations
    30. 8.30. Reversible deletion of database entities
    31. 8.31. Search Plants
    32. 8.32. Sync
    33. 8.33. Uuid
  9. 9. Development Setup
    ❱
    1. 9.1. Docker + local
    2. 9.2. Devcontainer
    3. 9.3. Reset guided tours
  10. 10. development_setup
  11. 11. Guidelines
    ❱
    1. 11.1. REST
    2. 11.2. Backend Logging
    3. 11.3. Tutorial for synchronized APIs in the Map Editor
    4. 11.4. Backend
    5. 11.5. Code
    6. 11.6. Database
    7. 11.7. Documentation
    8. 11.8. e2e
    9. 11.9. Frontend API Calls
    10. 11.10. Frontend Component Responsiveness
    11. 11.11. Creating a New Layer in Frontend
    12. 11.12. Frontend General Responsiveness
    13. 11.13. Frontend Keybindings
    14. 11.14. Frontend Locators
    15. 11.15. Frontend React
    16. 11.16. Using and extending the Stored Map Information in the Frontend
    17. 11.17. Frontend UI & Usability
    18. 11.18. Frontend
    19. 11.19. i18n
    20. 11.20. Security
    21. 11.21. Upgrading to newer software releases
    22. 11.22. Versioning
  12. 12. Meetings
    ❱
    1. 12.1. Meeting 2023-03-07
    2. 12.2. Meeting 2023-03-14
    3. 12.3. Meeting 2023-03-15 Gamification
    4. 12.4. Meeting 2023-03-15 Polyculture Algorithm
    5. 12.5. Meeting 2023-03-20 DB Kick-Off
    6. 12.6. Meeting 2023-03-21
    7. 12.7. Meeting 2023-03-23 Backend Kick-Off
    8. 12.8. Meeting 2023-03-28
    9. 12.9. Meeting 2023-03-30 - Polyculture
    10. 12.10. Meeting 2023-03-31
    11. 12.11. Meeting 2023-04-04
    12. 12.12. Meeting 2023-04-07 DB
    13. 12.13. Meeting 2023-04-07 Frontend
    14. 12.14. Meeting 2023-04-11
    15. 12.15. Meeting 2023-04-18
    16. 12.16. Meeting 2023-04-25
    17. 12.17. Meeting 2023-04-27 DB
    18. 12.18. Meeting 2023-05-02
    19. 12.19. Meeting 2023-05-09
    20. 12.20. Meeting 2023-05-16
    21. 12.21. Meeting 2023-05-23
    22. 12.22. Meeting 2023-05-26 Architecture
    23. 12.23. Meeting 2023-05-30
    24. 12.24. Meeting 2023-06-06
    25. 12.25. Meeting 2023-06-13
    26. 12.26. Meeting 2023-06-20
    27. 12.27. Meeting 2023-06-27
    28. 12.28. Meeting 2023-07-04
    29. 12.29. Meeting 2023-07-11
    30. 12.30. Meeting 2023-07-18
    31. 12.31. Meeting 2023-07-25
    32. 12.32. Meeting 2023-07-31
    33. 12.33. Meeting 2023-08-08
    34. 12.34. Meeting 2023-08-15
    35. 12.35. Meeting 2023-08-22
    36. 12.36. Meeting 2023-08-28
    37. 12.37. Meeting 2023-09-04
    38. 12.38. Meeting 2023-09-11
    39. 12.39. Meeting 2023-09-18
    40. 12.40. Meeting 2023-09-25
    41. 12.41. Meeting 2023-10-02
    42. 12.42. Meeting 2023-10-09
    43. 12.43. Meeting 2023-10-16
    44. 12.44. Meeting 2023-10-23
    45. 12.45. Meeting 2023-10-30
    46. 12.46. Meeting 2023-11-06
    47. 12.47. Meeting 2023-11-13
    48. 12.48. Meeting 2023-11-20
    49. 12.49. Meeting 2023-11-27
    50. 12.50. Meeting 2023-12-04
    51. 12.51. Meeting 2023-12-11
    52. 12.52. Meeting 2023-12-18
    53. 12.53. Meeting 2023-12-27
    54. 12.54. Meeting 2024-01-02
    55. 12.55. Meeting 2024-01-08
    56. 12.56. Meeting 2024-01-15
    57. 12.57. Meeting 2024-01-22
    58. 12.58. Meeting 2024-01-29
    59. 12.59. Meeting 2024-02-05
    60. 12.60. Meeting 2024-02-12
    61. 12.61. Meeting 2024-02-19
    62. 12.62. Meeting 2024-03-11
    63. 12.63. Meeting 25.03.2024
    64. 12.64. Meeting 02.04.2024
    65. 12.65. Meeting 04.04.2024 - Scrum Processes
    66. 12.66. Meeting 08.04.2024
    67. 12.67. Meeting 15.04.2024
    68. 12.68. Meeting 22.04.2024
    69. 12.69. Meeting 06.05.2024
    70. 12.70. Meeting 13.05.2024
    71. 12.71. Meeting 20.05.2024
    72. 12.72. Meeting 27.05.2024
    73. 12.73. Meeting 03.06.2024
    74. 12.74. Meeting 10.06.2024
    75. 12.75. Meeting 17.06.2024
    76. 12.76. Meeting 24.06.2024
    77. 12.77. Meeting 27.06.2024 - Heatmap
    78. 12.78. Meeting 15.07.2024
    79. 12.79. Meeting 22.07.2024
    80. 12.80. Meeting 29.07.2024
    81. 12.81. Meeting 05.08.2024
    82. 12.82. Meeting 12.08.2024
    83. 12.83. Meeting 19.08.2024
    84. 12.84. Meeting 26.08.2024
    85. 12.85. Meeting 09.09.2024
    86. 12.86. Meeting 16.09.2024
    87. 12.87. Meeting 23.09.2024
    88. 12.88. Meeting 30.09.2024
    89. 12.89. Meeting 07.10.2024
    90. 12.90. Meeting 14.10.2024
    91. 12.91. Meeting 21.10.2024
    92. 12.92. Meeting 28.10.2024
    93. 12.93. Meeting 04.11.2024
    94. 12.94. Meeting 11.11.2024
    95. 12.95. Meeting 23.11.2024
    96. 12.96. Meeting 02.12.2024
    97. 12.97. Meeting 09.12.2024
    98. 12.98. Meeting 16.12.2024
    99. 12.99. Meeting 13.1.2025
    100. 12.100. Meeting 20.1.2025
    101. 12.101. Meeting 27.1.2025
    102. 12.102. Meeting 03.02.2025
    103. 12.103. Meeting 10.02.2025
    104. 12.104. Meeting 17.02.2025
    105. 12.105. Meeting 24.02.2025
    106. 12.106. Meeting 03.03.2025
    107. 12.107. Meeting 10.03.2025
    108. 12.108. Meeting 17.03.2025
    109. 12.109. Meeting 24.03.2025
    110. 12.110. Meeting 31.03.2025
    111. 12.111. Meeting 07.04.2025
    112. 12.112. Meeting 14.04.2025
    113. 12.113. Meeting 21.04.2025
    114. 12.114. Meeting 28.04.2025
    115. 12.115. Meeting 05.05.2025
    116. 12.116. Meeting 12.05.2025
    117. 12.117. Meeting 19.05.2025
  13. 13. Mockups
  14. 14. Releases
  15. 15. Research
    ❱
    1. 15.1. Keycloak Basics
    2. 15.2. Map Performance
    3. 15.3. Nextcloud Integration
    4. 15.4. Typeshare
  16. 16. Testing Strategy
    ❱
    1. 16.1. Backend Testing
    2. 16.2. Frontend testing
    3. 16.3. Manual tests
      ❱
      1. 16.3.1. Report
        ❱
        1. 16.3.1.1. Heatmap with Shade
        2. 16.3.1.2. Manual Test Report (pre v0.3 case study release)
        3. 16.3.1.3. Manual Test Report (v0.3 case study release)
        4. 16.3.1.4. Manual Test Report (v0.3.1)
        5. 16.3.1.5. Manual Test Report (v0.3.2)
        6. 16.3.1.6. Manual Test Report (v0.3.3)
        7. 16.3.1.7. Manual Test Report (v0.3.4)
        8. 16.3.1.8. Manual Test Report (v0.3.5)
        9. 16.3.1.9. Manual Test Report (v0.3.6)
        10. 16.3.1.10. Manual Test Report (v0.4.0)
        11. 16.3.1.11. Manual Test Report (v0.4.1)
        12. 16.3.1.12. 240801
        13. 16.3.1.13. 240801_dev
        14. 16.3.1.14. 240802_seeds
        15. 16.3.1.15. 241023
        16. 16.3.1.16. 241104
        17. 16.3.1.17. 250407
        18. 16.3.1.18. template
      2. 16.3.2. testcases
        ❱
        1. 16.3.2.1. General Test Cases
        2. 16.3.2.2. Heatmap Test Cases
        3. 16.3.2.3. Layer Management Test Cases
        4. 16.3.2.4. Read Only Test Cases
        5. 16.3.2.5. Shade Layer Test Cases
    4. 16.4. Testusers
  17. 17. Usecases
    ❱
    1. 17.1. Assigned Use Cases
      ❱
      1. 17.1.1. Use Case: Copy & Paste Between Own Maps
      2. 17.1.2. Use Case: Copy & Paste Between Users
      3. 17.1.3. Use Case: Copy & Paste Via Icons
      4. 17.1.4. Use Case: Copy & Paste Within the Same Map
      5. 17.1.5. Use Case: Map Editor Navigation Mobile Usability
      6. 17.1.6. Use Case: Map Editor Timeline Mobile Usability
      7. 17.1.7. Use Case: Map Editor Toolbar Mobile Usability
      8. 17.1.8. Use Case: Nextcloud Circles
      9. 17.1.9. Use Case: Plant attributes
      10. 17.1.10. Use Case: Plant search icons
      11. 17.1.11. Use Case: Zones Layer
    2. 17.2. Current Use Cases
      ❱
      1. 17.2.1. Use Case: General Mobile Usability
      2. 17.2.2. Use Case: Highlight Searched Plants
      3. 17.2.3. Use Case: Map Collaboration
      4. 17.2.4. Use Case: Remember Viewing State
      5. 17.2.5. Use Case: Visitor chat
    3. 17.3. Done Use Cases
      ❱
      1. 17.3.1. Use Case: Additional Layer
      2. 17.3.2. Use Case: Area of Plantings
      3. 17.3.3. Use Case: Base Layer
      4. 17.3.4. Use Case: Crop Rotation
      5. 17.3.5. Use Case: Entry and List of Seeds
      6. 17.3.6. Use Case: Grid
      7. 17.3.7. Use Case: Guided Tour
      8. 17.3.8. Use Case: Heatmap
      9. 17.3.9. Use Case: Hydrology Layer
      10. 17.3.10. Use Case: Landing Page
      11. 17.3.11. Use Case: Layer Visibility
      12. 17.3.12. Use Case: Login
      13. 17.3.13. Use Case: Manage Additional Layers
      14. 17.3.14. Use Case: Map Creation
      15. 17.3.15. Use Case: Map Deletion
      16. 17.3.16. Use Case: Map Search
      17. 17.3.17. Use Case: Map Timeline Event View
      18. 17.3.18. Use Case: Map Timeline Single Selection
      19. 17.3.19. Use Case: Map Undo/Redo
      20. 17.3.20. Use Case: Measuring Distance
      21. 17.3.21. Use Case: Multi-Select
      22. 17.3.22. Use Case: Plants Layer
      23. 17.3.23. Use Case: Rename Layers
      24. 17.3.24. Use Case: Search Plants
      25. 17.3.25. Use Case: Shade Layer
      26. 17.3.26. Use Case: Soil Layer
      27. 17.3.27. Use Case: Translation
      28. 17.3.28. Use Case: Zoom
    4. 17.4. Draft Use Cases
      ❱
      1. 17.4.1. Use Case: Add Plant Relationships
      2. 17.4.2. Use Case: All Layer
      3. 17.4.3. Use Case: Brushing
      4. 17.4.4. Use Case: Buy Seeds
      5. 17.4.5. Use Case: Contributing Member
      6. 17.4.6. Use Case: Diff
      7. 17.4.7. Use Case: Dimensioning Layer
      8. 17.4.8. Use Case: Diversity Score
      9. 17.4.9. Use Case: Event Notification
      10. 17.4.10. Use Case: Experimental Results
      11. 17.4.11. Use Case: Gain Blossoms
      12. 17.4.12. Use Case: Habitats Layer
      13. 17.4.13. Use Case: Import and Export Maps
      14. 17.4.14. Use Case: Ingredient Lists
      15. 17.4.15. Use Case: Landing Page News
      16. 17.4.16. Use Case: Layer Alternatives
      17. 17.4.17. Use Case: Map Honors
      18. 17.4.18. Use Case: Map-Specific Favorite Groups
      19. 17.4.19. Use Case: Map Statistics
      20. 17.4.20. Use Case: Matchmaking
      21. 17.4.21. Use Case: Membership Application
      22. 17.4.22. Use Case: New Plant
      23. 17.4.23. Use Case: Offline
      24. 17.4.24. Use Case: Paths Layer
      25. 17.4.25. Use Case: Plant Database Update Notification
      26. 17.4.26. Use Case: Plant Lore
      27. 17.4.27. Use Case: Review Plant
      28. 17.4.28. Use Case: Review Plant Relationships
      29. 17.4.29. Use Case: Reward Preview
      30. 17.4.30. Use Case: Terrain Layer
      31. 17.4.31. Use Case: Trees Layer
      32. 17.4.32. Use Case: Winds Layer
    5. 17.5. Later Use Cases
      ❱
      1. 17.5.1. Use Case: Calendar
      2. 17.5.2. Use Case: Fertilization Layer
      3. 17.5.3. Use Case: GeoMap
      4. 17.5.4. Use Case: Incomplete Groups
      5. 17.5.5. Use Case: Infrastructure Layer
      6. 17.5.6. Use Case: Landscape Layer
      7. 17.5.7. Use Case: Map Timeline Range Selection
      8. 17.5.8. Use Case: Map to PDF
      9. 17.5.9. Use Case: New Member Notification
      10. 17.5.10. Use Case: Plant List
      11. 17.5.11. Use Case: Relation Layer
      12. 17.5.12. Use Case: Suggest Plants
      13. 17.5.13. Use Case: Todo Layer
      14. 17.5.14. Use Case: Watering Layer

PermaplanT

Database