Hauke Schnau
Zurück zu den Projekten

Studienbuch

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.

Studienbuch-App-Screens mit Tagesansicht, Noten und Fehlzeiten

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.

Worum es geht

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.

Meine Verantwortung

Ich verantworte Produktrichtung und technische Architektur: Mobile, Web, Domänenlogik, APIs, Persistenz, Synchronisation, Tests und Delivery.

01

Wichtige Entscheidungen

01

Typsicherer Domänenkern

Wiederverwendbare Regeln, Selektoren und Formatierung werden in einen frameworkunabhängigen, typsicheren Domänenkern extrahiert, statt Produktverhalten an eine UI-Generation zu koppeln.

02

Explizite Sync-Regeln

Groundswell basiert auf expliziten Event- und Adapterverträgen für Offline-Publikation, kanonische Verifikation, Persistenz, Broadcast, Retry und Replay.

03

Gekapselte Fremdsystem-Integration

Die instabile WebUntis-Integration bleibt hinter strikten Schemas, typsicheren Services, Recovery-Verhalten sowie Contract- und Live-Tests gekapselt.


Aktueller Stand

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.

Was ich gelernt habe

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.


  • TypeScript
  • React Native
  • Expo
  • TanStack Start
  • TanStack Router
  • Effect
  • Bun
  • NativeWind
  • Nix
  • Flutter
  • Dart
  • TanStack Query
  • TanStack Form
  • TanStack Table
  • tRPC
  • Hono
  • Drizzle ORM
  • PostgreSQL
  • SQLite

Zurück zu den Projekten