Rebuild as InnungsApp project: replace stadtwerke analysis with full documentation

- PRD: vollständige Produktspezifikation (5 Module, Scope, Akzeptanzkriterien)
- ARCHITECTURE: Tech Stack, Ordnerstruktur, Multi-Tenancy, Push, Kosten
- DATABASE_SCHEMA: Vollständiges SQL-Schema mit RLS Policies und Views
- USER_STORIES: 40+ Stories nach Rolle (Admin, Mitglied, Azubi, Obermeister)
- PERSONAS: 5 detaillierte Nutzerprofile mit Alltag, Zitaten und Erwartungen
- BUSINESS_MODEL: Preistabellen, Unit Economics, Revenue-Projektionen, Distribution
- ROADMAP: 6 Phasen, Sprint-Planung, Meilensteine und KPIs
- COMPETITIVE_ANALYSIS: Wettbewerbsmatrix, USPs, Preispositionierung
- API_DESIGN: Supabase Query Patterns, Edge Functions, Realtime Subscriptions
- ONBOARDING_FLOWS: 7 User Flows von Setup bis Fehlerfall
- GTM_STRATEGY: 3-Phasen-Vertrieb, Outreach-Sequenz, Einwandbehandlung
- AZUBI_MODULE: Video-Feed, 1-Click-Apply, Chat, Berichtsheft, Quiz
- DSGVO_KONZEPT: Rechtsgrundlagen, TOMs, AVV, Minderjährige, Incident Response
- FEATURES_BACKLOG: 72 Features nach MoSCoW + Technische Schulden

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Timo Knuth
2026-02-18 19:03:37 +01:00
parent fc68285cf1
commit fca42db4d2
116 changed files with 9329 additions and 6479 deletions

253
PRD.md Normal file
View File

@@ -0,0 +1,253 @@
# InnungsApp — Product Requirements Document (PRD)
> **Version:** 2.0 | **Status:** In Review | **Owner:** Timo Knuth
> **Zielmarkt:** Innungen & Kreishandwerkerschaften in Deutschland
---
## 1. Problemdefinition
### 1.1 Status Quo bei Innungen
Deutsche Handwerksinnungen verwalten ihre Mitglieder und kommunizieren heute mit:
- **Excel-Tabellen** für Mitgliederverwaltung (lokal, nicht synchronisiert)
- **WhatsApp-Gruppen** für interne Kommunikation (DSGVO-Problem)
- **E-Mail-Verteiler** für Rundschreiben (kein Tracking, kein Self-Service)
- **PDF-Formulare** per Post für Anmeldungen (langsam, fehleranfällig)
- **Vereinzelte Websites** für die Lehrstellenbörse (veraltet, schlecht mobil)
### 1.2 Konkrete Pain Points
**Geschäftsführer / Admin:**
- Mitgliederdaten pflegen ist zeitaufwendig (manuelle Excel-Updates)
- Keine Ahnung, ob Rundschreiben gelesen wurden
- Terminanmeldungen kommen per Telefon und E-Mail — chaotisch
- Lehrstelleninserate manuell auf Website pflegen
**Innungsmitglied (Betrieb):**
- Verpasst wichtige Informationen, weil E-Mails übersehen werden
- Keine Möglichkeit, Ausbildungsstellen einfach zu veröffentlichen
- Muss für jede Kleinigkeit den Geschäftsführer anrufen
**Azubi-Bewerber (Gen Z):**
- Stellenangebote auf Websites sind veraltet und langweilig
- Muss PDF-Bewerbungen per E-Mail schicken (antiquiert)
- Kein Einblick in den Berufsalltag
### 1.3 Warum jetzt?
1. **Fachkräftemangel als Treiber:** ~250.000 unbesetzte Ausbildungsplätze in Deutschland (2025)
2. **Digitalisierungsdruck:** Post-Corona haben Innungen erkannt, dass digitale Tools fehlen
3. **Generationenwechsel:** Jüngere Obermeister und Geschäftsführer sind technikaffin
4. **Fördergelder:** BMWi und HWKs haben Digitalisierungsprogramme mit Budget
---
## 2. Produktvision
**Vision Statement:**
> InnungsApp wird die Standard-Infrastruktur des deutschen Handwerks — die Plattform, auf der Innungen verwalten, kommunizieren, Azubis finden und ihre Mitglieder vernetzen.
**Mission:**
> Das deutsche Handwerk digital und zukunftsfähig machen — beginnend mit dem direkten Werkzeug jeder Innung.
---
## 3. Zielgruppe & Rollen
### Primäre Käufer (B2B)
| Rolle | Beschreibung | Hauptmotivation |
|---|---|---|
| **Innungsgeschäftsführer** | Hauptadmin, verwaltet alles | Zeitersparnis, Übersicht |
| **Obermeister** | Vorsitzender der Innung | Reputation, Mitgliederservice |
### Primäre Nutzer (Enduser)
| Rolle | Beschreibung | Hauptbedürfnis |
|---|---|---|
| **Mitglied (Betrieb)** | Inhaberin/Inhaber des Mitgliedsbetriebs | Information, Azubi finden |
| **Azubi-Bewerber** | 1520 Jahre, sucht Ausbildungsplatz | Einfache, moderne Bewerbung |
| **Lernender (Azubi)** | In der Ausbildung | Berichtsheft, Prüfungsvorbereitung |
### Sekundäre Nutzer (Post-MVP)
- Prüfungsausschüsse (Gesellenprüfungen)
- HWK-Mitarbeiter (übergeordnete Verwaltung)
- Lieferanten / Hersteller (Marktplatz-Modul)
---
## 4. Feature-Scope MVP
### 4.1 Modul: Mitgliederverzeichnis
**Ziel:** Zentrales, durchsuchbares Verzeichnis aller Mitgliedsbetriebe.
**User Stories:**
- Als Mitglied möchte ich andere Betriebe in meiner Innung finden, um mich zu vernetzen
- Als Admin möchte ich Mitglieder anlegen, bearbeiten und deaktivieren
**Funktionen:**
- Liste aller Mitgliedsbetriebe mit Suche und Filter
- Filter: Sparte, Ort, Ausbildungsbetrieb ja/nein, Status
- Detailansicht: Name, Betrieb, Sparte, Ort, Telefon, E-Mail, Website, Ausbildungsbetrieb
- Direktkontakt: Tap-to-Call, Tap-to-Mail
- Admin-CRUD: Mitglied anlegen, bearbeiten, deaktivieren, Einladungs-E-Mail senden
- Status-Management: aktiv / ruhend / ausgetreten
**Nicht im MVP:**
- Öffentliches Unternehmensverzeichnis (für Endkunden)
- Bewertungssystem
- Karten-/Geo-Ansicht
- CRM-Integration
---
### 4.2 Modul: Mitteilungen & News
**Ziel:** Gesteuerter Kommunikationskanal von der Innung an ihre Mitglieder.
**User Stories:**
- Als Admin möchte ich Mitteilungen mit Push-Notification versenden, um sicherzustellen, dass alle erreicht werden
- Als Mitglied möchte ich wichtige Mitteilungen einfach finden und nicht in E-Mails suchen müssen
**Funktionen:**
- Feed aller Beiträge, chronologisch sortiert
- Kategorien: Wichtig / Prüfung / Förderung / Veranstaltung / Allgemein
- Push-Notification bei neuem Beitrag (optional konfigurierbar)
- Ungelesen/Gelesen-Status pro Nutzer und Beitrag
- PDF-Anhänge (Rundschreiben, Formulare)
- Admin: Beitrag erstellen, bearbeiten, löschen, zeitgesteuert veröffentlichen
- Admin: Leserate pro Beitrag einsehen
**Nicht im MVP:**
- Kommentarfunktion (erhöht Moderationsaufwand)
- Mitglieder-Posts (asymmetrischer Kanal gewollt)
- Direktnachrichten / Chat
---
### 4.3 Modul: Lehrlingsbörse (Basic)
**Ziel:** Ausbildungsplätze der Mitgliedsbetriebe einfach veröffentlichen und finden.
**User Stories:**
- Als Betrieb möchte ich meine Ausbildungsstellen einfach einstellen, ohne die Innung fragen zu müssen
- Als Bewerber möchte ich Stellen ohne Registrierung durchsuchen
**Funktionen (Betrieb):**
- Stelle anlegen: Sparte, Anzahl, Vergütung nach Lehrjahr, Ausbildungsstart, Kontakt
- Stelle aktivieren / pausieren / löschen
- Bewerbungskontakt: E-Mail oder Telefon
**Funktionen (Bewerber, öffentlich ohne Login):**
- Stellenliste durchsuchen
- Filter: Sparte, Ort, Lehrjahr, Ausbildungsstart
- Direktkontakt zum Betrieb (E-Mail / Telefon)
**Nicht im MVP:**
- In-App Bewerbungsformular
- Matching-Algorithmus
- Video-Feed (→ Azubi-Modul Advanced, Q2)
- Berichtsheft
---
### 4.4 Modul: Termine & Veranstaltungen
**Ziel:** Veranstaltungskalender mit An-/Abmeldefunktion und Teilnehmermanagement.
**User Stories:**
- Als Admin möchte ich Termine anlegen und die Teilnehmerliste einsehen
- Als Mitglied möchte ich mich für Veranstaltungen anmelden und den Termin in meinen Kalender exportieren
**Funktionen:**
- Terminliste mit Typ-Tags: Prüfung / Versammlung / Kurs / Event / Lossprechung
- Termindetail: Titel, Datum, Uhrzeit, Ort, Beschreibung, Typ
- An-/Abmeldung mit E-Mail-Bestätigung
- Kalenderexport: iCal / Google Calendar / Outlook
- Admin: Termin anlegen, Teilnehmerliste exportieren (CSV)
- Push-Notification 24h vor Termin
**Nicht im MVP:**
- Bezahlte Events / Ticketing
- Wartelisten-Management
- Videokonferenz-Links (Q2)
- Saalplan / Sitzordnung
---
### 4.5 Modul: Admin-Dashboard (Web)
**Ziel:** Webbasiertes Backend für Innungsgeschäftsführer.
**Funktionen:**
- Übersicht: Mitgliederzahl, aktive Nutzer, ungelesene Beiträge
- Mitgliederverwaltung: CRUD, Massenimport via CSV, Einladungsversand
- Newsroom: Beiträge erstellen, planen, Leserate sehen
- Terminverwaltung: CRUD, Teilnehmerliste
- Lehrstellenverwaltung: Alle Stellen aller Betriebe einsehen und moderieren
- Einstellungen: Innungslogo, Farbe, Kontaktdaten, Spartenverzeichnis
- Einfache Analytics: DAU/MAU, Aktivierungsrate, meistgelesene Beiträge
**Tech:** Next.js Web-App auf `app.innungsapp.de/admin`
---
## 5. Out of Scope — MVP
| Feature | Begründung | Roadmap |
|---|---|---|
| Chat / Direktnachrichten | Moderation, DSGVO-Komplexität | Q3 2026 |
| Dokumentenarchiv | Fokus zuerst auf Kernkommunikation | Q2 2026 |
| Prüfungsverwaltung | Hochreguliert, eigenes Produkt | Q4 2026 |
| Mitgliederbeiträge / Buchhaltung | Buchhaltungsintegration nötig | 2027 |
| Video-Feed (TikTok-Style) | Eigenes Azubi-Modul | Q2 2026 |
| Berichtsheft digital | Komplex, eigenes Feature | Q3 2026 |
| Mehrsprachigkeit | Zielgruppe DE-only | 2027 |
| White-Label für HWK | Post Product-Market-Fit | Q4 2026 |
| Marktplatz / Lieferantenportal | Separate Business Unit | 2027 |
---
## 6. Nicht-funktionale Anforderungen
### Performance
- App-Ladezeit (Cold Start): < 3 Sekunden
- Feed-Ladezeit: < 1 Sekunde
- Push-Notification-Delivery: > 95 % innerhalb 30 Sekunden
### Sicherheit & Datenschutz
- DSGVO-konform: Datenverarbeitung nur in EU (Frankfurt)
- AVV (Auftragsverarbeitungsvertrag) mit jeder Innung
- Row Level Security: Jede Innung sieht ausschließlich ihre eigenen Daten
- Keine Weitergabe von Mitgliederdaten an Dritte
- Datenlöschung auf Anfrage innerhalb 30 Tage
### Verfügbarkeit
- Uptime-Ziel: 99,5 % (Supabase SLA)
- Geplante Wartungsfenster: nachts 02:0004:00 Uhr
### Skalierbarkeit
- MVP-Kapazität: 100 Innungen, je bis 500 Mitglieder
- Skalierung auf 10.000 Innungen ohne Architekturänderung (Supabase managed)
### Barrierefreiheit
- iOS: Unterstützung für Dynamic Type und VoiceOver
- Mindest-Textgröße: 14pt
- Kontrastverhältnis: WCAG AA
---
## 7. Akzeptanzkriterien MVP
| Feature | Kriterium |
|---|---|
| Login | Nutzer kann sich via Magic Link in < 60 Sek. einloggen |
| Mitgliederverzeichnis | Admin kann Mitglied in < 2 Minuten anlegen |
| News | Beitrag ist nach Veröffentlichung in < 10 Sek. für alle sichtbar |
| Push-Notification | 95 % der Nutzer empfangen Push innerhalb 30 Sek. |
| Lehrlingsbörse | Stelle ist öffentlich sichtbar ohne Login |
| Termine | Anmeldung + Kalenderexport in < 3 Klicks |
| Multi-Tenancy | Kein Mitglied sieht Daten einer anderen Innung |