PWA architectuur & offline datasync

Waarom voelt MiniMind aan als een razendsnelle native app en hoe kan een leerling zonder haperingen verder oefenen wanneer de school-wifi wegvalt of in de trein? Een blik onder de motorkap van onze Progressive Web App (PWA).

⚡ De PWA Stack in het kort
  • App Shell Caching: Alle essentiële interfaces, spellogica en grafische elementen worden lokaal opgeslagen.
  • Client-Side FSRS: Het berekenen van het vergeetinterval gebeurt lokaal in de browser; er is géén vertragende server-roundtrip nodig tussen flashcards.
  • Offline Sync Manager: Offline gemaakte herhalingen worden in een wachtrij gezet en automatisch gesynchroniseerd zodra er weer netwerkverbinding is.

1. Het App Shell Model (Sub-100ms laadtijden)

Bij traditionele webapplicaties moet de browser bij elke pagina-klik opnieuw HTML en scripts downloaden van de server. In scholen met honderden gelijktijdige tablets zorgt dit voor overbelaste netwerken en trage laadschermen.

MiniMind gebruikt het App Shell Architectuurmodel. De allereerste keer dat een leerling naar app.minimind.be surft, installeert MiniMind de complete applicatieschil in de browser-cache:

  • De kerninterfaces (Leerlingweergave, Leerkrachtdashboard, Game Engines)
  • De didactische spellings- en grammaticakaarten
  • De visuele wiskunde- en dicteerrenderers
  • Vector-iconen en typografie

Bij elk volgend bezoek start MiniMind direct op vanaf de lokale flash-opslag van het apparaat in minder dan 100 milliseconden, zelfs als de internetverbinding volledig uitstaat.

MiniMind Offline & Sync Dataflow
📱 Leerling UI (PWA)Flashcard / Spelinteractie
↓ Beoordeling (Opnieuw / Goed)
🧠 Client-side FSRS EngineDirecte intervalberekening (0ms lag)
💾 IndexedDB QueueOffline opslag van reviewlogs
📶 OfflineSyncManagerLuistert naar 'online' event
☁️ Firebase FirestoreEU Datacenter (Frankfurt/België)
↓ Aggregatie
📬 Docenten Digest & TiersKnelpuntenanalyse voor leerkracht

2. Waarom de FSRS-Engine in de browser draait

In veel leersoftware wordt na elke opgave een API-call naar een server gestuurd om de score te verwerken. Als het schoolnetwerk even traag is, ziet de leerling een laadwieltje draaien tussen elke vraag. Dit breekt de leersnelheid en focus (de didactische flow).

In MiniMind draait het volledige wiskundige FSRS-algoritme (de retrievability- en stabiliteitsfuncties) 100% lokaal. Wanneer een leerling een oefening maakt:

  1. Berekent de lokale engine binnen 1 milliseconde het nieuwe interval.
  2. Schuift de kaart direct door naar de volgende opgave.
  3. Wordt de sessielog op de achtergrond weggeschreven, zonder dat de leerling ook maar een seconde hoeft te wachten.

3. Offline Synchronisatie & Conflictafhandeling

Wat gebeurt er als een leerling thuis oefent op de bank terwijl de wifi hapert, of onderweg in de auto op de tablet?

1

Offline Detectie

De browser registreert dat er geen internetverbinding is. MiniMind toont een subtiel offline-icoontje, maar onderbreekt de oefensessie niet.

2

Lokale Transactiequeue

Elke voltooide kaart wordt met een tijdstempel opgeslagen in een lokale transactietabel.

3

Automatische Flush

Zodra de verbinding herstelt, triggert MiniMind een gebundelde sync-transactie naar de centrale server.

4

Server Validatie

De server controleert de transactie en slaat de voortgang op.