docs: ROADMAP.md angelegt – alle Features in Planung
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+139
@@ -0,0 +1,139 @@
|
||||
# TimeMaster – Roadmap
|
||||
|
||||
> Stand: Mai 2026 · Deployed: Dev `.137` · Prod `.164`
|
||||
|
||||
---
|
||||
|
||||
## ✅ Fertiggestellt
|
||||
|
||||
| Feature | Migration | Deployed |
|
||||
|---|---|---|
|
||||
| Auth, JWT, Rollen (5 Stufen), TOTP/2FA | 0001–0016 | ✅ |
|
||||
| Zeiterfassung (Stempel, Pausen, Genehmigung) | 0002 | ✅ |
|
||||
| Abwesenheiten (Urlaub, Genehmigung, Kalender) | 0003–0016 | ✅ |
|
||||
| Urlaubskonto (Grundurlaub, Sondertage, Resturlaub) | 0003–0016 | ✅ |
|
||||
| Kiosk-Modus (PIN, NFC, QR, Mitarbeiterliste) | 0018 | ✅ |
|
||||
| Personalnummer (Format, Auto-Modus, CSV-Import) | 0020 | ✅ |
|
||||
| Krankmeldung (Quick-Sick, Bradford-Faktor, AU-Pflicht) | 0022 | ✅ |
|
||||
| Busylight-Integration (Pull-Modus, per-Firma Token) | 0023 | ✅ |
|
||||
| Row Level Security (PostgreSQL RLS, Mandanten-Isolation) | 0024 | ✅ |
|
||||
| SSRF-Fix CalDAV (CALDAV_ALLOWED_CIDRS Whitelist) | 0026 | ✅ |
|
||||
| Mobile Stempelseite `/mobile` (PWA, Touch-optimiert) | 0027 | ✅ |
|
||||
| FZA-Lücken geschlossen (Overdraft-Schutz, Refund, Auto-Recalc) | 0028 | ✅ |
|
||||
| Sondervertretungs-Faktoren (×1.5, eigene HR-Seite) | 0029 | ✅ |
|
||||
| Audit-Log Backend + Frontend (COMPANY_ADMIN/SUPER_ADMIN) | — | ✅ |
|
||||
| §3b EStG Stunden-Report (Nacht/Wochenende/Feiertag) | — | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 🚧 In Planung
|
||||
|
||||
### Priorität 1 – Sicherheit & Infrastruktur
|
||||
|
||||
#### agent-08: Kiosk-Härtung (Ed25519-Signierung)
|
||||
**Warum:** Aktueller Token-Auth ist nicht MITM-resistent. Kein Produktiveinsatz ohne diese Absicherung.
|
||||
|
||||
- [ ] **Backend + CLI**: Ed25519-Verifizierung pro Request, `timemaster kiosk`-CLI (add/approve/revoke/rotate-key), Migration 0030
|
||||
- [ ] **Kiosk-Frontend**: ServiceWorker signiert alle Requests, WebCrypto `extractable: false`, IndexedDB Offline-Queue, Heartbeat
|
||||
- [ ] **Verwaltungs-Frontend**: KioskDevicesPage-Erweiterung (Status-Ampel, Fingerprint, Heartbeat-Timestamp), Health-Badge im Layout
|
||||
- [ ] *(Phase 2 später)* Anomalie-Detection (Frequenz-Threshold, IP-Sprung)
|
||||
|
||||
---
|
||||
|
||||
### Priorität 2 – Kernfunktionen
|
||||
|
||||
#### agent-02-zeiterfassung: Vollständige Zeiterfassung
|
||||
**Warum:** ArbZG-Prüfung, Überstundenkonto und Genehmigungsworkflow sind noch nicht vollständig abgebildet.
|
||||
|
||||
- [ ] Work Schedules (Arbeitspläne) mit Wochenstunden
|
||||
- [ ] ArbZG-Regeln: Max. 10h/Tag, Pause ab 6h/9h, 11h Mindestruhezeit
|
||||
- [ ] Überstunden-Konto: auto-Berechnung bei Genehmigung
|
||||
- [ ] Manuelle Zeiteinträge (mit Berechtigung)
|
||||
- [ ] Export: CSV · XLSX · PDF
|
||||
|
||||
#### agent-04-dashboard: Dashboards & Reports
|
||||
- [ ] Mitarbeiter-Dashboard (eigene KPIs: Arbeitszeit heute, Urlaubskonto, Überstunden)
|
||||
- [ ] Manager-Dashboard (Teamübersicht: wer ist heute da, wer fehlt, offene Anträge)
|
||||
- [ ] Admin-Dashboard (Firmen-KPIs: Auslastung, Fehlzeiten, Bradford-Heatmap)
|
||||
- [ ] Erweiterte Exports: PDF (WeasyPrint), XLSX (openpyxl)
|
||||
|
||||
---
|
||||
|
||||
### Priorität 3 – HR-Erweiterungen
|
||||
|
||||
#### Personalnummer Phase 2–5
|
||||
- [ ] `GET /users/by-personnel/{number}` – Lookup für externe Integrationen
|
||||
- [ ] CSV-Import-UI mit Validierungs-Vorschau
|
||||
- [ ] Personalnummer in allen Exports (CSV/XLSX/PDF)
|
||||
- [ ] Kiosk-Login per Personalnummer + PIN
|
||||
|
||||
#### Sondervertretungen – Erweiterungen
|
||||
- [ ] Jahresübersicht aller aktiven Zuweisungen
|
||||
- [ ] Bulk-Import via CSV (Spalten: Pers.-Nr., Von, Bis, Faktor, Ziel, Bezeichnung)
|
||||
- [ ] 🏅-Badge in Mitarbeiter-Tabelle (UsersPage) bei aktiver Zuweisung
|
||||
- [ ] Verknüpfung Payroll-Report ↔ Sondervertretungs-Seite
|
||||
|
||||
---
|
||||
|
||||
### Priorität 4 – Mobile & Kiosk
|
||||
|
||||
#### Android App (Flutter)
|
||||
**Warum:** Mitarbeiter ohne PC-Zugang brauchen eine native App für Zeiterfassung unterwegs.
|
||||
|
||||
- [ ] Flutter-App `mobile/` im Monorepo
|
||||
- [ ] Employee-only: Stempel In/Out/Pause, Tagesübersicht, Überstundenkonto
|
||||
- [ ] Offline-Modus: Hive-Queue, Auto-Sync bei Netzwerkwiederkehr
|
||||
- [ ] Direkt-APK (Sideloading, kein Play Store)
|
||||
- [ ] Konfigurierbarer Server-URL beim ersten Start
|
||||
|
||||
---
|
||||
|
||||
### Priorität 5 – Integrationen & Compliance
|
||||
|
||||
#### LDAP-Sync (agent-09, geplant)
|
||||
- [ ] Automatischer User-Sync aus Active Directory / OpenLDAP
|
||||
- [ ] Mapping: `employeeNumber` → Personalnummer, `department` → Abteilung
|
||||
- [ ] Konflikt-Handling: Personalnr.-Kollision → Fehler (kein Override)
|
||||
|
||||
#### CalDAV-Erweiterungen
|
||||
- [ ] Urlaubs-Events automatisch in Nextcloud-Kalender schreiben (bei Genehmigung)
|
||||
- [ ] Abwesenheits-Template mit Platzhalter `$personalnummer` und `$kuerzel`
|
||||
|
||||
#### DSGVO-Hilfsmittel
|
||||
- [ ] Datenexport pro Mitarbeiter (Art. 20 DSGVO)
|
||||
- [ ] Löschfristen-Konfiguration + automatische Anonymisierung alter Einträge
|
||||
|
||||
---
|
||||
|
||||
## 💡 Ideen-Backlog (nicht priorisiert)
|
||||
|
||||
| Idee | Notiz |
|
||||
|---|---|
|
||||
| Dienstplan-Modul | Schichtplanung mit Drag & Drop, Wochen-/Monatsansicht |
|
||||
| Lohnabrechnung-Export | DATEV-Format, Steuerberater-CSV mit §3b-Stunden |
|
||||
| Bereitschafts-Erfassung | Rufbereitschaft vs. Bereitschaftsdienst (25–95%-Quote) |
|
||||
| Slack/Teams-Integration | Abwesenheits-Notifications, Genehmigungs-Workflow im Chat |
|
||||
| Mehrsprachigkeit (i18n) | EN/FR/PL als erste Sprachen |
|
||||
| Multi-Mandanten-Admin | SUPER_ADMIN-Übersicht aller Firmen + Nutzung-KPIs |
|
||||
| Kiosk Anomalie-Detection | Frequenz-Threshold, Geo-Inkonsistenz, AuditLog-Alarm |
|
||||
|
||||
---
|
||||
|
||||
## Migrations-Übersicht
|
||||
|
||||
| Migration | Inhalt | Status |
|
||||
|---|---|---|
|
||||
| 0001–0016 | Auth, Users, Abwesenheiten, TOTP | ✅ deployed |
|
||||
| 0018 | Kiosk-Geräte | ✅ deployed |
|
||||
| 0019 | Manual-Entry-Berechtigung | ✅ deployed |
|
||||
| 0020 | Personalnummer | ✅ deployed |
|
||||
| 0021 | Kiosk-Security (mTLS-Vorstufe) | ✅ deployed |
|
||||
| 0022 | Krankmeldung-Konfiguration | ✅ deployed |
|
||||
| 0023 | Busylight-Token | ✅ deployed |
|
||||
| 0024 | Row Level Security | ✅ deployed |
|
||||
| 0025 | Kiosk NFC-UID | ✅ deployed |
|
||||
| 0026 | Security-Fixes (LDAP TLS, TOTP-Länge) | ✅ deployed |
|
||||
| 0027 | Mobile-Stamping | ✅ deployed |
|
||||
| 0028 | FZA-Konfiguration (Overdraft, Warnschwelle) | ✅ deployed |
|
||||
| 0029 | Sondervertretungs-Faktoren | ✅ deployed |
|
||||
| **0030** | Kiosk-Härtung Ed25519 | 🔜 agent-08 |
|
||||
Reference in New Issue
Block a user