# Worksonar Mobile-App Roadmap

Strategischer Plan für die geplante native Mitarbeiter-App. Stand: Juni 2026.

---

## Phase 1 — Mobile-API-Fundament (✅ in v31 ausgeliefert)

**Ziel**: Backend-Vorbereitung. Jede native-App-Variante kann andocken.

- Migration `010_mobile_api.sql` (Tabellen `magic_links`, `device_registrations`)
- REST-API unter `/api/mobile/v1/...` (siehe [mobile-api.md](mobile-api.md))
- HMAC-signiertes JWT (HS256, 7 Tage Gültigkeit) ohne neue Dependency
- Magic-Link-Login per E-Mail (6-stelliger Code + Deep-Link-Token, 15 Min TTL)
- Drei Auth-Wege: Participant-Token / Access-Code (anonym) / E-Mail-Magic-Link
- Push-Token-Registrierung (FCM/APNs/Web-Push)
- Rate-Limiting für Auth-Endpoints (30/IP/Minute)
- CORS für Native-App-Origins offen, sonst restriktiv

**Nutzen auch ohne App**: Dritt-Integrationen (Slack-Bot, Teams-App, MS Power
Apps). Premium-Verkaufsargument „API auch mobile-ready".

---

## Phase 2 — Native App MVP (geplant, separates Projekt)

**Tech-Stack (Empfehlung)**: React Native + Expo SDK 52+, TypeScript

**Begründung**:
- Eine Codebasis für iOS + Android
- JS/TS-Expertise breit verfügbar (Hiring/Outsourcing einfacher als Dart)
- Expo Managed Workflow vermeidet Xcode/Android-Studio-Setup für die ersten
  Iterationen; EAS Build liefert fertige `.ipa`/`.apk`
- Bei Bedarf später „eject" auf Bare RN ohne Daten-Migration
- Alternative Flutter: gleichwertig, schönere UI-Defaults, aber weniger
  Community-Größe für B2B-spezifische Libraries

**Geschätzter Aufwand**: 4–6 Wochen für einen externen Entwickler
(Senior Mobile-Dev), inkl. App-Store-Setup.

### Scope MVP

| Bereich | Umsetzung |
|---|---|
| Login | QR-Code (Plakat im Pausenraum) → `by-access-code` · Deep-Link aus Mail → `by-token` · E-Mail → `magic-link/request` + `verify` |
| Survey-Liste | `GET /me` → aktive Kampagnen + Status |
| Survey-Ausfüllen | `GET /campaigns/:cid` → Schema rendern (Likert/Single/Multi/Text/Number) |
| Offline-Queue | LocalStorage (z.B. `@react-native-async-storage/async-storage`) → Submit beim nächsten Online-Zustand |
| Submit | `POST /campaigns/:cid/submit` mit Antworten |
| Push-Reminder | `firebase-messaging` + APNs · Token nach Login an `/devices/register` |
| Sprachen | DE/EN über i18next |
| Anonymitäts-Hinweis | Klar in der App-Onboarding-Tour: keine Antworten an den AG-Personenbezug, n ≥ 5 |

### Build & Release

- **Build**: Expo EAS Build (Cloud, keine lokale Toolchain nötig)
- **Distribution**: Apple App Store + Google Play Store
- **Apple Developer Program**: 99 USD/Jahr auf die Höcker Unternehmensberatungs
  GmbH (D-U-N-S-Nummer erforderlich)
- **Google Play Developer**: 25 USD einmalig
- **Privacy Manifests** (iOS 17+): keine Tracker, ausschließlich Survey-Antworten
  → klar zu deklarieren
- **App Tracking Transparency** (iOS): wir erfassen NICHT — Standard-Dialog
  entfällt
- **OTA-Updates** via Expo Updates (kein Store-Review für Bugfixes)

### Open Questions für Phase 2

- App-Icon-Design: durch Höcker-Markenstil oder neutral?
- Deep-Link-Domain: `worksonar.de/auth?token=...` (Universal Link) vs.
  `worksonar://auth?token=...` (Custom Scheme) — Universal Link bevorzugt
- White-Label-Apps: per Apple Business Manager als Custom App pro
  Premium-/White-Label-Kunde ausspielen?

---

## Phase 3 — Funktionsausbau (laufend, nach Phase 2 Live-Gang)

Iterativ, jeweils 1–2 Wochen pro Feature:

### 3.1 Dauerhaftes Mitarbeiter-Profil

Profil-Block (Lebensphase, Mobilität, Berufsphase, …) wird einmal beantwortet
und automatisch in alle nachfolgenden Benefits-/BGM-Befragungen übernommen.
Reduziert die Bearbeitungszeit pro Befragung signifikant.

**Backend-Aufwand**: neue Tabelle `participant_profiles`, Endpoint
`GET/PATCH /me/profile`.

### 3.2 Maßnahmen-Tracking aus MA-Sicht

„Diese Maßnahme wurde aufgrund Eurer Befragung umgesetzt" — schließt den
Feedback-Loop. Konkrete Maßnahmen aus dem `measure_plans` werden für
Mitarbeiter:innen sichtbar mit Status (offen/laufend/erledigt) und Datum.

**Backend-Aufwand**: Endpoint `GET /tenant/measures/public` (Tenant-Admin
markiert Maßnahmen als „öffentlich für MA").

### 3.3 Mikro-Pulse-Befragungen

Statt einer großen Befragung pro Quartal: 1 Frage / Woche via Push.
Antwortgeschwindigkeit < 30 Sekunden. Trend-Auswertung über die Zeit.

**Backend-Aufwand**: neue Kampagnen-Variante `pulse`, Cron-Job für Push-Reminder.

### 3.4 Rewards-Wallet

Belohnungen aus dem bestehenden Rewards-Modul sammeln, ansehen, einlösen.

**Backend-Aufwand**: erweitert `src/rewards.js` um Mobile-Endpoints.

### 3.5 Push-Notifications-Kategorien

User-Settings für: Befragungs-Einladung / Erinnerung / Maßnahmen-Updates /
Belohnungen. Granular ein-/ausschaltbar.

### 3.6 White-Label-Apps (im White-Label-Tarif)

Pro Premium-/White-Label-Kunde eine eigene App im Apple Business Manager /
Google Play Managed. Eigenes Icon, eigener Name, eigene Farbe. Backend nutzt
denselben Mandanten-Stack.

**Aufwand**: ~3 Tage pro Custom-App (hauptsächlich Re-Branding + EAS Build
Profile).

### 3.7 Wearable-Integration (optional, freiwillig)

Apple Health / Google Fit als freiwillige Datenquelle für Vital-Befragungen
(Schritte, Schlafqualität, Aktivität). Strikt opt-in.

### 3.8 Mehrsprachigkeit

DE als Standard, EN ab Phase 2 MVP, später FR/IT/ES/PL/TR/RU für Branchen mit
großem Migranten-Anteil (Pflege, Logistik, Bau).

---

## Risiken und Annahmen

| Risiko | Mitigation |
|---|---|
| Apple App-Store-Review verzögert sich | Frühzeitig Privacy Manifests, klare Beschreibung des B2B-Charakters |
| Push-Token-Wartung wird komplex | FCM-Wrapper (`firebase-admin-node`) im Backend, automatisches Aufräumen von 410/UNREGISTERED-Tokens |
| Magic-Link-E-Mails in Spam | SPF/DKIM/DMARC für `hoecker-unternehmensberatung.de`, freundliches From-Feld |
| Mitarbeiter-Akzeptanz | Onboarding-Tour, anonymity_threshold transparent gemacht, Betriebsrat einbinden |
| Datenschutz-Aufwand | AVV § 3 erweitert um Push-Token und Device-ID (in v31 bereits enthalten) |

---

## Decision Log

- **Juni 2026**: Phase 1 freigegeben, Phase 2 zurückgestellt für separate
  Beauftragung. Tech-Stack-Entscheidung React Native, getroffen nach Abwägung
  Flutter (siehe oben).
- **Juni 2026**: SSO bewusst als „auf Anfrage" in Premium positioniert
  (siehe AGB § 7 und Preisverzeichnis), weil die Self-Service-Implementierung
  noch nicht prioritär ist. Native App führt SSO über die Mobile-API ein
  (Magic-Link genügt für MVP).
- **Juni 2026**: HMAC-JWT statt `jsonwebtoken`-Library, um die Dependency-Liste
  klein und das LavaMoat-Audit-Profil sauber zu halten.

---

## Kontakt

Mobile-App-Strategie und Entwicklung: Höcker Unternehmensberatungs GmbH,
Geschäftsführung Martin Höcker.
