stadtwerke/ROADMAP.md

250 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# InnungsApp — Entwicklungs-Roadmap
> **Methodik:** Agile, 2-Wochen-Sprints | **Start:** März 2026
---
## Phase 0 — Setup & Foundation (Woche 12)
**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 310)
### Sprint 1 (Woche 34): 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 56): 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 78): 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 910): 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 1114)
### Woche 1112: 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 1314: 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 |