patrickandClaude Sonnet 5 ffd972392c feat: QR-Code für Kiosk-Login anzeigen
Neuer KioskQrScreen (erreichbar über QR-Icon im HomeScreen-AppBar) fordert
über POST /kiosk/my-qr-token einen 5min gültigen, einmalig einlösbaren
Login-Token an und zeigt ihn als QR-Code (qr_flutter). Mitarbeiter scannt
ihn am Kiosk-Tablet statt PIN einzutippen. Live-Countdown, Neu-Erzeugen bei
Ablauf. v0.1.11+12.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
2026-09-10 14:53:56 +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%