Commit graph

20 commits

Author SHA1 Message Date
cschlaefke
8b74a5b3df Doku: Handoff-Dokument für Session-Übergaben
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 19:24:00 +02:00
cschlaefke
1b2c880c89 V2: Haushalt teilen – Einladungscodes, Mitglieder- und Sitter-Rolle, sichtbare Bestätigungen
- Einladen per einmaligem 6-stelligem Code (7 Tage gültig), wahlweise als Mitglied oder Pflanzen-Sitter
- Beitritt über Cloud Function joinHousehold (Transaktion, Admin-Rechte)
- Security Rules: Sitter dürfen an Pflanzen nur Bestätigungs-Felder ändern; invites nur erstellen, nie lesen
- Haushalts-Screen: Mitgliederliste mit Rollen, Einladen, Beitreten mit Wechsel-Warnung
- UI-Gating: Sitter sehen keine Anlegen-/Bearbeiten-/Löschen-Aktionen
- Bestätigungen speichern den Namen (lastWateredBy/lastFertilizedBy), Anzeige im Profil
- Tests: Members-Map im Seed, neuer Sitter-Test

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 19:14:34 +02:00
cschlaefke
9abd3de351 Temporäre Diagnose-Function entfernt – Push-Strecke verifiziert
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:48:36 +02:00
cschlaefke
876ed06a97 Fix: flutter_timezone 5.x liefert TimezoneInfo-Objekt – identifier speichern statt Objekt
Der Firestore-Write warf zur Laufzeit eine Exception (nicht serialisierbares
Objekt), wodurch auch der FCM-Token nie gespeichert wurde. Fehler bei der
Push-Registrierung werden jetzt geloggt statt verschluckt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:43:02 +02:00
cschlaefke
c1205fb959 Ungenutzten Import entfernt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:39:24 +02:00
cschlaefke
4bceb8747b Fix: Push-Registrierung griff nicht bei bereits eingeloggtem Nutzer
registerDevice lief nur bei Auth-Änderungen (ref.listen) – bestand der Login
schon beim App-Start, wurde nie ein FCM-Token gespeichert. Jetzt reaktiv über
pushSetupProvider (ref.watch). Zusätzlich: temporäre debugReminders-Function
zur Diagnose der Push-Strecke.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:39:02 +02:00
cschlaefke
0ce4b2cb19 Erinnerungs-Function: Diagnose-Logging pro Nutzer
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 14:55:50 +02:00
cschlaefke
7d45724ef2 Doku: App-Check-Warnung erklärt, als spätere Härtung notiert
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 14:45:31 +02:00
cschlaefke
52e72c25b1 Push-Erinnerungen: FCM-Registrierung in der App, geplante Function sendDailyReminders
- Function läuft alle 15 Min (europe-west3): prüft Erinnerungszeit pro Nutzer (Zeitzonen-korrekt), berechnet fällige Aufgaben, schickt eine Sammel-Push pro Tag, räumt ungültige Tokens auf
- App registriert Gerät nach Login (Berechtigung, Token, Zeitzone), Erinnerungszeit wird ins Nutzer-Dokument synchronisiert
- Doku Schritt 6 inkl. APNs-Anleitung für iOS (sobald Developer Account da ist)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 13:06:02 +02:00
cschlaefke
41e31bed88 Foto-Flow mit KI-Erkennung: Kamera, Cloud Function identifyPlant, Storage für Fotos
- Cloud Function (europe-west3): PlantNet-Erkennung mit Claude-Fallback, deutsches Pflegeprofil von Claude, Keys als Secrets
- Pflanzen-Formular: Foto aufnehmen/wählen, Felder werden automatisch vorbefüllt
- Fotos in Storage unter households/{id}/plant-photos, Anzeige in Liste und Profil
- storage.rules mit Haushalts-Prinzip, iOS-Berechtigungstexte für Kamera/Fotos
- Doku Schritt 5: Storage aktivieren, PlantNet-Key, Secrets setzen

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 00:05:46 +02:00
cschlaefke
e999da5d48 Analyzer: auch ios/build ausschließen
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 23:53:29 +02:00
cschlaefke
cda8bc4cc2 Flutter 3.44 Upgrade: build/ vom Analyzer ausgeschlossen (SwiftPM-Fremdpakete)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 23:52:41 +02:00
cschlaefke
f6dfb20b00 iOS-Deployment-Target auf 15.0 angehoben (Voraussetzung von cloud_firestore)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 23:05:45 +02:00
cschlaefke
53ee30c598 Firestore und Auth: echte Daten statt Demo, Login mit E-Mail+Passwort, Security Rules
- Datenmodell: users/{uid}, households/{id} mit memberUids, plants/locations als Subcollections
- StreamProvider liefern Live-Daten, Repositories kapseln Schreibzugriffe
- Login-Screen mit Registrierung (legt Haushalt automatisch an), Logout in Einstellungen
- Router-Redirect bei Login/Logout, firestore.rules mit Haushalts-Prinzip
- Tests auf firebase_auth_mocks + fake_cloud_firestore umgestellt
- Verifiziert: analyze/test grün, Android-Debug-Build erfolgreich

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 22:53:09 +02:00
cschlaefke
4390949c7e Firebase angebunden: Projekt leaf-it-to-me-app, App-Registrierung iOS/Android, Initialisierung beim Start
- flutterfire configure: firebase_options.dart, google-services.json, GoogleService-Info.plist
- firebase_core eingebunden, Firebase.initializeApp in main.dart
- Doku firebase-einrichtung.md auf aktuellen Stand gebracht
- Verifiziert: flutter analyze/test grün, Android-Debug-Build erfolgreich

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 22:44:24 +02:00
cschlaefke
a5b79193dd Projekt in leafittome umbenannt (App-Name LeafItToMe, Bundle-ID dev.leafittome.app)
- pubspec, Paket-Imports, App-Klasse, ARB-Titel, iOS/Android-Konfiguration
- README und Doku auf neuen Namen und Repo leafittome umgestellt

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 22:25:41 +02:00
cschlaefke
c7b22a6f86 Doku: SQLite-Pfad /data/gitea/gitea.db in Forgejo-Ersteinrichtung ergänzt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 22:18:29 +02:00
cschlaefke
d1df0cd2ec Doku: Git-Push per HTTPS+Token als Standardweg, SSH-Port-Mapping via Compose-Edit als Variante B
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 22:13:00 +02:00
cschlaefke
7b791c5977 Doku: Forgejo-Setup auf Coolify umgestellt, Server-Absicherung ergänzt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 21:46:18 +02:00
cschlaefke
6e22d9c3aa Projekt-Gerüst: Flutter-App mit Heute-Checkliste, Pflanzenverwaltung, Stellplätzen und Einstellungen
- Flutter/Dart (iOS + Android), Riverpod, go_router, i18n via ARB (deutsch)
- Feature-Struktur: today, plants, locations, household (V2-Platzhalter), settings
- Intervall-Modell: Aufgaben werden aus lastWatered/lastFertilized + Intervall berechnet
- In-Memory-Demo-Daten, Firebase-Anbindung folgt im nächsten Block
- Doku: Architektur, Firebase-Einrichtung, Forgejo-Git-Hosting

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 21:13:18 +02:00