# DSGVO-Konformitäts-Checkliste für Trainingstagebuch

## Status: ⚠️ PRÜFUNG ERFORDERLICH

Diese Checkliste dokumentiert den aktuellen Stand der DSGVO-Konformität der Anwendung.

---

## 1. Datenschutzerklärung ✅ / ⚠️

### Status: ⚠️ Teilweise vorhanden, muss aktualisiert werden

**Vorhanden:**
- ✅ Datenschutzerklärung vorhanden (`/datenschutz`)
- ✅ Impressum vorhanden (`/impressum`)
- ✅ Verlinkung im Footer

**Fehlend/Verbesserungsbedarf:**
- ⚠️ MyTischtennis-Integration nicht erwähnt (Drittlandübermittlung?)
- ⚠️ Logging von API-Requests nicht erwähnt
- ⚠️ Verschlüsselung von Mitgliederdaten nicht erwähnt
- ⚠️ Speicherdauer für Logs nicht konkretisiert
- ⚠️ Keine Informationen zu automatischer Löschung

---

## 2. Einwilligungen ⚠️

### Status: ⚠️ Teilweise vorhanden

**Vorhanden:**
- ✅ `picsInInternetAllowed` bei Mitgliedern (Einwilligung für Fotos im Internet)
- ✅ MyTischtennis: `savePassword` und `autoUpdateRatings` (Einwilligungen)

**Fehlend/Verbesserungsbedarf:**
- ⚠️ Keine explizite Einwilligung bei Registrierung zur Datenschutzerklärung
- ⚠️ Keine Einwilligung für Logging von API-Requests
- ⚠️ Keine Einwilligung für Datenübertragung an MyTischtennis.de
- ⚠️ Keine Möglichkeit, Einwilligungen zu widerrufen (außer manuell)

---

## 3. Löschrechte (Art. 17 DSGVO) ⚠️

### Status: ⚠️ Teilweise implementiert

**Vorhanden:**
- ✅ DELETE-Endpunkte für viele Ressourcen (Member, Tournament, etc.)
- ✅ MyTischtennis-Account kann gelöscht werden

**Fehlend/Verbesserungsbedarf:**
- ❌ **KRITISCH:** Kein Endpunkt zum vollständigen Löschen eines User-Accounts
- ❌ **KRITISCH:** Keine automatische Löschung aller zugehörigen Daten (Cascade-Delete)
- ❌ Keine Löschung von Logs nach Ablauf der Speicherdauer
- ⚠️ Keine Anonymisierung statt Löschung (falls gesetzliche Aufbewahrungspflichten bestehen)
- ⚠️ Keine Bestätigung vor Löschung kritischer Daten

**Empfehlung:**
- Implementiere `/api/user/delete` Endpunkt
- Implementiere automatische Löschung aller zugehörigen Daten:
  - UserClub-Einträge
  - MyTischtennis-Account
  - Alle Logs (nach Anonymisierung)
  - Alle Mitglieder, die nur diesem User zugeordnet sind
- Implementiere automatische Löschung von Logs nach 90 Tagen

---

## 4. Auskunftsrechte (Art. 15 DSGVO) ❌

### Status: ❌ Nicht implementiert

**Fehlend:**
- ❌ **KRITISCH:** Kein Endpunkt zur Auskunft über gespeicherte Daten
- ❌ Keine Übersicht über alle personenbezogenen Daten eines Users
- ❌ Keine Übersicht über alle Mitgliederdaten
- ❌ Keine Übersicht über Logs, die einen User betreffen

**Empfehlung:**
- Implementiere `/api/user/data-export` Endpunkt
- Exportiere alle Daten in strukturiertem Format (JSON)
- Inkludiere:
  - User-Daten
  - Vereinszugehörigkeiten
  - Mitgliederdaten (falls User Zugriff hat)
  - Logs
  - MyTischtennis-Daten

---

## 5. Datenportabilität (Art. 20 DSGVO) ❌

### Status: ❌ Nicht implementiert

**Fehlend:**
- ❌ **KRITISCH:** Kein Export in maschinenlesbarem Format
- ❌ Keine JSON/XML-Export-Funktion
- ⚠️ PDF-Export für Trainingstage vorhanden, aber nicht für alle Daten

**Empfehlung:**
- Implementiere `/api/user/data-export` mit JSON-Format
- Implementiere Export für:
  - Alle eigenen Daten
  - Alle Mitgliederdaten (falls berechtigt)
  - Alle Trainingsdaten
  - Alle Turnierdaten

---

## 6. Verschlüsselung ✅ / ⚠️

### Status: ✅ Gut implementiert

**Vorhanden:**
- ✅ AES-256-CBC Verschlüsselung für Mitgliederdaten:
  - firstName, lastName
  - birthDate
  - phone, street, city, postalCode
  - email
  - notes (Participant)
- ✅ Passwörter werden mit bcrypt gehasht
- ✅ HTTPS für alle Verbindungen

**Verbesserungsbedarf:**
- ⚠️ Verschlüsselungsschlüssel sollte in separater, sicherer Konfiguration sein
- ✅ **BEHOBEN:** MyTischtennis-Daten werden jetzt vollständig verschlüsselt (E-Mail, Zugriffstoken, Refresh-Token, Cookie, Benutzerdaten, Vereinsinformationen)
- ⚠️ Keine Verschlüsselung für Logs (können personenbezogene Daten enthalten)

---

## 7. Logging ⚠️

### Status: ⚠️ Verbesserungsbedarf

**Vorhanden:**
- ✅ Aktivitäts-Logging (`log` Tabelle) - protokolliert wichtige Aktionen
- ✅ Server-Logs - Standard-Server-Logs für Fehlerbehebung
- ✅ **ENTFERNT:** API-Logging für MyTischtennis-Requests wurde deaktiviert

**Probleme:**
- ✅ **BEHOBEN:** API-Logging für MyTischtennis-Requests wurde komplett entfernt (keine personenbezogenen Daten mehr in API-Logs)
- ⚠️ Keine automatische Löschung von Aktivitätslogs (noch zu implementieren)
- ✅ **BEHOBEN:** In Datenschutzerklärung dokumentiert, was geloggt wird

**Empfehlung:**
- ⚠️ Implementiere automatische Löschung von Aktivitätslogs nach angemessener Frist (noch ausstehend)

---

## 8. MyTischtennis-Integration ⚠️

### Status: ⚠️ Verbesserungsbedarf

**Vorhanden:**
- ✅ Verschlüsselung von Passwörtern
- ✅ Einwilligungen (`savePassword`, `autoUpdateRatings`)
- ✅ DELETE-Endpunkt für Account

**Probleme:**
- ✅ **BEHOBEN:** Drittlandübermittlung in Datenschutzerklärung erwähnt
- ⚠️ Keine explizite Einwilligung für Datenübertragung an MyTischtennis.de
- ✅ **BEHOBEN:** Informationen über Datenschutz bei MyTischtennis.de in Datenschutzerklärung
- ✅ **BEHOBEN:** Alle MyTischtennis-Daten werden jetzt verschlüsselt gespeichert

**Empfehlung:**
- Aktualisiere Datenschutzerklärung:
  - Erwähne MyTischtennis-Integration
  - Erkläre, welche Daten übertragen werden
  - Verweise auf Datenschutzerklärung von MyTischtennis.de
  - Erkläre Rechtsgrundlage (Einwilligung)
- Implementiere explizite Einwilligung bei Einrichtung der Integration
- Verschlüssele auch Zugriffstoken

---

## 9. Cookies & Local Storage ✅

### Status: ✅ Konform

**Vorhanden:**
- ✅ Nur technisch notwendige Cookies/Storage:
  - Session-Token (Session Storage)
  - Username, Clubs, Permissions (Local Storage)
- ✅ Keine Tracking-Cookies
- ✅ Keine Werbe-Cookies
- ✅ Dokumentiert in Datenschutzerklärung

**Hinweis:**
- Local Storage wird für persistente Daten verwendet (Clubs, Permissions)
- Dies ist technisch notwendig und DSGVO-konform

---

## 10. Berechtigungssystem ✅

### Status: ✅ Gut implementiert

**Vorhanden:**
- ✅ Rollenbasierte Zugriffe (Admin, Trainer, Mannschaftsführer, Mitglied)
- ✅ Individuelle Berechtigungen pro Ressource
- ✅ Transparente Zugriffskontrolle
- ✅ Logging von Aktivitäten

**Hinweis:**
- Berechtigungssystem ist DSGVO-konform
- Ermöglicht Datenminimierung (Zugriff nur auf notwendige Daten)

---

## 11. Datenminimierung ⚠️

### Status: ⚠️ Teilweise konform

**Vorhanden:**
- ✅ Nur notwendige Daten werden gespeichert
- ✅ Berechtigungssystem ermöglicht minimale Datenzugriffe

**Verbesserungsbedarf:**
- ⚠️ Logs enthalten möglicherweise zu viele Daten (Request/Response-Bodies)
- ⚠️ Keine automatische Löschung alter Daten
- ⚠️ Keine Option, Daten zu anonymisieren statt zu löschen

---

## 12. Technische und organisatorische Maßnahmen (TOM) ✅ / ⚠️

### Status: ✅ Gut, aber verbesserungsbedürftig

**Vorhanden:**
- ✅ Verschlüsselung sensibler Daten
- ✅ HTTPS für alle Verbindungen
- ✅ Passwort-Hashing (bcrypt)
- ✅ Authentifizierung und Autorisierung
- ✅ Berechtigungssystem

**Verbesserungsbedarf:**
- ⚠️ Keine Dokumentation der TOM
- ⚠️ Keine regelmäßigen Sicherheitsupdates dokumentiert
- ⚠️ Keine Backup-Strategie dokumentiert
- ⚠️ Keine Notfallpläne dokumentiert

---

## 13. Auftragsverarbeitung ⚠️

### Status: ⚠️ Nicht dokumentiert

**Fehlend:**
- ⚠️ Keine Informationen über Hosting-Provider
- ⚠️ Keine Informationen über Auftragsverarbeitungsverträge (AVV)
- ⚠️ Keine Informationen über Subunternehmer

**Empfehlung:**
- Dokumentiere alle Auftragsverarbeiter (Hosting, etc.)
- Erwähne in Datenschutzerklärung, dass AVV abgeschlossen wurden

---

## 14. Betroffenenrechte - Umsetzung ❌

### Status: ❌ Nicht vollständig implementiert

**Fehlend:**
- ❌ **KRITISCH:** Kein Endpunkt für Auskunft (Art. 15)
- ❌ **KRITISCH:** Kein Endpunkt für Löschung (Art. 17)
- ❌ **KRITISCH:** Kein Endpunkt für Datenexport (Art. 20)
- ❌ Kein Endpunkt für Berichtigung (Art. 16) - teilweise vorhanden über normale Edit-Endpunkte
- ❌ Kein Endpunkt für Einschränkung (Art. 18)
- ❌ Kein Endpunkt für Widerspruch (Art. 21)

**Empfehlung:**
- Implementiere zentrale Endpunkte für alle Betroffenenrechte:
  - `GET /api/user/rights/information` - Auskunft
  - `DELETE /api/user/rights/deletion` - Löschung
  - `GET /api/user/rights/export` - Datenexport
  - `PUT /api/user/rights/restriction` - Einschränkung
  - `POST /api/user/rights/objection` - Widerspruch

---

## 15. Kontakt für Datenschutz ✅

### Status: ✅ Vorhanden

**Vorhanden:**
- ✅ E-Mail-Adresse in Datenschutzerklärung: tsschulz@tsschulz.de
- ✅ Vollständige Anschrift im Impressum

---

## Zusammenfassung

### ✅ Gut implementiert:
1. Verschlüsselung sensibler Daten
2. HTTPS
3. Berechtigungssystem
4. Cookies/Local Storage (nur technisch notwendig)
5. Datenschutzerklärung vorhanden

### ⚠️ Verbesserungsbedarf:
1. Datenschutzerklärung aktualisieren (MyTischtennis, Logging)
2. Logging von personenbezogenen Daten reduzieren/anonymisieren
3. Automatische Löschung von Logs implementieren
4. MyTischtennis-Integration in Datenschutzerklärung erwähnen

### ❌ Kritisch - Muss implementiert werden:
1. **Löschrechte-API** (Art. 17 DSGVO)
2. **Auskunftsrechte-API** (Art. 15 DSGVO)
3. **Datenexport-API** (Art. 20 DSGVO)
4. **Automatische Löschung von Logs** nach Retention-Periode

---

## Prioritäten

### Sofort (vor Live-Betrieb):
1. Datenschutzerklärung aktualisieren
2. Löschrechte-API implementieren
3. Auskunftsrechte-API implementieren
4. Datenexport-API implementieren

### Kurzfristig (innerhalb 1 Monat):
1. Automatische Löschung von Logs implementieren
2. Logging von personenbezogenen Daten reduzieren/anonymisieren
3. MyTischtennis-Integration in Datenschutzerklärung dokumentieren

### Mittelfristig (innerhalb 3 Monate):
1. Einwilligungsmanagement implementieren
2. TOM dokumentieren
3. Auftragsverarbeitung dokumentieren

---

## Nächste Schritte

1. ✅ Diese Checkliste erstellen
2. ⏳ Datenschutzerklärung aktualisieren
3. ⏳ Löschrechte-API implementieren
4. ⏳ Auskunftsrechte-API implementieren
5. ⏳ Datenexport-API implementieren
6. ⏳ Logging verbessern

