Das Projekt heute
Das Produkt wird aktiv von einer Schule genutzt. Die aktuelle Produktionsversion bleibt im Einsatz, während ich eine für den Produktivbetrieb vorgesehene Neuentwicklung mit React Native und TypeScript aufbaue.
Datenschutz, Backup und Sync in Studienbuch neu gedacht
Studienbuch erprobt, wie eine datenschutzorientierte Schul-App die Kontrolle der Nutzer:innen über ihre Daten bewahren und zugleich zuverlässiges Backup, Synchronisation und vernetzte Funktionen ermöglichen kann.

Das Produkt wird aktiv von einer Schule genutzt. Die aktuelle Produktionsversion bleibt im Einsatz, während ich eine für den Produktivbetrieb vorgesehene Neuentwicklung mit React Native und TypeScript aufbaue.
Das ursprüngliche Datenschutzmodell war faktisch Local-only geworden. Das schützte Daten, machte Backup, Synchronisation und umfangreichere vernetzte Abläufe jedoch strukturell schwierig. Diese Funktionen nachträglich in die bestehende Form zu pressen erschien weniger sinnvoll, als Datenhoheit und Synchronisationsmodell neu zu entwerfen.
Ich verantworte Produktrichtung und technische Architektur: Mobile, Web, Domänenlogik, APIs, Persistenz, Synchronisation, Tests und Delivery.
Wiederverwendbare Regeln, Selektoren und Formatierung werden in einen frameworkunabhängigen, typsicheren Domänenkern extrahiert, statt Produktverhalten an eine UI-Generation zu koppeln.
Groundswell basiert auf expliziten Event- und Adapterverträgen für Offline-Publikation, kanonische Verifikation, Persistenz, Broadcast, Retry und Replay.
Die instabile WebUntis-Integration bleibt hinter strikten Schemas, typsicheren Services, Recovery-Verhalten sowie Contract- und Live-Tests gekapselt.
Das Produkt unterstützt weiterhin eine Schule, während die Neuentwicklung separat voranschreitet.
Die Neuentwicklung besitzt klare Grenzen zwischen Domänenlogik, Plattform-UI, externen Systemen, Persistenz, Synchronisation und Delivery-Checks.
Anfangs habe ich Event Sourcing zu weit getrieben. Weitgehend statische Referenzdaten wie das Gründungsjahr einer Schule profitierten nicht von Events und erzeugten vermeidbare Komplexität. Heute nutze ich Events dort, wo Historie, Reihenfolge, Replay oder Synchronisation ihren Aufwand rechtfertigen, und einfachere Fetch-and-Cache-Grenzen für Referenzdaten.