chore: remove duplicate social-preview.png and clean up BACKLOG.md
- Delete root social-preview.png (identical copy of docs/social-preview.png, only the docs/ version is referenced in README) - Consolidate BACKLOG.md: all 10 entries were completed, compress into a reference table and clear the active section for future use - Delete prompt-i18n.md (untracked, i18n fully shipped in v0.5.0) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+16
-121
@@ -2,132 +2,27 @@
|
|||||||
|
|
||||||
Feature-Requests und geplante Erweiterungen. Einträge hier werden **nicht** implementiert bis sie explizit priorisiert und in einen Release-Branch überführt werden.
|
Feature-Requests und geplante Erweiterungen. Einträge hier werden **nicht** implementiert bis sie explizit priorisiert und in einen Release-Branch überführt werden.
|
||||||
|
|
||||||
---
|
Neue Vorschläge? → [Issue öffnen](https://github.com/ulsklyc/oikos/issues/new?template=feature_request.md) oder hier eintragen.
|
||||||
|
|
||||||
## Priorität: Hoch (SPEC-Lücken)
|
|
||||||
|
|
||||||
### BL-01 — Kalender: Wiederkehrende Events werden nicht expandiert
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.3.0)
|
|
||||||
**Aufwand:** M (3–5 Tage)
|
|
||||||
|
|
||||||
Das Datenmodell speichert `recurrence_rule` (iCal RRULE) für Kalender-Events. Der `recurrence.js`-Service mit `nextOccurrence()` existiert und wird in Tasks genutzt. Im Kalender-Route (`server/routes/calendar.js`) fehlt jedoch die Expansion: Beim Abruf der Events werden Wiederholungsinstanzen nicht generiert. Wiederkehrende Termine erscheinen daher nur einmal (beim Originaldatum).
|
|
||||||
|
|
||||||
**Akzeptanzkriterien:**
|
|
||||||
- GET `/api/v1/calendar` expandiert RRULE-Events im angefragten Zeitfenster
|
|
||||||
- Instanzen erben Farbe, Titel, Beschreibung des Original-Events
|
|
||||||
- In der UI sind Wiederholungs-Instanzen mit einem kleinen Repeat-Icon gekennzeichnet
|
|
||||||
- Einzelne Instanz kann bearbeitet werden (Ausnahme), Serie bleibt unberührt
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### BL-02 — Budget: Monatsvergleich (aktuell vs. Vormonat)
|
*Aktuell keine offenen Einträge.*
|
||||||
|
|
||||||
**Status:** Erledigt (v0.3.0)
|
|
||||||
**Aufwand:** S (1–2 Tage)
|
|
||||||
|
|
||||||
SPEC: „Monatsvergleich (aktuell vs. Vormonat)". Derzeit zeigt die Budget-Seite nur den aktuellen Monat. Es fehlen API-Endpunkt und UI-Komponente für den Vergleich.
|
|
||||||
|
|
||||||
**Akzeptanzkriterien:**
|
|
||||||
- Monatsübersicht zeigt Einnahmen/Ausgaben des Vormonats als Vergleichswerte (Trend-Pfeile oder %-Differenz)
|
|
||||||
- Keine zusätzliche Seite — inline im bestehenden Budget-Header
|
|
||||||
- Server: GET `/api/v1/budget?month=YYYY-MM` gibt bereits Monatsdaten zurück; Vormonat kann mit einem zweiten Call oder als optionaler `compare`-Parameter geholt werden
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### BL-03 — Essensplan: Drag & Drop zwischen Slots und Tagen
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.3.0)
|
|
||||||
**Aufwand:** M (2–4 Tage)
|
|
||||||
|
|
||||||
SPEC: „Drag & Drop zwischen Tagen/Slots". Die Wochenansicht zeigt Mahlzeit-Karten aber unterstützt kein Drag & Drop. Mahlzeiten können nur gelöscht und neu angelegt, nicht verschoben werden.
|
|
||||||
|
|
||||||
**Akzeptanzkriterien:**
|
|
||||||
- Mahlzeit-Karte ist draggable
|
|
||||||
- Drop auf leeren Slot verschiebt die Mahlzeit (PUT `/api/v1/meals/:id` mit neuem `date` + `meal_type`)
|
|
||||||
- Drop auf belegten Slot: Swap oder Ablehnung mit visuellem Feedback
|
|
||||||
- Touch-Support (pointer events, kein reines HTML5 Drag API)
|
|
||||||
- Reduced-motion: bei `prefers-reduced-motion` kein Animations-Feedback, Aktion trotzdem möglich
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Priorität: Mittel
|
|
||||||
|
|
||||||
### BL-04 — Kalender-Sync: Settings-UI vollständig verdrahten
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.3.0)
|
|
||||||
**Aufwand:** M (2–3 Tage)
|
|
||||||
|
|
||||||
Die Sync-Services `server/services/google-calendar.js` und `server/services/apple-calendar.js` sind implementiert (~300 Zeilen je). Das Settings-UI in `public/pages/settings.js` zeigt die Verbindungs-Buttons. Unklar ob der komplette OAuth-Flow (Redirect → Callback → Token-Speicherung → Auto-Sync-Intervall) end-to-end getestet und fehlerfrei ist.
|
|
||||||
|
|
||||||
**Akzeptanzkriterien:**
|
|
||||||
- Google-OAuth-Flow: Verbinden → Callback → Token gespeichert → Status in Settings zeigt „Verbunden"
|
|
||||||
- Apple CalDAV: Credentials-Formular → Verbindungstest → Fehleranzeige wenn Credentials falsch
|
|
||||||
- Auto-Sync alle 15 min (konfigurierbar) läuft als Hintergrund-Job
|
|
||||||
- Konfliktstrategie: externes Event gewinnt (wie in SPEC)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### BL-05 — Budget: Wiederkehrende Buchungen automatisch generieren
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.3.0)
|
|
||||||
**Aufwand:** S (1–2 Tage)
|
|
||||||
|
|
||||||
Das Budget-Formular hat eine „Wiederkehrend"-Checkbox und speichert `is_recurring = 1`. Es fehlt jedoch die automatische Generierung der Folgebuchungen. Derzeit muss der Nutzer jede Buchung manuell eintragen.
|
|
||||||
|
|
||||||
**Akzeptanzkriterien:**
|
|
||||||
- Beim Laden des Monats prüft der Server, ob fällige Wiederholungsbuchungen fehlen und legt sie automatisch an (analog zu Tasks)
|
|
||||||
- Oder: expliziter „Generieren"-Button im UI mit Vorschau
|
|
||||||
- Nutzer kann einzelne generierte Instanz löschen ohne die Serie zu löschen
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### BL-06 — Shopping: Schnell-Add Autocomplete von lokalem Verlauf
|
|
||||||
|
|
||||||
**Status:** Erledigt (bereits vollständig implementiert)
|
|
||||||
**Aufwand:** XS
|
|
||||||
|
|
||||||
`shopping.js` ruft `/api/v1/shopping/suggestions?q=...` auf. Prüfen ob der API-Endpunkt auf Server-Seite existiert und korrekt auf die `shopping_items`-Historie zugreift. Falls ja, Status auf „Fertig" setzen.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Priorität: Niedrig / Ideen
|
|
||||||
|
|
||||||
### BL-07 — Notizen: Volltextsuche / Filter
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.4.0)
|
|
||||||
|
|
||||||
Derzeit keine Suchfunktion in der Pinnwand. Die Notizen liegen im State, eine Client-seitige Filterleiste wäre ohne API-Änderung machbar.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### BL-08 — Dashboard: Wetter-Widget Refresh
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.4.0)
|
|
||||||
|
|
||||||
Wetter-Widget lädt beim Seitenaufruf und hat keinen manuellen Refresh-Button. Bei langem Tab-Offenbleiben können die Daten veralten. Ein 30-Minuten-Interval oder ein Refresh-Icon wäre sinnvoll (SPEC erwähnt „Refresh 30min" implizit).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### BL-09 — Kontakte: vCard-Import / -Export
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.4.0)
|
|
||||||
|
|
||||||
Nicht im SPEC, aber naheliegend: `.vcf`-Export eines Kontakts, Import aus vCard für Erstbefüllung.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### BL-10 — PWA: Offline-Fallback für kritische Seiten
|
|
||||||
|
|
||||||
**Status:** Erledigt (v0.4.0)
|
|
||||||
|
|
||||||
Der Service Worker cached aktuell den App-Shell. Bei Offline-Nutzung fehlt eine sinnvolle Fallback-Seite mit dem Hinweis auf fehlende Verbindung und einem „Wiederholen"-Button.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Erledigte Features (Referenz)
|
## Erledigte Features (Referenz)
|
||||||
|
|
||||||
| Feature | Version |
|
| ID | Feature | Version |
|
||||||
|---------|---------|
|
|----|---------|---------|
|
||||||
| UX Polish (Animationen, Bottom Sheet, FAB, Validierung, Stagger, Vibration) | v0.2.0 |
|
| BL-01 | Kalender: Wiederkehrende Events expandieren (RRULE) | v0.3.0 |
|
||||||
| Event-Listener-Leaks, CSS-Lücken, Modal-Tests | v0.2.1 |
|
| BL-02 | Budget: Monatsvergleich (aktuell vs. Vormonat) | v0.3.0 |
|
||||||
|
| BL-03 | Essensplan: Drag & Drop zwischen Slots und Tagen | v0.3.0 |
|
||||||
|
| BL-04 | Kalender-Sync: Settings-UI vollständig verdrahten | v0.3.0 |
|
||||||
|
| BL-05 | Budget: Wiederkehrende Buchungen automatisch generieren | v0.3.0 |
|
||||||
|
| BL-06 | Shopping: Schnell-Add Autocomplete | v0.3.0 |
|
||||||
|
| BL-07 | Notizen: Volltextsuche / Filter | v0.4.0 |
|
||||||
|
| BL-08 | Dashboard: Wetter-Widget Refresh | v0.4.0 |
|
||||||
|
| BL-09 | Kontakte: vCard-Import / -Export | v0.4.0 |
|
||||||
|
| BL-10 | PWA: Offline-Fallback für kritische Seiten | v0.4.0 |
|
||||||
|
| — | UX Polish (Animationen, Bottom Sheet, FAB, Stagger, Vibration) | v0.2.0 |
|
||||||
|
| — | Event-Listener-Leaks, CSS-Lücken, Modal-Tests | v0.2.1 |
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 348 KiB |
Reference in New Issue
Block a user