managarten/apps/contacts/docs/CLEANUP_PLAN.md
Till-JS 437d612e81 ♻️ refactor(contacts): remove statistics, network view and session storage; implement demo mode
- Remove statistics feature (stores, routes, ~560 LOC)
- Remove network view with D3.js graph (~1,100 LOC)
- Remove session-based contact storage
- Add demo contacts for unauthenticated users (10 sample contacts)
- Add auth gate prompts for create/edit/delete/favorite actions
- Update layout with Demo-Modus banner and event handling
- ~1,760 lines of code removed for simpler, cleaner codebase

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:12:19 +01:00

100 lines
3.1 KiB
Markdown

# Contacts App - Cleanup Plan
Dieser Plan dokumentiert Features und Code, die überdurchschnittlich viel Komplexität erzeugen bei geringem Nutzen. Ziel ist eine schlankere, wartbarere Codebase.
## Status-Legende
- ✅ Erledigt
- 🔄 In Bearbeitung
- ⏳ Geplant
- ❌ Abgelehnt
---
## Geplante Aufräumarbeiten
### Priorität 1: Quick Wins (Hoher ROI)
#### ✅ 1.1 Statistiken entfernen
**Status:** Erledigt
**Geschätzte Ersparnis:** ~560 Zeilen
**Komplexität:** MITTEL | **Nutzen:** NIEDRIG
**Beschreibung:**
Analytics-Dashboard mit Activity Heatmap, Trend Charts, Donut Charts. Geringe Nutzung bei hoher Komplexität.
**Entfernte Dateien:**
- `src/lib/stores/statistics.svelte.ts` (~276 Zeilen)
- `src/routes/(app)/statistics/+page.svelte` (~282 Zeilen)
**Geänderte Dateien:**
- `src/routes/(app)/+layout.svelte` - Nav-Item entfernt
---
#### ✅ 1.2 Network View entfernen
**Status:** Erledigt
**Geschätzte Ersparnis:** ~1.100 Zeilen
**Komplexität:** HOCH | **Nutzen:** NIEDRIG
**Beschreibung:**
D3.js Force-Directed Graph zur Visualisierung von Kontakt-Beziehungen. Komplex (Force Simulation, Node Dragging, Filtering) aber wenig genutzt.
**Entfernte Dateien:**
- `src/lib/stores/network.svelte.ts` (~540 Zeilen)
- `src/lib/api/network.ts` (~50 Zeilen)
- `src/lib/components/network/NetworkGraph.svelte`
- `src/lib/components/network/NetworkControls.svelte`
- `src/lib/components/views/ContactNetworkView.svelte`
**Geänderte Dateien:**
- `src/lib/components/ContactList.svelte` - Network-View entfernt
- `src/lib/components/ContactsToolbarContent.svelte` - Network-Controls entfernt
---
#### ✅ 1.3 Session Contacts → Demo-Modus
**Status:** Erledigt
**Geschätzte Ersparnis:** ~100 Zeilen (netto)
**Komplexität:** MITTEL | **Nutzen:** HOCH (bessere UX)
**Beschreibung:**
Wie bei Calendar/Todo: Session-basiertes Kontakt-Management durch statischen Demo-Modus ersetzen. Statt frustrierender UX (Kontakte verschwinden bei Tab-Schließung) zeigt die App Beispiel-Kontakte.
**Entfernte Dateien:**
- `src/lib/stores/session-contacts.svelte.ts` (~236 Zeilen)
**Neue Dateien:**
- `src/lib/data/demo-contacts.ts` (~215 Zeilen) - 10 Demo-Kontakte
**Geänderte Dateien:**
- `src/lib/stores/contacts.svelte.ts` - Demo-Kontakte statt Session-Logik
- `src/routes/(app)/+layout.svelte` - Demo-Banner, Auth-Gate Events
- `src/lib/components/ContactList.svelte` - Auth-Gate bei Favoriten
- `src/lib/components/ContactDetailModal.svelte` - Auth-Gate bei Demo-Kontakten
- `src/lib/components/NewContactModal.svelte` - Auth-Gate bei Erstellung
- `src/lib/components/AuthGateModal.svelte` - Angepasste Demo-Modus Texte
---
## Zusammenfassung
| Phase | Features | LOC Ersparnis | Status |
|-------|----------|---------------|--------|
| 🟢 Prio 1.1 | Statistiken | ~560 | ✅ Erledigt |
| 🟢 Prio 1.2 | Network View | ~1.100 | ✅ Erledigt |
| 🟢 Prio 1.3 | Sessions → Demo | ~100 | ✅ Erledigt |
| **Gesamt** | | **~1.760** | ✅ |
**Erreicht:** ~20% Code-Reduktion bei gleichem/besserem Nutzererlebnis
---
## Changelog
| Datum | Aktion | Commit |
|-------|--------|--------|
| 2026-01-28 | Statistiken, Network View, Session Contacts entfernt; Demo-Modus implementiert | - |