From ea3985f4259e775976d92f54b2848cde8d61b02f Mon Sep 17 00:00:00 2001 From: elpatron Date: Fri, 29 May 2026 20:47:01 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20README=20um=20Statistik,=20Rollen=20und?= =?UTF-8?q?=20Backup/Restore=20erg=C3=A4nzen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Funktionsliste, Zugriffsmatrix und Kurzanleitung für .daagbok.json-Backups nachziehen. Co-authored-by: Cursor --- README.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 777a37b..964ba0a 100644 --- a/README.md +++ b/README.md @@ -13,15 +13,17 @@ Alle sensiblen Inhalte werden **clientseitig verschlüsselt** (Web Crypto API). ## Funktionen - **Passkey-Authentifizierung** (WebAuthn) mit optionaler Recovery-Phrase und lokalem PIN-Fallback -- **Mehrere Logbücher** pro Benutzerkonto +- **Mehrere Logbücher** pro Benutzerkonto — eigene Logbücher und per Einladung geteilte Logbücher (Crew-Zugang) klar getrennt - **Reisetage** mit Hafen, Wetter, Tankständen, Ereignissen und Tagesnummer - **GPS-Tracks** (GPX/KML/GeoJSON-Upload, Karte, Statistiken) - **Foto-Anhänge** pro Reisetag - **Passkey-Signaturen** für Skipper und Crew (hybride elektronische Signatur) - **Schiffsdaten** und **Crew-Profile** (Skipper + Mitglieder) -- **Kollaboration** — Crew per Einladungslink einladen +- **Statistik-Dashboard** — Strecken, Verbrauch, Segel/Motor, Hafenkette (pro Logbuch oder accountweit) +- **Kollaboration** — Crew per Einladungslink einladen (Schreib- oder Lesezugriff) - **Read-only-Freigabe** — öffentlicher Lese-Link für Dritte - **Export** — PDF pro Reisetag, CSV-Download/-Teilen +- **Backup & Wiederherstellung** — vollständiges verschlüsseltes Logbuch-Backup (Einträge, Fotos, GPS, Crew, Schiff) als `.daagbok.json`; Restore auf gleichem oder neuem Account - **PWA** — installierbar auf iOS/Android, Offline-Modus, Update-Hinweise - **Mehrsprachig** — Deutsch und Englisch - **Demo-Logbuch & Onboarding-Tour** für neue Nutzer @@ -45,6 +47,26 @@ Alle sensiblen Inhalte werden **clientseitig verschlüsselt** (Web Crypto API). | Auth | WebAuthn (Passkeys) via `@simplewebauthn` | | Krypto | Web Crypto API (AES-GCM), BIP39 Recovery | +### Rollen & Zugriff + +| Rolle | Bedeutung | +|-------|-----------| +| **Owner** | Logbuch angelegt; voller Zugriff, Einladungen, Backup, Löschen | +| **Collaborator (WRITE)** | Per Einladung; Einträge bearbeiten und als Crew signieren | +| **Collaborator (READ)** | Nur Lesen (z. B. öffentlicher Share-Link) | + +Skipper- und Crew-Profile im Logbuch sind **Inhaltsdaten** (verschlüsselt), nicht an den Account gebunden. Ein Account kann gleichzeitig Owner eines eigenen und Collaborator in fremden Logbüchern sein. + +## Backup & Wiederherstellung + +Nur der **Logbuch-Eigner** kann unter **Einstellungen → Backup & Wiederherstellung** ein vollständiges Backup erstellen: + +1. Backup-Passphrase wählen (min. 8 Zeichen, getrennt von der Datei aufbewahren) +2. Download als `.daagbok.json` — enthält alle verschlüsselten Payloads inkl. **Fotos** und GPS-Tracks +3. **Wiederherstellen** in einem beliebigen Account (nach Registrierung/Login): Datei + Passphrase + +Vor dem Löschen eines Logbuchs weist die App auf diese Funktion hin. Crew-Einladungen und Passkey-Signaturen werden nicht mitübertragen — Inhalte bleiben lesbar, Signaturen auf neuem Account ggf. nicht mehr verifizierbar. + ## Projektstruktur ``` @@ -52,7 +74,7 @@ kapteins-daagbok/ ├── client/ # React-PWA (Frontend) │ ├── src/ │ │ ├── components/ # UI-Komponenten -│ │ ├── services/ # Auth, Sync, Krypto, Analytics, … +│ │ ├── services/ # Auth, Sync, Krypto, Backup, Analytics, … │ │ └── i18n/ # DE/EN-Übersetzungen │ └── Dockerfile # Nginx-Produktions-Image ├── server/ # Express-API + Prisma