D2 — Het aanleverpad: vier stappen, met voorbeeld en zelfcontrole #2038

Closed
opened 2026-09-09 20:47:12 +00:00 by brenno · 2 comments
Owner

Onderdeel van het bouwplan voor bewijs bij badges. Het ontwerp staat in de
OciServe-repo: docs/EVIDENCE.md (model, zekerheidsniveaus, bewaren) en
docs/adr/0015-evidence-assurance-and-retention.md (de productbesluiten).
OciDeck is in deze keten de kant van de cursist.

Waarom dit bestaat

Voor sommige badges moet je bewijs aanleveren: een EHBO- of BHV-diploma, een
medische verklaring, een taalvaardigheidsverklaring, een gedragsverklaring, of
een diploma van iets anders. Een beoordelaar stelt vast of het klopt, en pas
daarna wordt de badge toegekend.

Vandaag kan de cursist in OciDeck niets van dit alles: hij ziet zijn badges
niet en hij kan niets aanleveren. De eLearning-module heeft drie bestemmingen —
Mijn cursussen, Voortgang, Gegevens — en bewijs komt er als vierde bij.

Wat dit toevoegt. De route waarlangs een cursist bewijs aanlevert.

Vier stappen, en stap één is al ingevuld. Soort (komt uit de eis waarop je
klikte) → wat je nodig hebt, met het voorbeeld en wat je mag afdekken → bestand
of foto → geldig tot, voorgevuld waar de soort dat weet. Geen leeg uploadvak,
nooit.

Toon het voorbeeld ook ná het kiezen van het bestand, naast de eigen scan,
als zelfcontrole. De grootste categorie afkeuringen is geen fraude maar een
slechte scan of het verkeerde document; die vang je hier af, vóórdat ze een
beoordelaar kosten. Toon alleen het voorbeeld dat bij het land van het gevraagde
document hoort — anders niets.

Minimalisatie aan de bron. De instructie per soort zegt wat je mag afdekken
(een burgerservicenummer, een pasfoto). De soort "kopie identiteitsbewijs"
bestaat bewust niet en wordt niet aangeboden.

Toestemmingstekst in gewone taal, met wat er met het document gebeurt —
bewaard, afgeschermd bewaard, of alleen bekeken en daarna gewist. Geen blok van
elf regels.

Toegestane formaten: PNG, JPEG, WebP en PDF. Dat is wat de server accepteert;
SVG en actieve documentformaten worden geweigerd.

Te doen

  1. Vier stappen zoals hierboven, met de soort voorgeselecteerd vanuit de
    eis.
  2. Instructie en voorbeeld van de soort tonen vóór het kiezen van een bestand.
  3. Na het kiezen: eigen scan naast het voorbeeld, als zelfcontrole.
  4. Geldig-tot voorgevuld waar de soort dat weet, overslaanbaar waar de soort
    onbeperkt geldig is. Markeer het als "opgegeven, nog niet gecontroleerd".
  5. Ligt er al een geaccepteerd, geldig stuk van dezelfde soort? Toon dát in
    plaats van een uploadknop — vraag nooit twee keer om hetzelfde.
  6. Aanlevering die niet weg kan, gaat in de wachtrij met "wordt verzonden zodra
    je online bent".
  7. Alle teksten via make add-l10n SPEC=...; het scherm door de
    overflow-stresstest.

Bestanden (voorstel)

lib/widgets/dialogs/ociserve_evidence_submit.dart (nieuw)
lib/models/ociserve_evidence.dart

Klaar wanneer

  • Iemand die de app niet kent levert een certificaat aan zonder hulp —
    getoetst met een gebruikerstest, niet alleen met een widgettest.
  • De app vraagt nooit om een document dat er al geaccepteerd ligt.
  • Offline aanleveren gaat in de wachtrij en verdwijnt niet.

Afhankelijkheden

Wacht op D1 en op brenno/OciServe#519. Kritiek pad.

Vaste verplichtingen in deze repo

  • Geen zichtbare tekst buiten l10n.d('...'). Elke nieuwe string betekent
    32 vertalingen via make add-l10n SPEC=...; make l10n-check bewaakt de
    pariteit.
  • Elk nieuw bestand in lib/ krijgt een regel in docs/SOURCE_MAP.md en
    moet in minstens één test voorkomen, anders valt make check.
  • Bestanden blijven onder 1000 regels; splits met part in plaats van te
    groeien.
  • Een nieuw topniveauscherm gaat door de overflow-stresstest (200% tekstschaal).
  • make check groen vóór de merge.
  • Werk in een branch, nooit direct op main.
> Onderdeel van het bouwplan voor bewijs bij badges. Het ontwerp staat in de > OciServe-repo: `docs/EVIDENCE.md` (model, zekerheidsniveaus, bewaren) en > `docs/adr/0015-evidence-assurance-and-retention.md` (de productbesluiten). > OciDeck is in deze keten de kant van de cursist. ## Waarom dit bestaat Voor sommige badges moet je bewijs aanleveren: een EHBO- of BHV-diploma, een medische verklaring, een taalvaardigheidsverklaring, een gedragsverklaring, of een diploma van iets anders. Een beoordelaar stelt vast of het klopt, en pas daarna wordt de badge toegekend. Vandaag kan de cursist in OciDeck **niets** van dit alles: hij ziet zijn badges niet en hij kan niets aanleveren. De eLearning-module heeft drie bestemmingen — Mijn cursussen, Voortgang, Gegevens — en bewijs komt er als vierde bij. **Wat dit toevoegt.** De route waarlangs een cursist bewijs aanlevert. **Vier stappen, en stap één is al ingevuld.** Soort (komt uit de eis waarop je klikte) → wat je nodig hebt, met het voorbeeld en wat je mag afdekken → bestand of foto → geldig tot, voorgevuld waar de soort dat weet. Geen leeg uploadvak, nooit. **Toon het voorbeeld ook ná het kiezen van het bestand**, naast de eigen scan, als zelfcontrole. De grootste categorie afkeuringen is geen fraude maar een slechte scan of het verkeerde document; die vang je hier af, vóórdat ze een beoordelaar kosten. Toon alleen het voorbeeld dat bij het land van het gevraagde document hoort — anders niets. **Minimalisatie aan de bron.** De instructie per soort zegt wat je mag afdekken (een burgerservicenummer, een pasfoto). De soort "kopie identiteitsbewijs" bestaat bewust niet en wordt niet aangeboden. **Toestemmingstekst in gewone taal**, met wat er met het document gebeurt — bewaard, afgeschermd bewaard, of alleen bekeken en daarna gewist. Geen blok van elf regels. **Toegestane formaten:** PNG, JPEG, WebP en PDF. Dat is wat de server accepteert; SVG en actieve documentformaten worden geweigerd. ## Te doen 1. Vier stappen zoals hierboven, met de soort voorgeselecteerd vanuit de eis. 2. Instructie en voorbeeld van de soort tonen vóór het kiezen van een bestand. 3. Na het kiezen: eigen scan naast het voorbeeld, als zelfcontrole. 4. Geldig-tot voorgevuld waar de soort dat weet, overslaanbaar waar de soort onbeperkt geldig is. Markeer het als "opgegeven, nog niet gecontroleerd". 5. Ligt er al een geaccepteerd, geldig stuk van dezelfde soort? Toon dát in plaats van een uploadknop — vraag nooit twee keer om hetzelfde. 6. Aanlevering die niet weg kan, gaat in de wachtrij met "wordt verzonden zodra je online bent". 7. Alle teksten via `make add-l10n SPEC=...`; het scherm door de overflow-stresstest. ## Bestanden (voorstel) ``` lib/widgets/dialogs/ociserve_evidence_submit.dart (nieuw) lib/models/ociserve_evidence.dart ``` ## Klaar wanneer - Iemand die de app niet kent levert een certificaat aan zonder hulp — getoetst met een gebruikerstest, niet alleen met een widgettest. - De app vraagt nooit om een document dat er al geaccepteerd ligt. - Offline aanleveren gaat in de wachtrij en verdwijnt niet. ## Afhankelijkheden Wacht op D1 en op brenno/OciServe#519. Kritiek pad. ## Vaste verplichtingen in deze repo - **Geen zichtbare tekst buiten `l10n.d('...')`.** Elke nieuwe string betekent 32 vertalingen via `make add-l10n SPEC=...`; `make l10n-check` bewaakt de pariteit. - **Elk nieuw bestand in `lib/` krijgt een regel in `docs/SOURCE_MAP.md`** en moet in minstens één test voorkomen, anders valt `make check`. - Bestanden blijven onder 1000 regels; splits met `part` in plaats van te groeien. - Een nieuw topniveauscherm gaat door de overflow-stresstest (200% tekstschaal). - `make check` groen vóór de merge. - Werk in een branch, nooit direct op `main`.
Author
Owner

Integratiecontrole. Dit pakket leunt op hetzelfde leesmodel als #2037:
brenno/OciServe#529 levert per eis de status, het effectieve minimum
zekerheidsniveau en de minimale resterende geldigheid. Neem die waarden over in
plaats van ze af te leiden.

Let ook op de waarschuwtermijn in de statuskaart ("we waarschuwen je 60 dagen
van tevoren"): die staat in de bewijssoort en hoort van de server te komen, niet
hardgecodeerd in de app.

**Integratiecontrole.** Dit pakket leunt op hetzelfde leesmodel als #2037: brenno/OciServe#529 levert per eis de status, het effectieve minimum zekerheidsniveau en de minimale resterende geldigheid. Neem die waarden over in plaats van ze af te leiden. Let ook op de waarschuwtermijn in de statuskaart ("we waarschuwen je 60 dagen van tevoren"): die staat in de bewijssoort en hoort van de server te komen, niet hardgecodeerd in de app.
Author
Owner

Reeds geimplementeerd op main in commit 1a8253c50 (PR gemerged). Tests in ociserve_evidence_test.dart en ociserve_evidence_ui_test.dart dekken het bewijs. Gesloten omdat het werk al geland was.

Reeds geimplementeerd op main in commit 1a8253c50 (PR gemerged). Tests in ociserve_evidence_test.dart en ociserve_evidence_ui_test.dart dekken het bewijs. Gesloten omdat het werk al geland was.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2038
No description provided.