Quiz : le come-back du retour de la revanche

Mais cette fois-ci on a un truc qui marche :p

a marqué ce sujet comme résolu.

Bonjour

Comme je l’ai annoncé sur le discord des dev et de la rédaction, en cuisinant un curry à la patate douce, j’ai eu une épiphanie. Certes j’ai un peu de retard mais voilà, je me suis dit "mais en vrai, avec ce qu’on a aujourd’hui, je suis sûr, en 50 lignes de JS je peux faire un système de quizz qui sera implémentable rapidement et tout".

Alors j’ai proposé une chose : je fais un POC, c’est à dire une démonstration que c’est possible et qui permet de voir quelles sont les choses dont on a réellement besoin pour intégrer tout ça proprement. Si le POC est proche de ce dont on a besoin, on le release après un peu de nettoyage, sinon on implémente ce dont on a besoin puis on release le quizz complet.

POC n°1

Mon idée de base est celle-ci : je me limite pour l’instant aux QCM.

Dans un tuto, l’auteur a un nouveau bouton "Ajouter un Quizz". Lorsqu’il appuie sur ce bouton, il arrive sur l’interface habituelle : un éditeur de texte bateau.

Et là, il va écrire la correction de son quizz.

Par exemple :

# Question 1

- [ ] mauvaise réponse
- [ ] mauvaise réponse
- [x] bonne réponse
- [ ] mauvaise réponse
- [x] bonne réponse

# Question 2

- [ ] mauvaise réponse
- [ ] mauvaise réponse
- [x] bonne réponse

Tant que le tuto n’est pas publié, lui il ne voit que la correction, mais le jour où le tuto est publié le visiteur, lui, il voit le formulaire vide avec un bouton "valider le quizz".

Et quand il appuie dessus, ça fait automatiquement la correction :

POC 1 - simple autocorrection
Autocorrection : les réponses bonnes sont laissées ainsi, les réponses manquantes sont en gras, les réponses fausses en rouge

Comme je l’ai dit ce n’est qu’un POC, alors les couleurs ne sont pas celles qui seront utilisées à la fin. Mais ça donne déjà une idée de ce qui est possible.

Bon, par contre, avec cette solution, il a fallu 70 lignes de JS et un poil de python/html

POC n°2

Fort de cette victoire, j’ai donc posté mes premières preview sur le discord et ouvert une PR sur notre github.
Là bas @Nek a proposé qu’on puisse donner des explications lors de la corrections. Cette idée rentre parfaitement dans mon concept de "l’auteur écrit la correction, zds propose le quizz" mais il me faut un peu de structure.

Sous les conseil de @Amaury, j’ai donc fait ainsi : plutôt que de mettre la liste de réponses les unes à la suite des autres, j’utilise le bloc neutre pour présenter la question : grâce à la possibilité de mettre un titre, vous avez la question qui est bien présentée. Et pour mettre l’explication, je met un autre bloc neutre dans mon corrigé.

[[neutre | Question 1]]
| - [ ] mauvaise réponse 1
| - [ ] mauvaise réponse 2
| - [x] bonne réponse 1
| - [ ] mauvaise réponse 3
| - [x] bonne réponse 2
| [[neutre | Explication]]
| | La bonne réponse est "bonne réponse" car c'est elle qui s'approche le plus de la philosophie de la bonne réponse contrairement aux mauvaises réponses


[[neutre | Question 2]]
| - [ ] mauvaise réponse 12
| - [ ] mauvaise réponse 22
| - [x] bonne réponse 12
| - [ ] mauvaise réponse 32
| - [x] bonne réponse 22
un exemple de quizz avec le bloc neutre pour présenter la question

Une fois le tutoriel publié, l’utilisateur voit ça :

Le quizz prêt à avoir votre réponse
Le quizz prêt à avoir votre réponse

Et lors qu’on répond on a donc :

La correction
La correction

On peut le constater le status de la réponse est mieux mis en avant et l’explication apparaît. Ce que vous n’avez pas vu c’est que maintenant que j’ai de la structure je peux aussi remonter des statistiques question par question : ai-je bon ou pas? Quelle réponse donnée?

POC N°3 (WIP)

Parlons-en des statistiques, la prochaine étape de mon POC sera d’ajouter des graphes dans les statistiques du tuto. Je dois vous l’avouer, pour l’instant, je sais pas comment les afficher mais ça viendra.

POC N°4 les texte à trou (peut être)

L’idée serait de dire que lorsqu’on est dans un quizz, dans un bloc neutre de premier niveau (donc pas dans l’explication), on remplacerait les objets stylés "touche" (||touche|| touche) par des champs texte et qu’on afficherait la correction de la même manière.

+13 -0

ça j’en suis pas capable, ou alors il faudrait que l’auteur ajoute un grand nombre de questions et qu’on puisse configurer le nombre maximal affichées. En gros peut être que j’en suis capable, mais je vais pas me lancer dans ça pour l’instant, je pense qu’avoir les stats c’est plus important pour se faire une idée du rendu.

Salut, j’ai lu en diagonale, mais ce système de quiz sera-t-il aussi implémenté pour les messages forums ?
Ce serait sympa de pouvoir lancer un nouveau sujet où l’on propose, simplement pour se distraire, un petit quiz et avoir une discussion autour.

L’idée étant d’animer un peu le bar à smoothies ou la section sciences par exemple.

Ma proposition, telle que discutée sur Discord : plutôt que de remonter “réponse juste ou fausse” pour chaque question, remonter plutôt “pourcentage de gens ayant répondu telle réponse” pour chaque réponse de chaque question.

Par exemple, si on a trois utilisateurs qui répondent respectivement a ; a et c ; a et d — on aurait 100% pour a (tout le monde a répondu a) ; 0% pour b ; 33,3% pour c et d.

L’avantage est que ça permet de pouvoir avoir une vue plus fine sur ce que les gens ont répondu, et par extension sur d’éventuels points d’amélioration du cours. Par exemple, imaginons que l’auteur pose une question avec une réponse piège sur un point délicat du cours ; si beaucoup de monde tombe dans le piège, ça peut indiquer que le cours gagnerait à plus insister là dessus.

Visuellement, ça pourrait donner quelque chose comme ça (en plus joli).

Aperçu d'une question avec ses réponses et leurs statistiques. La question est présentée, puis une liste avec chacune des réponses (les bonnes étant en gras), et sous chaque réponse, une barre de pourcentage indiquant combien de personnes ont répondu ça.
Une idée de mise en page des statistiques. Les bonnes réponses sont en gras, et les barres correspondent au pourcentage de gens ayant répondu cette réponse (que ce soit juste ou faux). La somme des pourcentage peut donc dépasser 100, vu qu’on est sur des questionnaires à choix multiple. On constaterait ici que la majorité des gens répondent juste, mais que l’une des deux réponses justes semble moins évidente que l’autre ; et qu’un petit pourcentage se trompe malgré tout (mais ça, ce sera probablement toujours le cas).
+9 -0

Étant donné que ça semble vraiment être ce que vous voulez, je considère mon POC comme terminé, ne reste plus qu’à passer au travail final. Voici le plan

Comment passer du POC au travail final?

  • attendre le merge de la refonte graphique
  • fixer le soucis de fusion de la dernière réponse et de l’éventuelle correction
  • documentation, notamment pour préparer les évolutions
  • nettoyage du code pour le rende plus lisible, notamment sur le js
  • styling statistiques (alignement réponse/jauge)
  • réduire la page de sats pour les quizz

Est-ce qu’on utiliserait un bloc spécial (ce qui permettrait de le styliser plus efficacement), dans ce genre là, ou pas, finalement ? Ça avait été brièvement mentionné.

[[qcm|Question du QCM ?]]
| - [ ] Réponse 1
| - [x] Réponse 2
| - [ ] Réponse 3
| - [ ] Réponse 4
|
| Explications rédigées blablabla
+1 -0

Je me pose une question quant à la modification ultérieure d’un QCM.

Un auteur rédige un QCM avec 4 réponses possibles. Les lecteurs répondent, il y a donc des stats. 6 mois plus tard, l’auteur décide de modifier son questionnaire. Il change complètement l’intitulé de la réponse 1, et il vient même ajouter une réponse entre la 1 et la 2. Les stats repartent-elles à zéro, ou sont-elles conservées ? Si oui, comment ? La réponse 1 n’étant plus la même, les stats devraient théoriquement disparaître. La réponse 2 étant devenue la 3, comment les stats sont-elles répercutées ? Si tout est supprimé, c’est sûrement plus facile à gérer, mais c’est dommage de supprimer les stats pour la correction d’une faute d’orthographe dans une réponse (ou une question).

+0 -0

Salut, je vais essayer de répondre aux questions une par une

Un auteur rédige un QCM avec 4 réponses possibles. Les lecteurs répondent, il y a donc des stats. 6 mois plus tard, l’auteur décide de modifier son questionnaire. Il change complètement l’intitulé de la réponse 1, et il vient même ajouter une réponse entre la 1 et la 2. Les stats repartent-elles à zéro, ou sont-elles conservées ?

Pour ces cas aux limites, je vais te donner l’état actuel du POC :

  • Les statistiques de la question 1 seront remise à zéro, mais c’est
    • modifiable (une ligne à retirer dans le code python)
    • customisable : j’entends par là on peut tout à fait proposer à l’auteur de fusionner des questions et réponses une fois le nouveau tuto publié
  • Les statistiques de la nouvelle question "2" seront bien mise à 0 mais celles de l’ancienne question seront gardées

Pour tout te dire, les réponses sont pour l’instant identifiées par le couple question/intitulée l’indice n’est même pas sauvegardé (mais ça, ça sera modifié pour garder une cohérence d’affichage).

Il faudra voir si on ne doit pas revoir le modèle pour se préparer à faire des changements/tout remettre à zéro si on détecte un changement de question.

Petit avancement maintenant que la PR sur la normalisation du CSS et de l’accessibilité a été réalisée :

Avant de répondre Avant de répondre

Après réponse
Après réponse
Les stats
Les stats

J’ai documenté la fonctionnalité. Plusieurs bugs ont été corrigés :

  • lors qu’on oublie une bonne réponse mais qu’on met que des bonnes réponses on a bien la correction qui marque le tout comme mauvais
  • lors de la remontée des stats, les proportions sont désormais correcte (avant, si une personne répondait A et B, et que c’était la seule réponse connue, les statistiques affichait 50% pour 1 50% pour 2 au lieu de 100% pour chaque).
  • l’alignement des barres est meilleure mais en testant un peu je me suis rendu compte que la barre de progression par défaut est très moche sur chrome par rapport à ma barre firefox ubuntu. si un dev front peut passer par là pour faire mieux, je prends

Sur zmarkdown, on a désormais les quizz qui sont supportés avec la gestion de la correction qui est mise dans la bloc caché.

+3 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte