Das Problem
Ein 30-köpfiger Schützenverein oder Kleingartenverein braucht kein SaaS-Abo, kein sechsstelliges ERP und keinen steuerberater-tauglichen Prüfpfad. Was er braucht: ein handygerechtes Tool, das die Mitgliederliste führt, nachverfolgt wer den Jahresbeitrag bezahlt hat, die Jahreshauptversammlung plant und auf Anfrage des Kassenwarts eine CSV-Datei exportiert – alles auf Deutsch, alles DSGVO-konform und möglichst ohne Backend, das Daten leaken kann. Das kostenlose Kontingent jeder kommerziellen Alternative ist entweder stark eingeschränkt oder entfällt sobald der Verein eine bestimmte Mitgliederzahl überschreitet.
Wie wir es gebaut haben
- 01Alle Funktionen Offline-first gegen SharedPreferences-JSON-Repositories gebaut – MemberRepository, FeeRepository, PaymentRepository, EventRepository, AnnouncementRepository, DocumentRepository – damit die gesamte CRUD-Oberfläche auch im Flugzeug ohne Signal funktioniert.
- 02Beiträge korrekt modelliert: MembershipFee plus separates Payment mit vier Statuswerten (offen, bezahlt, ueberfaellig, erlassen) und einer PaymentStatusEngine, die den effectiveStatus aus Fälligkeitsdatum vs. heute ableitet – die UI muss nie fragen, welcher Status angezeigt werden soll.
- 03Wiederkehrende Veranstaltungen (wöchentlich / zweiwöchentlich / monatlich mit Monatsend-Klammerung) plus EventDetailScreen mit Mitglieder-RSVP per SegmentedButton. RSVP-Zählungen fließen ins Dashboard und den Tab für bevorstehende Veranstaltungen ein.
- 04DE-formatierten CSV-Export geliefert – Semikolon-getrennt, Komma als Dezimalzeichen, korrekte Maskierung – für Mitglieder und jahresgefilterte Zahlungen, übergeben ans System-Share-Sheet per share_plus. Der Kassenwart fügt das Ergebnis direkt in Excel ein.
- 05Free-Tier-Schranke eingebaut (PremiumController + freeTierExceededProvider), die die kostenlose Nutzung auf 25 aktive Mitglieder begrenzt, mit Upgrade-Bannern auf Dashboard und Einstellungen. Der Premium-Schalter wird lokal gespeichert; die eigentliche Paywall (RevenueCat) und der Cloud-Sync-Pfad (Supabase) warten auf Zugangsdaten.
Ergebnis
Phasen 1–5 sowie 6a abgeschlossen – Offline-feature-complete. 46 von 46 Tests bestanden, flutter analyze fehlerfrei. Die UI ist ausschließlich auf Deutsch, enthält einen Haftungsausschluss in den Einstellungen und führt keinen einzigen Netzwerkaufruf aus. Sechs Routen, drei Zielgruppen für Ankündigungen, sechs Dokumentkategorien und ein Dashboard mit Live-Zählerstand.
Stack
Flutter / Dart · Riverpod für State-Management · GoRouter für Navigation · SharedPreferences-JSON-Repositories · Material 3 mit grünem Seed (Hell + Dunkel) · share_plus für CSV- und Share-Sheet-Übergabe · kein Backend bis Phase 6b.
Als Nächstes
Phase 5b: echter Datei-Upload per file_picker + Storage-Berechtigungen. Phase 6b: optionaler Supabase-Auth- / Datenbank- / Storage-Sync (wartet auf Zugangsdaten). RevenueCat für die Live-Paywall, sobald ein Verein zusagt.
Weitere Referenzen
- Mobile AppsMieter App
Digitaler Mieterrechts-Begleiter für Deutschland. 8-Städte-Mietspiegel, Mietpreischeck, Nebenkostenprüfung, PDF-Export.
- Mobile AppsTGA-Assistent
Geführtes Vier-Gewerk-Auslegungs- und Orientierungstool für SHK-Profis. Heizung, Lüftung, Kälte, Sanitär. 258 Tests, PDF-Export, offline.
- Mobile AppsCalculator Batch
33 Nischen-Rechner-Apps aus einer gemeinsamen Flutter-Codebase. 250 Tests, zwei Audit-Runden, AdMob + $2.99 Pro IAP über die gesamte App-Flotte integriert.