feat(run): mode passation en présentiel (poste partagé) — ?kiosk=1#131
Merged
Conversation
Cas d'usage : faire passer plusieurs participant·e·s à tour de rôle sur le même ordinateur (laboratoire, salle de test). Avec le lien classique, l'identité est mémorisée dans le localStorage du navigateur : la 2e personne récupérait alors la session de la 1re (même ordre de blocs, réponses déjà saisies) — problème d'intégrité en présentiel. Mode présentiel (paramètre d'URL ?kiosk=1) : - L'identité participant·e est stockée dans sessionStorage (propre à l'onglet) au lieu du localStorage partagé. Elle survit à un rafraîchissement accidentel en cours de passation, mais chaque nouvelle passation repart d'une identité neuve → ordre des blocs et session indépendants. - À l'écran de fin, bouton « Démarrer nouvelle passation » (avec confirmation) qui efface l'identité de l'onglet et recharge pour la personne suivante. Ce bouton n'apparaît QU'EN mode présentiel ; en ligne, l'écran de fin reste « Merci, vous pouvez fermer cette page ». - Plusieurs postes peuvent être utilisés en parallèle sans interférence (UUID uniques, allocation des conditions sérialisable côté serveur). Lien dédié exposé dans le panneau « Lien participation » (Copier + Ouvrir) et documenté dans la section 10 de /docs. Aucun changement backend nécessaire. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Résumé
Cas d'usage : faire passer plusieurs participant·e·s à tour de rôle sur le même ordinateur (laboratoire, salle de test), éventuellement sur plusieurs postes en parallèle.
Problème résolu : avec le lien de participation classique, l'identité du·de la participant·e est mémorisée dans le
localStoragedu navigateur. Sur un poste partagé, la 2ᵉ personne récupérait la session de la 1ʳᵉ → même ordre de blocs, réponses déjà saisies, données mélangées. Problème d'intégrité en présentiel.Solution : mode présentiel
?kiosk=1sessionStorage(et non lelocalStoragepartagé). Survit à un rafraîchissement accidentel en cours de passation, mais chaque nouvelle passation repart d'une identité neuve → ordre des blocs et session indépendants.Où c'est exposé
?kiosk=1(Copier + Ouvrir) et une note explicative./docssection 10 : sous-section dédiée (pourquoi, mode d'emploi en 3 étapes, parallélisme).Aucun changement backend
L'allocation existante gère déjà l'unicité (chaque
participantIddistinct = nouvelle session) et la concurrence (transaction sérialisable).Test plan
?kiosk=1(étude En collecte) → réaliser l'étude → écran de fin affiche « Démarrer nouvelle passation »?kiosk=1) → écran de fin classique, pas de bouton/docssection 10 → sous-section « Passation en présentiel »🤖 Generated with Claude Code