Files
stechuhr3/mobile-app
Torsten Schulz (local) 99e439cb29 Update privacy information and increment mobile app version
Revise the privacy section in both the frontend and mobile app to include the correct address for data processing responsibility. Increment the mobile app version code to 8 and version name to 0.8.0-alpha7 to reflect these updates.
2026-05-15 11:30:37 +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