Plantlog ist ein privates Grow-Journal für Pflanzenzyklen. Die Vue-App verbindet ein übersichtliches Growboard mit Firebase Authentication, benutzergetrennten Firestore-Daten und einem moderierbaren Mitglieder-Chat.
Version 0.10.0 ist der erste größere Fundament-Umbau:
- neues responsives Plantlog-Design statt Vue-Starterlayout
- funktionierendes Tailwind CSS 4
- Login und Registrierung mit Anzeigename, E-Mail/Passwort oder Google
- persönliche Grow-Liste unter
/users/{uid}/grows - Zyklusfortschritt, ungefähre Restzeit und Erntefenster
- Notizen und Status direkt am Grow
- Mitglieder-Chat ohne öffentliche E-Mail-Adressen
- eigene Nachrichten können gelöscht werden
- Administratoren können alle Chat-Nachrichten löschen
- versionierte Firestore Rules mit Feld-, Typ- und Längenvalidierung
Vorhandene Grow-Dokumente mit dem bisherigen Schema bleiben lesbar.
- Vue 3, Vue Router und Pinia
- TypeScript und Vite
- Tailwind CSS 4
- Firebase Authentication und Cloud Firestore
- date-fns
- Vitest, ESLint und Oxlint
- Firebase Hosting
Voraussetzungen: Node.js 20.19 oder neuer sowie npm.
npm install
npm run devDie lokale App läuft standardmäßig unter http://localhost:5173.
Eine lokale .env-Datei wird nicht eingecheckt. Erforderlich sind:
VITE_FB_API_KEY=
VITE_FB_AUTH_DOMAIN=
VITE_FB_PROJECT_ID=
VITE_FB_APP_ID=Die Firebase-Webkonfiguration ist kein Servergeheimnis. Sicherheit entsteht durch Authentication und die mitgelieferten Firestore Rules. Service-Account-Schlüssel gehören niemals in dieses Repository.
- E-Mail/Passwort und optional Google unter Firebase Authentication aktivieren.
- Cloud Firestore anlegen.
- Rules und Indexe deployen:
firebase deploy --only firestore:rules,firestore:indexes- Für einen Administrator die Schritte in FIREBASE_ADMIN.md ausführen.
- Hosting veröffentlichen:
firebase deploy --only hosting:growappLive: https://growapp-sleeptimerwin.web.app
Firebase führt vor einem Hosting-Deployment automatisch den Produktionsbuild aus.
admins/{uid}
enabled: true
users/{uid}
displayName
updatedAt
users/{uid}/grows/{growId}
name
startDate
vegDays
flowerDays
status
notes
createdAt
updatedAt
globalMessages/{messageId}
text
userId
userName
createdAt
Admin-Dokumente können nicht durch den Webclient erstellt oder verändert werden.
npm run check
npm auditnpm run check führt TypeScript, Oxlint, ESLint, Unit-Tests und den Produktionsbuild
nacheinander aus.
- Cabinets beziehungsweise Zelte
- einzelne Pflanzen mit tatsächlichem Phasenbeginn
- frei definierbare Zyklusvorlagen
- Ereignis-Timeline für Gießen, Düngung, Fotos und Beobachtungen
- Profilseite zum Ändern des Anzeigenamens
- Chat-Meldungen, Moderationsprotokoll und Pagination
- Firestore-Emulator-Tests für Security Rules