# InnungsApp — Feature Backlog

> Priorisiert nach MoSCoW: **M**ust | **S**hould | **C**ould | **W**on't (MVP)
> Sortiert nach Impact / Effort Score (H = Hoch, M = Mittel, N = Niedrig)

---

## MVP Must-Have (Phase 1)

| ID | Feature | Modul | Impact | Effort | Sprint |
|---|---|---|---|---|---|
| F-001 | Magic Link Login (E-Mail) | Auth | H | N | 1 |
| F-002 | Auth Guard (geschützte Routes) | Auth | H | N | 1 |
| F-003 | Mitgliederverzeichnis (Liste + Suche) | Mitglieder | H | N | 1 |
| F-004 | Mitglied-Detailansicht + Tap-to-Call | Mitglieder | H | N | 1 |
| F-005 | Filter: Sparte, Ort, Ausbildungsbetrieb | Mitglieder | M | N | 1 |
| F-006 | Admin: Mitglied anlegen / bearbeiten | Mitglieder | H | M | 1 |
| F-007 | Admin: Mitglied deaktivieren | Mitglieder | H | N | 1 |
| F-008 | CSV-Import Mitglieder | Mitglieder | H | M | 1 |
| F-009 | Einladungsmail per Resend | Mitglieder | H | N | 1 |
| F-010 | News Feed (veröffentlichte Beiträge) | News | H | N | 2 |
| F-011 | News-Detailansicht mit Markdown | News | H | N | 2 |
| F-012 | Kategoriefilter (Wichtig/Prüfung/etc.) | News | M | N | 2 |
| F-013 | Ungelesen/Gelesen-Status | News | M | N | 2 |
| F-014 | PDF-Anhang öffnen | News | H | M | 2 |
| F-015 | Push Notification bei Veröffentlichung | News | H | M | 2 |
| F-016 | Admin: Beitrag erstellen (Markdown) | News | H | M | 2 |
| F-017 | Admin: Beitrag anpinnen | News | M | N | 2 |
| F-018 | Admin: Leserate pro Beitrag | News | H | N | 2 |
| F-019 | Admin: Zeitgesteuerte Veröffentlichung | News | M | M | 2 |
| F-020 | Terminliste (chronologisch) | Termine | H | N | 3 |
| F-021 | Termin-Detailansicht | Termine | H | N | 3 |
| F-022 | Typ-Tags (Prüfung/Versammlung/etc.) | Termine | M | N | 3 |
| F-023 | An-/Abmeldung für Termin | Termine | H | N | 3 |
| F-024 | iCal-Export (Google/Outlook) | Termine | H | N | 3 |
| F-025 | Admin: Termin anlegen / bearbeiten | Termine | H | N | 3 |
| F-026 | Admin: Teilnehmerliste einsehen + CSV-Export | Termine | H | N | 3 |
| F-027 | E-Mail-Bestätigung nach Anmeldung | Termine | M | N | 3 |
| F-028 | Stellenliste öffentlich (ohne Login) | Lehrlingsbörse | H | N | 4 |
| F-029 | Stellen-Filter (Sparte, Ort, Lehrjahr) | Lehrlingsbörse | H | N | 4 |
| F-030 | Vergütungsanzeige nach Lehrjahr | Lehrlingsbörse | H | N | 4 |
| F-031 | Betrieb: Stelle anlegen | Lehrlingsbörse | H | M | 4 |
| F-032 | Betrieb: Stelle aktivieren/pausieren | Lehrlingsbörse | H | N | 4 |
| F-033 | Admin Dashboard Übersicht | Admin | H | M | 4 |
| F-034 | Admin: Innung-Setup (Logo, Sparten) | Admin | H | M | 0 |
| F-035 | Multi-Tenancy RLS | Backend | H | H | 0 |
| F-036 | Row Level Security alle Tabellen | Backend | H | M | 0 |
| F-037 | Push Token Registrierung | Backend | H | M | 2 |
| F-038 | Onboarding-Wizard (neue Innung) | Onboarding | H | M | 5 |
| F-039 | First-Use Tutorial (Mobile) | Onboarding | M | M | 5 |
| F-040 | App Store Submission (iOS + Android) | Launch | H | M | 6 |

---

## Should Have (Phase 2, Q2 2026)

| ID | Feature | Modul | Impact | Effort |
|---|---|---|---|---|
| F-041 | Push Reminder 24h vor Termin | Termine | H | M |
| F-042 | Admin: Monatsbericht als PDF | Analytics | M | H |
| F-043 | Erweiterte Analytics (DAU/WAU/MAU Charts) | Analytics | M | M |
| F-044 | Leeransicht für leere Listen | UX | M | N |
| F-045 | Offline-Modus (Cached Data) | UX | M | H |
| F-046 | Dokumentenarchiv (Upload/Download) | Dokumente | H | H |
| F-047 | Videokonferenz-Link in Terminen | Termine | M | N |
| F-048 | Mitglied: eigenes Profil bearbeiten | Mitglieder | M | M |
| F-049 | Admin: Mitteilung an Sparte gezielt | News | M | M |
| F-050 | Admin: Vorlage für häufige Beiträge | News | M | M |
| F-051 | Benachrichtigungs-Einstellungen (Nutzer) | Notifications | M | M |
| F-052 | Karten-Ansicht Mitglieder (Google Maps) | Mitglieder | N | H |
| F-053 | Bewerbungs-Kontaktformular (in App) | Lehrlingsbörse | M | M |
| F-054 | Admin: Stellen moderieren / ausblenden | Lehrlingsbörse | M | N |

---

## Could Have (Phase 3, Q3–Q4 2026)

| ID | Feature | Modul | Impact | Effort |
|---|---|---|---|---|
| F-055 | TikTok-Style Video-Feed | Azubi-Modul | H | H |
| F-056 | Video-Upload für Betriebe | Azubi-Modul | H | H |
| F-057 | Bewerber-Profil (ohne CV) | Azubi-Modul | H | M |
| F-058 | 1-Click-Apply | Azubi-Modul | H | M |
| F-059 | In-App Chat (Betrieb ↔ Bewerber) | Azubi-Modul | H | H |
| F-060 | Vergütungs-Rechner | Azubi-Modul | M | M |
| F-061 | Digitales Berichtsheft | Azubi-Modul | M | H |
| F-062 | Prüfungsvorbereitung Quiz | Azubi-Modul | M | H |
| F-063 | White-Label (Subdomain, Logo) | Platform | H | H |
| F-064 | HWK-Dashboard (alle Innungen im Bezirk) | Platform | H | H |
| F-065 | API für externe Systeme (OpenAPI) | Platform | M | H |
| F-066 | Webhook-Integration | Platform | M | H |
| F-067 | Chat / Direktnachrichten (allgemein) | Kommunikation | M | H |
| F-068 | Prüfungsverwaltung (Gesellenprüfungen) | Prüfungen | H | H |
| F-069 | Obermeister-Genehmigung für Beiträge | Governance | N | M |
| F-070 | Mitgliederbeiträge / Buchhaltung | Finanzen | M | H |
| F-071 | Öffentliches Unternehmensverzeichnis | Marketing | N | H |
| F-072 | Bewertungssystem für Betriebe | Community | N | H |

---

## Won't Have (MVP — bewusste Nein-Entscheidungen)

| Feature | Begründung |
|---|---|
| Mehrsprachigkeit | Zielgruppe 100% deutsch, 2027 frühestens |
| SEPA-Lastschrift | Buchhaltungsintegration zu komplex |
| Lernmanagementsystem (LMS) | Zu komplex, eigenes Produkt |
| Öffentliche API ab Tag 1 | Erst wenn Produkt stabil |
| App für HWK (übergeordnet) | Erst nach HWK-Partnerschaft |
| Gamification (Punkte, Badges) | Nicht Kernbedürfnis der Zielgruppe |
| Social Feed (Mitglieder posten) | Moderation zu aufwendig |
| Marktplatz / E-Commerce | Separate Business Unit 2027 |

---

## Technische Schulden & Non-Feature Backlog

| ID | Aufgabe | Priorität |
|---|---|---|
| T-001 | End-to-End Tests (Playwright) für Admin-App | Hoch |
| T-002 | Unit Tests für Supabase Edge Functions | Hoch |
| T-003 | React Native E2E Tests (Maestro) | Mittel |
| T-004 | Error Monitoring (Sentry) integrieren | Hoch |
| T-005 | Performance Monitoring (Supabase Insights) | Mittel |
| T-006 | Dependency Updates automatisieren (Renovate) | Mittel |
| T-007 | API Rate Limiting (Edge Function) | Hoch |
| T-008 | Spam-Schutz Lehrstellenanzeigen | Mittel |
| T-009 | Datenbankindizes optimieren (EXPLAIN ANALYZE) | Mittel |
| T-010 | Storybook für UI-Komponenten | Niedrig |
