patrickandClaude Sonnet 5 46cdcececd feat: Update-Hinweis beim App-Start
Ruft /static/downloads/version.txt vom konfigurierten Server ab und
vergleicht gegen kAppVersion. Bei Abweichung Hinweis-Banner auf HomeScreen
("Neue Version X verfügbar, installiert: Y"). Rein informativ, kein
Auto-Update (APK-Sideloading, kein Play-Store-Mechanismus verfügbar).
Fehler beim Check (offline, Server down) werden stillschweigend ignoriert.
v0.1.5+6.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
2026-09-10 00:05:34 +02:00
2026-09-10 00:05:34 +02:00

TimeMaster Mobile (Flutter)

Employee-only App: Login + Ein-/Ausstempeln + Pause. Gegen bestehende Backend-API (backend/app/routers/{auth,time_entries}.py).

Setup

cd mobile
flutter create . --platforms=android,ios   # generiert android/ios-Ordner (fehlen noch)
flutter pub get
flutter run

Kein flutter hier lokal verfügbar (kein SDK installiert) – pubspec.yaml + lib/ sind von Hand geschrieben, ungetestet. Vor erstem Start: flutter create . im mobile/-Ordner ausführen, damit android/, ios/ + Gradle/Xcode-Projekte entstehen (überschreibt lib/main.dart NICHT, da bereits vorhanden – bestehende Dateien bleiben).

Auth-Flow

  • POST /auth/login → bei totp_required: true zweiter Schritt POST /auth/totp/login
  • Access-Token in flutter_secure_storage, Refresh-Token läuft NUR als HttpOnly-Cookie (Backend gibt ihn nie im Body zurück) → persistente PersistCookieJar (cookie_jar/dio_cookie_manager) nötig, siehe lib/services/api_client.dart.
  • 401 → einmaliger Auto-Refresh via Cookie, danach Logout + Redirect (Redirect aktuell nicht verdrahtet – onUnauthorized-Callback ist vorbereitet, aber in main.dart noch nicht an Navigator gebunden – TODO).

Server-Adresse

Einstellbar im Login-Screen (Zahnrad oben rechts), landet in Secure Storage. Default zeigt auf Platzhalter-URL – vor erstem Test auf 137 oder 164 zeigen (https://<host>/api/v1).

Umfang aktuell

Nur Login + stamp-in/out + break-start/end + Status "heute". Kein Antrags- Workflow (Abwesenheit etc.), kein Offline-Modus, keine echte Android/iOS- Build-Config (android/ios-Ordner fehlen noch, siehe oben).

S
Description
No description provided
Readme
124 KiB
0 Stars 1 Watchers 0 Forks
Languages
Dart 99.6%
Kotlin 0.4%