Implement a new endpoint for account deletion in AuthController, allowing users to permanently delete their accounts and associated data. Update AuthService to handle account deletion logic, including confirmation checks and data removal from the database. Enhance frontend with new views and components for account deletion and privacy information, including links in the side menu and profile view. Update mobile app to support account deletion and privacy sections, improving user experience and compliance with data protection standards.
TimeClock Android Frontend
Phase 1 enthält die native Android-Grundapp und die gemeinsamen Compose-Design-Widgets.
Phase 2 (API- und Auth-Fundament) ist umgesetzt:
- Konfigurierbare API-Basis-URL (
BuildConfig.API_BASE_URL), Standard:https://stechuhr3.tsschulz.de/api. - HTTP mit OkHttp, JSON mit kotlinx.serialization, normalisierte Fehler (
ApiException). - JWT in EncryptedSharedPreferences (AndroidX Security Crypto), nicht im Klartext.
- Login (
POST /auth/login), Logout (POST /auth/logout), Session-Wiederherstellung (GET /auth/mebeim App-Start). - Login-Oberfläche mit den bestehenden
Tc*-Widgets; nach Anmeldung die Phase‑1-Demo-Shell mit echtem Benutzernamen und rollenbasierter Navigation (Admin-Zusatzmenü nur beirole == 1). - Debug-Build: Cleartext-HTTP erlaubt (
composeApp/src/debug/AndroidManifest.xml) für lokales Testen.
Phase 3 (Kern-Zeiterfassung) ist umgesetzt:
- Echter aktueller Status über
GET /time-entries/current-state. - Stempelaktionen über
POST /time-entries/clock. - Laufender Eintrag über
GET /time-entries/running. - StatusBox mit echten Zeiten und Aktionsbuttons.
- Tages-/Wochenwerte über
GET /time-entries/stats/summary. - Wochenübersicht über
GET /week-overview?weekOffset=.... - Automatische Status-Aktualisierung alle 30 Sekunden nach Anmeldung.
Phase 4 (Buchungs-Workflows) ist umgesetzt:
- Zeitkorrekturen: Worklog-Einträge nach Datum, heutige Korrekturen, Erstellen und Löschen.
- Urlaub: Liste, Erstellen und Löschen.
- Krankheit: Krankheitstypen, Liste, Erstellen und Löschen.
- Arbeitstage: Jahresstatistik.
- Kalender: Monatsansicht mit Feiertag, Krankheit, Urlaub und Arbeitsstunden.
API-URL setzen
In mobile-app/local.properties (wird typischerweise nicht eingecheckt):
# Beispiel: lokales Backend im Emulator (Host-Rechner)
timeclock.api.baseUrl=http://10.0.2.2:3010/api
oder beim Gradle-Aufruf:
# Beispiel: lokales Backend statt Standard-Server
./gradlew :composeApp:assembleDebug -Ptimeclock.api.baseUrl=http://10.0.2.2:3010/api
Scope (Phase 1)
- Native Android-App unter
composeApp. - Web-inspiriertes Designsystem an
frontend/src/assets/main.css,App.vue,SideMenu.vueundStatusBox.vue. - Adaptive Shell: schmale Breiten mit Top-Bar und Bottom-Navigation, Tablet mit persistenter Seitennavigation.
- Nicht umgesetzte Einstellungs-/Admin-Screens bleiben vorerst Demo/Mock; StatusBox, Wochenübersicht und Buchungs-Workflows verwenden echte Backend-Daten.
Build
Aus diesem Verzeichnis:
./gradlew :composeApp:assembleDebug
Beispiel mit eigenem Gradle-Cache:
GRADLE_USER_HOME=/tmp/gradle-home ./gradlew :composeApp:assembleDebug --no-daemon