Files
stechuhr3/mobile-app
Torsten Schulz (local) 328bc9e776 Add account deletion feature and privacy section
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.
2026-05-15 11:20:08 +02:00
..

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/me beim App-Start).
  • Login-Oberfläche mit den bestehenden Tc*-Widgets; nach Anmeldung die Phase1-Demo-Shell mit echtem Benutzernamen und rollenbasierter Navigation (Admin-Zusatzmenü nur bei role == 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.vue und StatusBox.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