# InnungsApp — Entwicklungs-Roadmap

> **Methodik:** Agile, 2-Wochen-Sprints | **Start:** März 2026

---

## Phase 0 — Setup & Foundation (Woche 1–2)

**Ziel:** Fundament für schnelle Entwicklung legen

### Woche 1: Technisches Setup
- [ ] Supabase-Projekt aufsetzen (Production + Staging)
- [ ] Datenbankschema deployen (alle Tabellen, Indizes)
- [ ] Row Level Security Policies schreiben und testen
- [ ] Supabase Auth konfigurieren (Magic Link, E-Mail-Templates)
- [ ] Expo-Projekt initialisieren (React Native + TypeScript)
- [ ] Expo Router Grundstruktur anlegen
- [ ] Next.js Admin-App initialisieren
- [ ] CI/CD: Gitea → Vercel (Admin) + EAS (Mobile)
- [ ] Environments: development / staging / production

### Woche 2: Design & Pilot-Gespräch
- [ ] Design-Tokens definieren: Farben, Typography, Spacing, Radius
- [ ] Figma-Mockups: Login, Mitgliederverzeichnis, News Feed, Terminliste
- [ ] Erste Innung als Design-Partner ansprechen (Kaltakquise BW)
- [ ] Demo-Call vereinbaren für Woche 3
- [ ] Supabase TypeScript-Types generieren

**Deliverables:**
- Supabase-Projekt live (Staging)
- Expo App startet auf Simulator
- Figma-Mockups für alle MVP-Screens
- Demo-Call mit erster Innung geplant

---

## Phase 1 — Core MVP (Woche 3–10)

### Sprint 1 (Woche 3–4): Auth + Mitgliederverzeichnis

**Mobile:**
- [ ] Login-Screen mit Magic Link (E-Mail-Eingabe)
- [ ] Verify-Screen (Token-Verarbeitung nach Link-Klick)
- [ ] Auth Guard (Redirect bei nicht eingeloggt)
- [ ] Mitgliederverzeichnis: Liste mit Suche
- [ ] Filter-Bottom-Sheet: Sparte, Ort, Ausbildungsbetrieb
- [ ] Mitglied-Detailansicht: alle Infos, Tap-to-Call, Tap-to-Mail

**Admin:**
- [ ] Login-Page
- [ ] Mitgliederliste mit Tabelle und Suche
- [ ] Mitglied anlegen / bearbeiten (Formular)
- [ ] Mitglied deaktivieren

**Backend:**
- [ ] RLS Policies für members testen
- [ ] CSV-Import Endpoint (Supabase Edge Function)
- [ ] Einladungs-E-Mail via Resend

---

### Sprint 2 (Woche 5–6): News & Push Notifications

**Mobile:**
- [ ] News Feed: Liste, Kategoriefilter, Ungelesen-Badge
- [ ] Beitrag-Detailansicht: Text, Anhänge (PDF-Viewer)
- [ ] Push-Token-Registrierung beim Login
- [ ] Gelesen-Tracking (mark as read on open)

**Admin:**
- [ ] Beitrag erstellen: Rich-Text-Editor, Kategorie, PDF-Anhang
- [ ] Beitrag zeitgesteuert veröffentlichen
- [ ] Leserate-Anzeige pro Beitrag
- [ ] Beitrag anpinnen

**Backend:**
- [ ] Supabase Database Webhook → Edge Function → Expo Push API
- [ ] news_reads Tracking
- [ ] Supabase Storage für PDF-Anhänge

---

### Sprint 3 (Woche 7–8): Termine & Anmeldungen

**Mobile:**
- [ ] Terminliste chronologisch
- [ ] Filter nach Typ (Prüfung, Kurs, etc.)
- [ ] Termin-Detailansicht
- [ ] An-/Abmeldebutton
- [ ] iCal-Export
- [ ] Bestätigungs-E-Mail nach Anmeldung

**Admin:**
- [ ] Termin anlegen / bearbeiten
- [ ] Teilnehmerliste einsehen
- [ ] Teilnehmerliste CSV-Export

**Backend:**
- [ ] termine_anmeldungen mit UNIQUE constraint
- [ ] E-Mail bei Anmeldung (Resend)
- [ ] Push Reminder 24h vorher (geplante Edge Function)

---

### Sprint 4 (Woche 9–10): Lehrlingsbörse & Admin Dashboard

**Mobile (öffentlich, kein Login):**
- [ ] Stellenliste: Suche, Filter (Sparte, Ort, Lehrjahr)
- [ ] Stellen-Detailansicht: alle Infos, Vergütung, Kontakt
- [ ] Direktkontakt: Tap-to-Call / Tap-to-Mail

**Mobile (Mitglied mit Login):**
- [ ] Eigene Stelle anlegen (wenn ausbildungsbetrieb = true)
- [ ] Stelle aktivieren / pausieren / löschen

**Admin:**
- [ ] Alle Stellen der Innung einsehen
- [ ] Stelle moderieren (ausblenden)

**Admin Dashboard Home:**
- [ ] Übersichtszahlen: Mitglieder, aktive Nutzer (7 Tage), WAU
- [ ] Letzte 5 Beiträge mit Leserate
- [ ] Nächste 5 Termine mit Anmeldezahl
- [ ] Quick Actions: Mitglied einladen, Beitrag erstellen

---

## Phase 2 — Polish & Launch (Woche 11–14)

### Woche 11–12: Onboarding & UX

- [ ] Onboarding-Wizard für neue Innungen (Admin-Setup: Name, Logo, Sparten)
- [ ] First-Use-Tutorial in der Mobile App (Overlay / Tooltips)
- [ ] Leeransicht für leere Listen (Mitglieder, News, Termine)
- [ ] Error States und Retry-Logik
- [ ] Offline-Handling (Cached Data anzeigen)
- [ ] App Icon + Splash Screen
- [ ] Push Notification Permission-Prompt (optimierter Zeitpunkt)

### Woche 13–14: App Store Submission & Pilot Launch

- [ ] iOS: App Store Connect, Screenshots, App-Beschreibung
- [ ] Android: Google Play Console, Screenshots
- [ ] EAS Submit für beide Stores
- [ ] TestFlight Beta mit Pilot-Innung
- [ ] 5 Pilotinnungen live schalten
- [ ] PostHog Events in alle kritischen Flows einbauen
- [ ] Feedback-Formular in der App (NPS-Umfrage nach 2 Wochen)
- [ ] Support-Prozess definieren (E-Mail + FAQ-Seite)

**Launch-Kriterien:**
- [ ] Alle 5 MVP-Module funktionieren ohne kritische Bugs
- [ ] Push Notifications ankommen
- [ ] Login-Flow < 60 Sekunden
- [ ] Keine DSGVO-Lücken
- [ ] 1 Pilot-Innung hat App bestätigt

---

## Phase 3 — Post-MVP Q2 2026

### Modul: Dokumentenarchiv

- [ ] Kategorien: Formulare, Satzungen, Prüfungsunterlagen, Protokolle
- [ ] Upload (PDF, Word, Excel) via Admin
- [ ] Download in Mobile App
- [ ] Versionsverwaltung (letzte 3 Versionen behalten)
- [ ] Suche über Dokumententitel

### Modul: Statistik-Dashboard (Admin)

- [ ] DAU / WAU / MAU Grafiken (letzte 90 Tage)
- [ ] Aktivierungsrate: Eingeladene vs. Eingeloggte
- [ ] News-Performance: Top 10 meistgelesene Beiträge
- [ ] Termin-Auslastung: Anmeldequote pro Termin
- [ ] Lehrstellenaktivität: Views, Kontaktanfragen
- [ ] Monatsbericht als PDF-Export

### Modul: Videokonferenz-Integration

- [ ] Zoom / Teams-Link in Terminen hinterlegen
- [ ] "Jetzt beitreten"-Button in Termin-Detailansicht
- [ ] Erinnerung mit Link in Push Notification

---

## Phase 4 — Post-MVP Q3 2026

### Modul: Azubi Video-Feed (Kernstück Azubi-Modul)

- [ ] TikTok-Style vertikaler Video-Feed pro Beruf
- [ ] Video-Upload für Mitgliedsbetriebe (Mux-Integration)
- [ ] Berufs-Tags und Filter
- [ ] Like / Speichern
- [ ] "Mehr erfahren" → Direktkontakt zum Betrieb

### Modul: 1-Click-Bewerbung

- [ ] Bewerber-Profil anlegen (Name, Schulabschluss, Interessen, Wohnort)
- [ ] "Bewerben" Button bei Lehrstellenanzeige
- [ ] Chat-Initiierung: Bewerber ↔ Betrieb (In-App Messaging)
- [ ] Benachrichtigung an Betrieb

### Modul: Digitales Berichtsheft (Azubis)

- [ ] Täglicher Eintrag: Text, Foto, Sprachnotiz
- [ ] Wochenansicht
- [ ] Betrieb kann Einträge bestätigen / kommentieren
- [ ] Export als PDF (für Prüfer)

---

## Phase 5 — Post-MVP Q4 2026

### Modul: Prüfungsvorbereitung

- [ ] Fragenkatalog pro Gewerk (manuell gepflegt)
- [ ] Tägliches Quiz (5 Fragen, Push-Reminder)
- [ ] Lernfortschritt-Tracking
- [ ] Schwächen-Analyse: "Diese Themen solltest du wiederholen"

### White-Label für HWK

- [ ] Eigene Domain pro Innung: `innung-elektro-stuttgart.de`
- [ ] Vollständige Logo/Farb-Anpassung
- [ ] HWK-Dashboard: Alle Innungen im Bezirk auf einen Blick
- [ ] HWK kann Nachrichten an alle Innungen senden

### Verbands-API

- [ ] REST API für externe Systeme (HWK-eigene Software)
- [ ] Webhook-Integration (neue Mitglieder, neue Stellen)
- [ ] Dokumentierte API (OpenAPI/Swagger)

---

## Meilensteine & KPIs

| Meilenstein | Datum | KPI |
|---|---|---|
| Supabase + Expo Setup | KW 10/2026 | Technisches Fundament bereit |
| Erster Pilot live | KW 15/2026 | 1 Innung aktiv |
| App Store Launch | KW 16/2026 | iOS + Android verfügbar |
| 5 Piloten aktiv | KW 20/2026 | WAU > 40%, NPS > 50 |
| Erster zahlender Kunde | KW 22/2026 | MRR > 0 € |
| 10 zahlende Innungen | KW 32/2026 | MRR > 1.500 € |
| Erste HWK-Partnerschaft | KW 40/2026 | Distributionskanal validiert |
| 50 Innungen | KW 10/2027 | MRR > 8.500 €, Profitabilität |
| 100 Innungen | KW 26/2027 | MRR > 18.000 €, Seed-Bereit |
