Skip to content

feat: Quiz QCM Programmation 4e-3e avec sauvegarde Firestore#22

Open
StimGlb wants to merge 101 commits intomainfrom
dev
Open

feat: Quiz QCM Programmation 4e-3e avec sauvegarde Firestore#22
StimGlb wants to merge 101 commits intomainfrom
dev

Conversation

@StimGlb
Copy link
Copy Markdown
Owner

@StimGlb StimGlb commented May 5, 2026

Summary

  • Nouveau quiz interactif src/pages/activites/4e-3e/programmation-quiz.html — 8 questions QCM sur la programmation (variables, boucles, conditions, algorithmes), conçu pour les 4e et 3e
  • Logique métier src/js/activites/programmation-quiz.js — wizard phases 1 à 10 (accueil + 8 questions + bilan), feedback immédiat par réponse, sauvegarde one-shot en Firestore à la fin
  • Système de tentatives — max 2 essais (localStorage), score x 0,5 conservé à la 2e tentative, bouton désactivé dès épuisement du quota
  • Firestore — collection quiz_submissions, champs : wizard_id, id_eleve, classe, score_brut, score, tentative, date_passage
  • Styles src/css/wizard.css — ajout classes quiz : .wizard--quiz, .wizard__codeblock, .wizard__option/--selected/--correct/--incorrect, .wizard__feedback CSS-driven (aucun innerHTML)
  • WizardFirebase src/js/wizard-firebase.js — ajout option wizardId dans le constructeur et dans le document Firestore
  • Page d'accueil index.html — bouton d'accès rapide au quiz dans .hero__secondary-actions

What a reviewer should know

  • Le quiz n'utilise pas la classe WizardFirebase (pattern incompatible : save one-shot vs autosave) — logique Firebase directe via setDoc
  • Aucun innerHTML, aucun onclick= inline — conforme aux conventions du projet
  • Le scroll après validation est géré par scrollIntoView({ block: 'nearest' }) pour éviter le saut en haut de page
  • Les règles Firestore doivent autoriser read/write sur quiz_submissions (à configurer dans la console Firebase)
  • La limitation de tentatives est côté client (localStorage) — acceptable pour le contexte scolaire sans authentification

Test plan

  • Accéder à /src/pages/activites/4e-3e/programmation-quiz.html
  • Vérifier que le bouton Commencer est désactivé sans nom/classe saisis
  • Répondre aux 8 questions — vérifier feedback correct/incorrect + scroll centré sur la card
  • Vérifier que le bilan affiche le bon score et le message adapté
  • Vérifier la sauvegarde dans Firestore (console Firebase -> collection quiz_submissions)
  • Relancer le quiz (2e tentative) — vérifier l'avertissement x 0,5 dans le bilan
  • Tenter une 3e fois — vérifier que le bouton Commencer est désactivé avec message quota
  • Vérifier le lien depuis la page d'accueil (hero -> quiz)

Generated with Claude Code

StimGlb and others added 30 commits March 11, 2026 21:02
Plugin copie src/js/libs/ (marked.min.js) et src/data/activites/ vers
dist/ en préservant les chemins relatifs utilisés par les pages HTML.
Sans ce commit, Netlify ne trouvait pas marked.min.js → 404 + MIME error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Système B était un doublon obsolète du Système A (navigation.json +
inline script index.html). Les deux peuplaient les mêmes containers
(.correction-grid, .tools-grid) → loadLinks() écrasait les données
correctes avec du contenu stale contenant des URLs /dist/ invalides.

Vérification : links-loader.js n'était importé que par app.js,
et .tools-grid/.correction-grid inexistants sur les autres pages
qui chargent app.js. Suppression sans régression.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- build/    → check-dist.js, security-check.js
- deploy/   → netlify-clean.js
- dev/      → sync-dev-pages.js, setup-hooks.js, register-page.js, session-end-check.js
- firestore/ → export-firestore.js, autofill-wizard-firestore.js
- git/      → autocommit.sh, new-branch.sh, dev-prepare.sh, test-timer.sh

Fixes :
- dev-prepare.sh : ROOT corrigé (../..) pour le nouveau niveau d'imbrication
- session-end-check.js : chemin check-dist.js → scripts/build/check-dist.js
- package.json : tous les chemins npm run mis à jour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…Vite

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
StimGlb and others added 25 commits April 8, 2026 18:13
Updated the centralized wizard configuration password.
The deploy:dev script deployed raw source code (--dir=.) with only a warning,
creating a footgun: users could unknowingly deploy unbuild code to Netlify.
deploy:preview (build + preview) replaces all legitimate use cases. For rare
debug scenarios, friction (manual netlify deploy --dir=.) is the protection.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Remove non-critical outils from nav (keep only: Cours, Révisions, Réparabilité, Tinkercad, Graphiques)
- Add overflow-x auto + flex-shrink: 0 on desktop nav to enable horizontal scroll
- Style scrollbar: Firefox thin, WebKit custom (discrete 4px gray)

Fixes nav overflow on viewport < 1024px.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Fix nav overflow: curate items + add horizontal scroll
Nav (components.js):
- Reduce to 3 static items: Cours, Révisions, Corrections
- Disable dynamic sections injection (sections = [])
- Corrections now links directly to /src/pages/corrections/corrections.html
  instead of #corrections anchor

navigation.json:
- Restore outils section (7 items) for index tools-grid
  (outils data feeds index-loader.js, not the nav)

Light/dark mode toggle (full removal):
- Remove <button class="mode-toggle"> from index.html
- Remove inline initLightModeToggle() script from index.html
- Delete src/js/light-mode-toggle.js
- Delete src/css/style-index-light.css (~200 lines)
- Remove style-index-light.css <link> from index.html

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Ajoute un bouton d'accès rapide au quiz QCM Programmation 4e/3e
dans la section hero__secondary-actions de la page d'accueil.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@netlify
Copy link
Copy Markdown

netlify Bot commented May 5, 2026

Deploy Preview for technodocs ready!

Name Link
🔨 Latest commit 1d1959e
🔍 Latest deploy log https://app.netlify.com/projects/technodocs/deploys/69fa6e699f0a5400082dd96d
😎 Deploy Preview https://deploy-preview-22--technodocs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

StimGlb and others added 4 commits May 5, 2026 23:24
…lignée, pieuvre

8 questions QCM sur les Objets et Systèmes Techniques (OST 11 · OST 21),
compétences BO 2024. Même architecture que le quiz Programmation : 2 tentatives
max, score × 0,5 à la 2e, sauvegarde Firestore (collection quiz_submissions,
wizard_id: ost-quiz-5e-4e-3e). Select classe étendu aux 5e/4e/3e.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants