Druckbare Arbeitsauftraege fuer die Obstbaumpflege (Go, treedoc-API)
  • Go 89.7%
  • CSS 9.2%
  • Shell 1.1%
Find a file
2026-08-05 23:36:24 +02:00
cmd/treework Rapport-Statistik: pro Person rechnen, Pausen stecken in der Spanne 2026-08-05 23:36:10 +02:00
internal Rapport-Statistik: pro Person rechnen, Pausen stecken in der Spanne 2026-08-05 23:36:10 +02:00
scripts Release-Prozess: Version im Binary, CHANGELOG, release.sh 2026-07-09 13:45:00 +02:00
web Rapport-Statistik: pro Person rechnen, Pausen stecken in der Spanne 2026-08-05 23:36:10 +02:00
.gitignore Workorders: OSM-Login + Postgres-Persistenz, mehrere TOs bündeln 2026-07-09 00:08:24 +02:00
CHANGELOG.md release: v1.6.0 2026-08-05 23:36:24 +02:00
go.mod Notizen je Baum; beschriftete Baumkarte im WO-Bogen 2026-07-28 11:13:40 +02:00
go.sum Workorder: Markdown-Notizen, Ersteller-Recht, ganzen Bongert hinzufügen 2026-07-09 11:26:21 +02:00
index.png Startseite mit treedoc-Id-Formular 2026-07-08 23:39:58 +02:00
README.md Rapport: Arbeitssitzung am Stück erfassen und nach treedoc schreiben 2026-08-03 23:22:59 +02:00
to-JzTQA5A.jpeg release: v0.1.1 2026-07-12 12:09:15 +02:00
to-XtREhYw.jpeg WO-Bogen klickbare Geo + S/W-taugliche Marker; TO-Bogen größere Karte 2026-07-09 13:00:24 +02:00
wo-cover.jpeg WO-Bogen (Deckblatt) + UI-Feinschliff 2026-07-09 11:57:12 +02:00
wo-mappicker.jpeg Zugangspunkte auf Karte: Leaflet-Picker + WO-Bogen-Integration 2026-07-09 12:46:12 +02:00

treework

Druckbare Arbeitsaufträge für die Obstbaumpflege. Für einen einzelnen Baum (per treeid) wird ein A4-Bogen erzeugt mit Baum- und Standortdaten, einem Erkennungsfoto, Kartenausschnitt sowie handschriftlich auszufüllenden Feldern für Bearbeitung, Baummaße und eine verkürzte baumbezogene Gefährdungsbeurteilung.

Die Baumdaten stammen ausschließlich über die offizielle, öffentliche treedoc-API (https://app.treedoc.foxel.org/api/tree/v1). Gelesen wird anonym; geschrieben wird nur beim Rapport (siehe unten), und dann ausschließlich in treedocs Notiz- und TODO-Seitentabellen.

Standortdaten

Aus den Koordinaten des Baums abgeleitet (best-effort, jeweils gecacht):

  • Plus Code (Open Location Code) — offline berechnet, als Kurzform mit Ortsanhang und Google-Maps-Link
  • Nächster öffentlicher Weg — Overpass (highway=*)
  • Anschrift — Nominatim Reverse-Geocoding
  • Kartenausschnitt — OSM-Kacheln via go-staticmaps, mit Marker

Rapport (nach der Arbeitssitzung)

/wo/<id>/rapport ist die Erfassungstabelle zum Papierstapel: eine Zeile pro Baum, in Blattreihenfolge, mit denselben Feldern wie der gedruckte Bogen — Datum, Personen, Arbeitszeit, Baumhöhe, Kronendurchmesser, BHD, Stammlänge, Auffälligkeit und Notiz. Datum und Personen sind pro Baum verschieden; „↓" überträgt einen Wert in alle folgenden Zeilen.

Erfassen und Übertragen sind zwei Schritte:

  1. Speichern schreibt nur in treeworks eigene Datenbank. Das funktioniert auch, wenn treedoc gerade nicht erreichbar ist.
  2. An treedoc übertragen schreibt die Werte als Notizen an die Bäume (und bei „Unters." zusätzlich ein TODO) — mit dem OSM-Token der angemeldeten Person, die damit in treedoc als Urheber:in steht.

Was übertragen wurde, merkt sich treework pro Feld. Ein zweites Senden korrigiert die vorhandenen Einträge (PATCH) statt neue anzulegen; ein gelöschter Wert zieht die zugehörige Notiz wieder zurück. Der Versand ist gedrosselt, weil treedoc 30 Schreibvorgänge pro Minute und Nutzer:in annimmt.

Feld Ziel in treedoc
Baumhöhe / Kronen-Ø / BHD / Stammlänge Notiz Höhe / Kronendurchmesser / Stammumfang / Stammlänge mit Zahlenwert
Datum, Personen, Zeiten, Personenstunden Notiz Arbeitszeit
Auffälligkeit Notiz mit gewähltem Thema (Stamm, Krone, …)
„Unters." zusätzlich ein TODO am Baum
Notiz Notiz Sonstiges

Starten

go run ./cmd/treework
# Bogen: http://localhost:8080/to/<treeid>   z. B. /to/m4pdq

Konfiguration (Umgebungsvariablen)

Variable Default Zweck
TREEWORK_LISTEN :8080 Listen-Adresse
TREEDOC_BASE_URL öffentliche treedoc-API Basis-URL der Datenquelle
NOMINATIM_USER_AGENT treework/0.1 … Pflicht-UA für Nominatim/Overpass
GEO_CACHE_DIR (nur Speicher) Verzeichnis für den Geo-Cache auf Platte

Aufbau

Pfad Inhalt
cmd/treework HTTP-Server, Routing, QR-Code
internal/treedoc Client für die treedoc-API (Lesen anonym, Notizen/TODOs mit OSM-Token)
internal/geo Plus Code, Overpass, Nominatim, Karte, Cache
internal/workorder View-Modell (Baumdaten + Geo → Bogen)
internal/rapport Rapport → treedoc-Notizen/TODOs, gedrosselte Übertragung
internal/store Postgres: Workorders, Bäume, Rapporte, Übertragungs-Ledger
web HTML-Template + Print-CSS