Files
teatracker/README.md
Vibe Nuage Agent 233647be4a fix: Remove plain text password from code, use sessionStorage for security
- Remove hardcoded Nextcloud credentials from app.js
- Remove pre-filled password from HTML form
- Store password in sessionStorage (cleared on browser close) instead of localStorage
- Store only URL, username, and path in localStorage
- Update README with security notes
- Update quick start guide to reflect manual password entry
- Add autocomplete attribute to password field

Security improvement: Password is now only stored temporarily in sessionStorage
and must be entered manually by the user on first use or after browser restart.

Generated by Vibe Code

Co-authored-by: trevor1969 <trevor1969@users.noreply.github.com>
2026-06-04 12:27:10 +00:00

374 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🍵 TeeTracker
> **Dein persönlicher Tee-Konsum Tracker** Verwalte deine Tee-Sorten und tracke, wie viel Tee du trinkst!
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![HTML5](https://img.shields.io/badge/HTML5-E34F26?logo=html5&logoColor=white)]
[![CSS3](https://img.shields.io/badge/CSS3-1572B6?logo=css3&logoColor=white)]
[![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?logo=javascript&logoColor=black)]
[![Chart.js](https://img.shields.io/badge/Chart.js-FF6384?logo=chart.js&logoColor=white)]
[![Nextcloud](https://img.shields.io/badge/Nextcloud-0082C9?logo=nextcloud&logoColor=white)]
---
## 📸 Screenshots
| Dashboard | Tee-Sorten | Tracken | Statistiken | Einstellungen |
|-----------|------------|---------|-------------|--------------|
| ![Dashboard](https://via.placeholder.com/300x200/8B4513/FFFFFF?text=Dashboard) | ![Tee-Sorten](https://via.placeholder.com/300x200/4ECDC4/FFFFFF?text=Tee-Sorten) | ![Tracken](https://via.placeholder.com/300x200/228B22/FFFFFF?text=Tracken) | ![Statistiken](https://via.placeholder.com/300x200/FF6347/FFFFFF?text=Statistiken) | ![Einstellungen](https://via.placeholder.com/300x200/6c757d/FFFFFF?text=Einstellungen) |
*(Screenshots werden automatisch generiert, sobald die App live ist)*
---
## ✨ Funktionen
### 📊 Dashboard
- **Gesamtübersicht**: Alle getrunkenen Tassen seit Beginn
- **Heute**: Wie viel Tee du heute schon getrunken hast
- **Diese Woche**: Wöchentlicher Konsum
- **Tee-Sorten**: Anzahl deiner gespeicherten Sorten
- **Letzte Aktivitäten**: Die letzten 5 getrackten Einträge
### 🍃 Tee-Sorten verwalten
- **Hinzufügen**: Neue Tee-Sorten mit allen Details anlegen
- Name (Pflichtfeld)
- Typ (Schwarztee, Grüntee, Weißtee, Oolong, Pu-Erh, Früchtetee, Kräutertee, Sonstiges)
- **Bio-Checkbox** 🌱: Kennzeichnung für Bio-Tees
- Marke (optional)
- Beschreibung (optional)
- Farbe (für individuelle Darstellung)
- **Bearbeiten**: Bestehende Sorten anpassen
- **Löschen**: Sorten entfernen (mit Bestätigung)
- **Suche & Filter**: Schnell finden, was du suchst
- Textsuche nach Name, Marke oder Beschreibung
- Filter nach Tee-Typ
### 📝 Tee-Konsum tracken
- **Tee-Sorte** auswählen (Pflichtfeld)
- **Datum** auswählen (Pflichtfeld, standardmäßig heute)
- **Uhrzeit** angeben (optional)
- **Menge** in Tassen (Pflichtfeld, 1-10)
- **Notizen** hinzufügen (z.B. "Mit Honig", "besonders stark")
- **Letzte 10 Einträge** werden unter dem Formular angezeigt
### 📈 Statistiken
- **Diagramme**: Visuelle Darstellung deines Konsums
- Donut-Chart: Verteilung nach Tee-Typen
- Balkendiagramm: Tagesverlauf
- **Detaillierte Statistiken**
- Gesamt getrunken
- Durchschnitt pro Tag
- Aktive Tage
- Verschiedene Tees
- Meist getrunkener Tee
- **Zeitraum-Filter**: **Heute**, Letzte 7 Tage, Monat, Jahr oder Gesamt
### ⚙️ Einstellungen (NEU!)
- **Nextcloud-Synchronisation** 🌐
- Verbindung zu deiner Nextcloud-Instanz herstellen
- Automatische Synchronisation zwischen Geräten
- Verbindungstest
- Synchronisationsstatus-Anzeige
- **Datenverwaltung**
- 📤 **Daten exportieren** (JSON-Datei herunterladen)
- 📥 **Daten importieren** (JSON-Datei hochladen)
- 🗑️ **Alle Daten löschen** (mit Bestätigung)
- **Statistik-Übersicht**
- Gesamt Tassen
- Anzahl Tee-Sorten
- Erster/Letzter Eintrag
---
## 🚀 Schnellstart
### Option 1: Lokal nutzen
1. **Repository klonen** (oder Dateien herunterladen):
```bash
git clone https://github.com/trevor1969/teatracker.git
cd teatracker
```
2. **index.html öffnen**:
- Einfach die `index.html` Datei in deinem Browser öffnen
- Oder einen lokalen Server starten:
```bash
# Mit Python 3
python -m http.server 8000
# Mit Node.js (npx)
npx serve
```
- Dann im Browser `http://localhost:8000` öffnen
### Option 2: GitHub Pages
1. Gehe zu deinem Repository auf GitHub
2. Aktiviere GitHub Pages:
- Settings → Pages
- Branch: `main` auswählen
- Folder: `/ (root)` auswählen
3. Deine App ist dann unter `https://trevor1969.github.io/teatracker/` erreichbar
### Option 3: Mit Nextcloud-Synchronisation (empfohlen!)
1. **App öffnen** (lokal oder über GitHub Pages)
2. Gehe zum Tab **⚙️ Einstellungen**
3. Aktiviere **Nextcloud-Synchronisation**
4. Trage deine Nextcloud-Daten ein:
- **URL**: `https://wralto.org/nextcloud3`
- **Benutzername**: `teetracker`
- **App-Passwort**: (dein App-Passwort aus Nextcloud)
- **Speicherpfad**: `/TeeTracker/` (Standard)
5. Klicke auf **🔍 Verbindung testen**
6. Speichere die Konfiguration mit **💾 Speichern**
7. **Fertig!** 🎉 Deine Daten werden jetzt automatisch synchronisiert
**Hinweis:** Aus Sicherheitsgründen musst du dein Passwort manuell eingeben. Es wird nicht in der App gespeichert (nur temporär in sessionStorage).
---
## 🛠 Technologien
- **Frontend**: HTML5, CSS3, Vanilla JavaScript (ES6+)
- **Charts**: [Chart.js](https://www.chartjs.org/) (über CDN)
- **Cloud-Speicher**: [Nextcloud WebDAV API](https://docs.nextcloud.com/server/latest/developer_manual/third_party/webdav.html)
- **Lokaler Speicher**: localStorage (Fallback)
- **Design**: Responsive, Mobile-First, Tee-inspirierte Farben
---
## 📦 Projektstruktur
```
teatracker/
├── index.html # Haupt-HTML-Datei mit allen Tabs
├── styles.css # Alle Styles und Design
├── app.js # gesamte Anwendungslogik + Nextcloud-Integration
├── README.md # Diese Datei
└── LICENSE # MIT License
```
---
## 🌐 Nextcloud-Integration
### Wie es funktioniert
Die App nutzt die **WebDAV-API** von Nextcloud, um Daten als JSON-Dateien zu speichern:
```
/TeeTracker/
├── teas.json # Deine Tee-Sorten
├── entries.json # Deine Tracking-Einträge
└── backup/ # Automatische Backups
└── teetracker_backup_2024-06-05T10-30-00.json
```
### Vorteile
| Vorteil | Beschreibung |
|---------|--------------|
| **🌍 Plattformübergreifend** | Zugriff von allen Geräten mit Internetverbindung |
| **🔄 Echtzeit-Sync** | Änderungen werden sofort synchronisiert |
| **💾 Automatische Backups** | Daten bleiben in Nextcloud erhalten |
| **⚡ Schnell** | Keine Datenbank nötig, einfache Dateispeicherung |
| **🔒 Sicher** | HTTPS-Verschlüsselung, App-Passwort (nicht Hauptpasswort) |
### Fallback-Mechanismus
Falls Nextcloud nicht erreichbar ist:
1. Die App **funktioniert weiter** mit lokalen Daten (localStorage)
2. Änderungen werden **lokal gespeichert**
3. Beim nächsten erfolgreichen Verbindungsaufbau werden die Daten **automatisch synchronisiert**
### 🔐 Sicherheitshinweise
**WICHTIG:** Aus Sicherheitsgründen wird dein Passwort **NICHT** im Klartext in der App oder im localStorage gespeichert!
- **sessionStorage**: Das Passwort wird nur in `sessionStorage` gespeichert (wird beim Schließen des Browsers gelöscht)
- **Keine Vorbefüllung**: Du musst dein Passwort manuell eingeben
- **Kein Klartext in Dateien**: Das Passwort erscheint nirgends im Code
### App-Passwort erstellen
Falls du ein neues Passwort brauchst:
1. Logge dich in deine Nextcloud ein (`https://wralto.org/nextcloud3`)
2. Gehe zu **Einstellungen → Sicherheit**
3. Suche nach **"App-Passwörter"**
4. Erstelle ein neues Passwort mit dem Namen **"TeeTracker"**
5. Kopiere das Passwort und trage es in den Einstellungen ein
**Tipp:** Speichere das App-Passwort in einem Passwort-Manager, da es nach dem Erstellen nicht mehr angezeigt wird.
---
## 🎨 Design
### Farben
| Farbe | Hex | Verwendung |
|-------|-----|------------|
| ![#8B4513](https://via.placeholder.com/20/8B4513/000000?text=+) `#8B4513` | Primärfarbe (Braun) |
| ![#4ECDC4](https://via.placeholder.com/20/4ECDC4/000000?text=+) `#4ECDC4` | Sekundärfarbe (Türkis) |
| ![#228B22](https://via.placeholder.com/20/228B22/000000?text=+) `#228B22` | Grüntee |
| ![#FF6347](https://via.placeholder.com/20/FF6347/000000?text=+) `#FF6347` | Akzentfarbe |
| ![#28a745](https://via.placeholder.com/20/28a745/000000?text=+) `#28a745` | Erfolg (Grün) |
### Responsive Design
- ✅ Desktop (ab 1200px)
- ✅ Tablet (768px - 1199px)
- ✅ Mobile (unter 768px)
- ✅ Kleine Geräte (unter 480px)
---
## 💡 Tipps & Tricks
### Daten sichern (Backup)
**Option 1: Automatisch (Nextcloud)**
- Die Daten werden automatisch in deiner Nextcloud gespeichert
- Backups werden im `/TeeTracker/backup/` Verzeichnis erstellt
**Option 2: Manuell (Export)**
1. Gehe zu **Einstellungen → Datenverwaltung**
2. Klicke auf **📤 Daten exportieren**
3. Speichere die JSON-Datei an einem sicheren Ort
### Daten wiederherstellen (Restore)
**Option 1: Automatisch (Nextcloud)**
- Einfach die App auf einem neuen Gerät öffnen
- Die Daten werden automatisch von Nextcloud geladen
**Option 2: Manuell (Import)**
1. Gehe zu **Einstellungen → Datenverwaltung**
2. Klicke auf **📥 Daten importieren**
3. Füge deine exportierten Daten ein oder lade die JSON-Datei hoch
4. Wähle, ob du die Daten **ersetzen** oder **zusammenführen** möchtest
### Daten zurücksetzen
Falls du von vorne beginnen möchtest:
1. Gehe zu **Einstellungen → Datenverwaltung**
2. Klicke auf **🗑️ Alle Daten löschen**
3. Bestätige die Aktion
**Achtung:** Dieser Vorgang kann nicht rückgängig gemacht werden!
### Nextcloud-Verbindung prüfen
Falls die Synchronisation nicht funktioniert:
1. Gehe zu **Einstellungen → Nextcloud-Synchronisation**
2. Klicke auf **🔍 Verbindung testen**
3. Prüfe die Fehlermeldung und korrigiere deine Eingaben
---
## 🔧 Problembehebung
### ❌ Verbindung zu Nextcloud fehlgeschlagen
**Mögliche Ursachen:**
- Falsche URL (muss mit `https://` beginnen)
- Falscher Benutzername oder Passwort
- Nextcloud ist nicht erreichbar
- WebDAV ist deaktiviert (standardmäßig aktiv)
- CORS-Probleme (Browser-Beschränkungen)
**Lösungen:**
1. Prüfe, ob du dich manuell in Nextcloud einloggen kannst
2. Teste die WebDAV-URL direkt im Browser:
```
https://wralto.org/nextcloud3/remote.php/dav/
```
3. Erstelle ein neues App-Passwort in Nextcloud
4. Versuche einen anderen Browser
5. Prüfe die Browser-Konsole (F12 → Console) auf Fehler
### ❌ Daten werden nicht synchronisiert
**Mögliche Ursachen:**
- Nextcloud ist offline
- Browser blockiert die Verbindung
- Zu viele Anfragen in kurzer Zeit
**Lösungen:**
1. Prüfe deine Internetverbindung
2. Lade die Seite neu
3. Warte einige Minuten und versuche es erneut
4. Prüfe die Browser-Konsole auf Fehler
5. Versuche, die Daten manuell zu exportieren/importieren
### ❌ Daten sind verschwunden
**Keine Sorge!** Die Daten sind an mehreren Orten gespeichert:
1. **Nextcloud** (falls verbunden)
2. **localStorage** (Fallback)
**Lösungen:**
1. Lade die Seite neu
2. Prüfe, ob du mit einem anderen Gerät/Browser verbunden bist
3. Gehe zu **Einstellungen → Daten exportieren** und sichere deine Daten
4. Falls nötig: Importiere deine exportierten Daten
---
## 🤝 Mitwirken
Beiträge sind willkommen! Wenn du Ideen für Verbesserungen hast oder Fehler findest:
1. Fork das Repository
2. Erstelle einen neuen Branch (`git checkout -b feature/amazing-feature`)
3. Commit deine Änderungen (`git commit -m 'Add amazing feature'`)
4. Push zum Branch (`git push origin feature/amazing-feature`)
5. Öffne einen Pull Request
---
## 📜 Lizenz
Dieses Projekt steht unter der **MIT License** sieh die [LICENSE](LICENSE) Datei für Details.
---
## 🙏 Danksagung
- [Chart.js](https://www.chartjs.org/) Für die tollen Diagramme
- [Nextcloud](https://nextcloud.com/) Für die sichere Cloud-Speicherung
- Alle Tee-Liebhaber da draußen! ☕🍵
---
## 📞 Kontakt & Support
Fragen oder Feedback? Öffne einfach ein [Issue](https://github.com/trevor1969/teatracker/issues) oder einen [Pull Request](https://github.com/trevor1969/teatracker/pulls).
---
## 🎉 Changelog
### 🆕 Neueste Änderungen
- **🌐 Nextcloud-Integration** Plattformübergreifende Synchronisation via WebDAV
- **⚙️ Einstellungen-Tab** Nextcloud-Konfiguration, Daten-Export/Import
- **🌱 Bio-Checkbox** Kennzeichnung für Bio-Tees
- **📅 Zeitraum "Heute"** Filter für aktuelle Tagesdaten in Statistiken
- **📝 Letzte 10 Einträge** Anzeige auf der Tracken-Seite
### 📅 Versionshistorie
| Version | Datum | Änderungen |
|---------|-------|-----------|
| 1.2.0 | Juni 2024 | Nextcloud-Integration, Einstellungen-Tab, Bio-Checkbox, "Heute"-Filter, letzte Einträge |
| 1.1.0 | Juni 2024 | Bio-Checkbox, "Heute"-Zeitraum, letzte 10 Einträge auf Tracken-Seite |
| 1.0.0 | Juni 2024 | Erste Version mit Dashboard, Tee-Verwaltung, Tracking, Statistiken |
---
**Viel Spaß beim Tee-Tracken!** 🍵✨
*Made with ❤️ and JavaScript*