1.
Architecture
❱
1.1.
Goals
1.2.
Constraints
1.3.
Context & Scope
1.4.
Solution Strategy
1.5.
Building Block View
1.6.
Runtime View
1.7.
Deployment
1.8.
Crosscutting Concepts
1.9.
Architecture Decisions
1.10.
Quality
1.11.
Risks and Technical Debt
1.12.
Glossary
2.
Authors
3.
PermaplanT Backend
❱
3.1.
Setup
3.2.
How to obtain access tokens?
3.3.
API documentation
3.4.
HTTP Headers
3.5.
Cronjobs
3.6.
Performance Benchmarks
3.7.
06updating_schema_patch
3.8.
Steps to add a Field to Entities
4.
Changelog
5.
CI/CD Pipeline
6.
Contributing to PermaplanT
❱
6.1.
Contributing to Backend
6.2.
Contributing to Frontend
7.
Database
❱
7.1.
Application settings
7.2.
Cronjobs
7.3.
Hierarchy
7.4.
Recovering Deleted Maps or Layers
7.5.
Schemata
❱
7.5.1.
ER diagram
7.5.2.
Enum Types
7.5.3.
Table descriptions
8.
Decision Process
❱
8.1.
EXPLANATIONS
8.2.
TEMPLATE
8.3.
Authentication & Authorization
8.4.
Backend API documentation
8.5.
Mail Client for the Backend
8.6.
Backend ORM/SQL Crate
8.7.
Backend Programming Language
8.8.
Backend Web Framework
8.9.
Backend Testing Strategy
8.10.
Backend Web Framework
8.11.
CI/CD
8.12.
Database
8.13.
Database Plant Hierarchy
8.14.
Drawing Library
8.15.
Example Migrations
❱
8.15.1.
Normalized Plants and Ranks
❱
8.15.1.1.
2023-04-07-130215 Plant Relastionships
❱
8.15.1.1.1.
down.sql
8.15.1.1.2.
up.sql
8.15.1.2.
example_queries.sql
8.15.2.
One Table Per Taxonomy
❱
8.15.2.1.
2023-03-09-194135 Plant Relations
❱
8.15.2.1.1.
down.sql
8.15.2.1.2.
up.sql
8.15.3.
Taxonomy Ranks And Concrete Plants
❱
8.15.3.1.
2023-04-04-220813 Taxons
❱
8.15.3.1.1.
down.sql
8.15.3.1.2.
up.sql
8.15.3.2.
2023-04-04-220921 Plant Relationships
❱
8.15.3.2.1.
down.sql
8.15.3.2.2.
up.sql
8.15.3.3.
2023-04-07-112305 Varieties
❱
8.15.3.3.1.
down.sql
8.15.3.3.2.
up.sql
8.15.3.4.
example_queries.sql
8.16.
Frontend Architecture Pattern
8.17.
Frontend Build Tool
8.18.
Frontend Documentation
8.19.
E2E Testing
8.20.
Frontend Keyhandling
8.21.
Frontend Lazyloading
8.22.
Frontend API Mocking Tool
8.23.
Frontend Offloading
8.24.
Polygon Libraries
8.25.
Frontend Programming Language
8.26.
Frontend State Management
8.27.
Timeline: Custom Date Picker Implementation Decision
8.28.
Frontend UI Framework
8.29.
Map Undo/Redo Implementation
8.30.
Reversible deletion of database entities
8.31.
Search Plants
8.32.
Sync
8.33.
Uuid
9.
Development Setup
❱
9.1.
Docker + local
9.2.
Devcontainer
10.
Guidelines
❱
10.1.
REST
10.2.
Backend Logging
10.3.
Tutorial for synchronized APIs in the Map Editor
10.4.
Backend
10.5.
Code
10.6.
Database
10.7.
Documentation
10.8.
e2e
10.9.
Frontend API Calls
10.10.
Creating a New Layer in Frontend
10.11.
Frontend Keybindings
10.12.
Frontend Locators
10.13.
Frontend UI & Usability
10.14.
Frontend
10.15.
i18n
10.16.
Security
10.17.
Versioning
11.
Meetings
❱
11.1.
Meeting 2023-03-07
11.2.
Meeting 2023-03-14
11.3.
Meeting 2023-03-15 Gamification
11.4.
Meeting 2023-03-15 Polyculture Algorithm
11.5.
Meeting 2023-03-20 DB Kick-Off
11.6.
Meeting 2023-03-21
11.7.
Meeting 2023-03-23 Backend Kick-Off
11.8.
Meeting 2023-03-28
11.9.
Meeting 2023-03-30 - Polyculture
11.10.
Meeting 2023-03-31
11.11.
Meeting 2023-04-04
11.12.
Meeting 2023-04-07 DB
11.13.
Meeting 2023-04-07 Frontend
11.14.
Meeting 2023-04-11
11.15.
Meeting 2023-04-18
11.16.
Meeting 2023-04-25
11.17.
Meeting 2023-04-27 DB
11.18.
Meeting 2023-05-02
11.19.
Meeting 2023-05-09
11.20.
Meeting 2023-05-16
11.21.
Meeting 2023-05-23
11.22.
Meeting 2023-05-26 Architecture
11.23.
Meeting 2023-05-30
11.24.
Meeting 2023-06-06
11.25.
Meeting 2023-06-13
11.26.
Meeting 2023-06-20
11.27.
Meeting 2023-06-27
11.28.
Meeting 2023-07-04
11.29.
Meeting 2023-07-11
11.30.
Meeting 2023-07-18
11.31.
Meeting 2023-07-25
11.32.
Meeting 2023-07-31
11.33.
Meeting 2023-08-08
11.34.
Meeting 2023-08-15
11.35.
Meeting 2023-08-22
11.36.
Meeting 2023-08-28
11.37.
Meeting 2023-09-04
11.38.
Meeting 2023-09-11
11.39.
Meeting 2023-09-18
11.40.
Meeting 2023-09-25
11.41.
Meeting 2023-10-02
11.42.
Meeting 2023-10-09
11.43.
Meeting 2023-10-16
11.44.
Meeting 2023-10-23
11.45.
Meeting 2023-10-30
11.46.
Meeting 2023-11-06
11.47.
Meeting 2023-11-13
11.48.
Meeting 2023-11-20
11.49.
Meeting 2023-11-27
11.50.
Meeting 2023-12-04
11.51.
Meeting 2023-12-11
11.52.
Meeting 2023-12-18
11.53.
Meeting 2023-12-27
11.54.
Meeting 2024-01-02
11.55.
Meeting 2024-01-08
11.56.
Meeting 2024-01-15
11.57.
Meeting 2024-01-22
11.58.
Meeting 2024-01-29
11.59.
Meeting 2024-02-05
11.60.
Meeting 2024-02-12
11.61.
Meeting 2024-02-19
11.62.
Meeting 2024-03-11
11.63.
Meeting 25.03.2024
11.64.
Meeting 02.04.2024
11.65.
Meeting 04.04.2024 - Scrum Processes
11.66.
Meeting 08.04.2024
11.67.
Meeting 15.04.2024
11.68.
Meeting 22.04.2024
11.69.
Meeting 06.05.2024
11.70.
Meeting 13.05.2024
11.71.
Meeting 20.05.2024
11.72.
Meeting 27.05.2024
11.73.
Meeting 03.06.2024
11.74.
Meeting 10.06.2024
11.75.
Meeting 17.06.2024
11.76.
Meeting 24.06.2024
11.77.
Meeting 27.06.2024 - Heatmap
11.78.
Meeting 15.07.2024
11.79.
Meeting 22.07.2024
11.80.
Meeting 29.07.2024
11.81.
Meeting 05.08.2024
11.82.
Meeting 12.08.2024
11.83.
Meeting 19.08.2024
11.84.
Meeting 26.08.2024
11.85.
Meeting 09.09.2024
11.86.
Meeting 16.09.2024
11.87.
Meeting 23.09.2024
11.88.
Meeting 30.09.2024
11.89.
Meeting 07.10.2024
11.90.
Meeting 14.10.2024
11.91.
Meeting 21.10.2024
11.92.
Meeting 28.10.2024
11.93.
Meeting 04.11.2024
12.
Mockups
13.
Release Procedure Documentation
14.
Research
❱
14.1.
Keycloak Basics
14.2.
Nextcloud Integration
15.
Testing Strategy
❱
15.1.
Backend Testing
15.2.
Frontend testing
15.3.
manual
❱
15.3.1.
Report
❱
15.3.1.1.
Heatmap with Shade
15.3.1.2.
Manual Test Report (pre v0.3 case study release)
15.3.1.3.
Manual Test Report (v0.3 case study release)
15.3.1.4.
Manual Test Report (v0.3.1)
15.3.1.5.
Manual Test Report (v0.3.2)
15.3.1.6.
Manual Test Report (v0.3.3)
15.3.1.7.
Manual Test Report (v0.3.4)
15.3.1.8.
Manual Test Report (v0.3.5)
15.3.1.9.
Manual Test Report (v0.3.6)
15.3.1.10.
Manual Test Report (v0.4.0)
15.3.1.11.
Manual Test Report (v0.4.1)
15.3.1.12.
240801
15.3.1.13.
240801_dev
15.3.1.14.
240802_seeds
15.3.1.15.
241023
15.3.1.16.
template
15.3.2.
testcases
❱
15.3.2.1.
Manual Test Protocol general template
15.3.2.2.
Manual Test Protocol heatmap template
15.3.2.3.
Manual Test Protocol layer management template
15.3.2.4.
Manual Test Protocol shade layer template
16.
Usecases
❱
16.1.
Assigned Use Cases
❱
16.1.1.
Use Case: Copy & Paste Between Own Maps
16.1.2.
Use Case: Copy & Paste Between Users
16.1.3.
Use Case: Copy & Paste Via Icons
16.1.4.
Use Case: Copy & Paste Within the Same Map
16.1.5.
Use Case: GeoMap
16.1.6.
Use Case: Map Collaboration
16.2.
Current Use Cases
❱
16.2.1.
Use Case: Crop Rotation
16.2.2.
Use Case: Heatmap
16.2.3.
Use Case: Hydrology Layer
16.2.4.
Use Case: Remember Viewing State
16.2.5.
Use Case: Soil Layer
16.3.
Done Use Cases
❱
16.3.1.
Use Case: Additional Layer
16.3.2.
Use Case: Area of Plantings
16.3.3.
Use Case: Base Layer
16.3.4.
Use Case: Entry and List of Seeds
16.3.5.
Use Case: Grid
16.3.6.
Use Case: Guided Tour
16.3.7.
Use Case: Landing Page
16.3.8.
Use Case: Layer Visibility
16.3.9.
Use Case: Login
16.3.10.
Use Case: Manage Additional Layers
16.3.11.
Use Case: Map Creation
16.3.12.
Use Case: Map Deletion
16.3.13.
Use Case: Map Search
16.3.14.
Use Case: Map Timeline Event View
16.3.15.
Use Case: Map Timeline Single Selection
16.3.16.
Use Case: Map Undo/Redo
16.3.17.
Use Case: Measuring Distance
16.3.18.
Use Case: Multi-Select
16.3.19.
Use Case: Plants Layer
16.3.20.
Use Case: Rename Layers
16.3.21.
Use Case: Search Plants
16.3.22.
Use Case: Shade Layer
16.3.23.
Use Case: Translation
16.3.24.
Use Case: Zoom
16.4.
Draft Use Cases
❱
16.4.1.
Use Case: Add Plant Relationships
16.4.2.
Use Case: Contributing Member
16.4.3.
Use Case: Diff
16.4.4.
Use Case: Dimensioning Layer
16.4.5.
Use Case: Diversity Score
16.4.6.
Use Case: Event Notification
16.4.7.
Use Case: Experimental Results
16.4.8.
Use Case: Gain Blossoms
16.4.9.
Use Case: Habitats Layer
16.4.10.
Use Case: Import and Export Maps
16.4.11.
Use Case: Ingredient Lists
16.4.12.
Use Case: Landing Page News
16.4.13.
Use Case: Layer Alternatives
16.4.14.
Use Case: Map Honors
16.4.15.
Use Case: Map-Specific Favorite Groups
16.4.16.
Use Case: Map Statistics
16.4.17.
Use Case: Matchmaking
16.4.18.
Use Case: Membership Application
16.4.19.
Use Case: New Plant
16.4.20.
Use Case: Offline
16.4.21.
Use Case: Paths Layer
16.4.22.
Use Case: Plant Lore
16.4.23.
Use Case: Review Plant
16.4.24.
Use Case: Review Plant Relationships
16.4.25.
Use Case: Reward Preview
16.4.26.
Use Case: Terrain Layer
16.4.27.
Use Case: Todo Layer
16.4.28.
Use Case: Trees Layer
16.4.29.
Use Case: Winds Layer
16.5.
Later Use Cases
❱
16.5.1.
Use Case: Buy Seeds
16.5.2.
Use Case: Calendar
16.5.3.
Use Case: Fertilization Layer
16.5.4.
Use Case: Incomplete Groups
16.5.5.
Use Case: Infrastructure Layer
16.5.6.
Use Case: Landscape Layer
16.5.7.
Use Case: Map Timeline Range Selection
16.5.8.
Use Case: Map to PDF
16.5.9.
Use Case: New Member Notification
16.5.10.
Use Case: Nextcloud Circles
16.5.11.
Use Case: Plant Database Update Notification
16.5.12.
Use Case: Relation Layer
16.5.13.
Use Case: Suggest Plants
16.5.14.
Use Case: Visitor chat
16.5.15.
Use Case: Watering Layer
16.5.16.
Use Case: Zones Layer
Light
Rust
Coal
Navy
Ayu
PermaplanT
One Table Per Taxonomy