mathALEA v3: Cahier des charges - mathalea/mathalea GitHub Wiki

Réflexions du groupe de travail (été 2022)

CAN

  • Quand on choisit plusieurs questions, il faudrait qu'on ait la possibilité de changer une question par une question et de choisir pour le diaporama un temps par question (icônes à ajouter pour chaque question : temps et "nouvelles données")
  • un menu qui permettrait de réellement créer des can en choisissant les questions que l'on souhaite. Pour le moment, on choisit les exercices mais ceux-ci ne sont pas intégrés sous forme de questions. Du coup on a une liste d'exercices mais pas une liste de questions qui ferait un sujet can.
  • le problème des points quand il y a 2 champs à compléter pour l'interactif. Il faudrait compter 1p pour la question dans ce cas pour avoir un total de points cohérents par rapport au nombre de questions.
  • Régler le problème de l'affichage interactif et une question à la fois qui comportent des bugs (par exemple les questions 6 et 7 de la can 2018 6ième.
  • Améliorer l'affichage du diaporama pour les figures géométriques ou tableaux de variations (pratiquement inutilisable à l'heure actuelle)
  • une sortie pdf plus sympa avec un petit logo made coopmaths
  • Can aléatoire "organisée" par exemple sur 10, 20 ou 30 questions, on choisit 5 questions niveau 6 dans le thème calculs, 5 niveau 5 dans le thème géométrie...
  • Créer sa can de a à z avec les questions que l'on veut.
  • Prévoir un tuto vidéo pour expliquer les différentes fonctionnalités

AMC

Propositions qui devront surement être réorganisées: Il y a des numéros pour pouvoir référencer facilement chaque point.

Fonctionnalités :

  1. Proposer des corrigés différents pour une même question.
  2. Internalisation des contenus et de l'interface utilisateur
  3. Pouvoir écrire des problèmes comportant une série de questions, avec affichage des solutions question par question.
  4. Paramètres infinis et simplification de leur utilisation (plus de sup1, sup2, etc.)
  5. Prévoir la possibilité, pour l'utilisateur final, de faire un feedback directement au concepteur d'un exo.
  6. On peut imaginer un site/appli. L’élève y gèrerait les liens vers des exercices, vers des annales et pourrait ajouter des mots clés “déjà fait”, “à retravailler”, “maitrisé“, “difficile”... pour y fabriquer son propre parcours. Et pourquoi pas le prof qui “pusherait” des sélections.
  7. Refonte de la vérification d'égalité entre la réponse attendue et la valeur saisie dans mathlive
  8. Gérer l'impression dans le navigateur sans recourir à Overleaf (qui restera une possibilité). Permettre à l'utilisateur d'ajouter des sauts de pages, d'éditer le texte, de personnaliser l'en-tête.
  9. Pour la sortie papier prévoir l'ajout optionnel de QRCode vers la vidéo choisie par le professeur.
  10. Permettre le pnpm start sur un seul exo de façon à ne pas être obligé de builder tout le site pour bosser sur un exo en pré-dev

Choix des outils

  1. Généraliser l'utilisation d'une extension comme codeStream

WorkFlow

  1. Suivre toutes les règles de bonnes pratiques (pas de copier-coller, nommage des variables, tests unitaires et autres, documentation) et n'intégrer que le code qui y répond.
  2. Se concerter avant de coder et faire une véritable travail de co-construction
  3. Code maintenable (modulaire, compréhensible et extensible) Avoir un cadre précis qualité dans les PR (génération de la doc exhautive, modularité, pas de code spaghetti, etc.)

Choix techniques :

  1. Passage de webpack à viteJS ou ESBuild
  2. Suppression de SemanticUI et de JQuery
  3. Une fonction displayExercice doit pouvoir créer trois HTMLElement, un avec l’exercice, un autre avec la correction et un 3e avec les paramètres possibles
  4. Il faut aussi prévoir un displayQuestion pour afficher les questions les unes après les autres
  5. Un exercice sera dans un template HTML, quand il est rendu dans un div, on pourra déplacer cette div, la mettre en plein écran... sans recalculer le contenu
  6. Reprendre la fonction exerciceToContenu pour créer des HTMLElement et non du texte
  7. Utiliser VueJS pour faire un design reactif et avoir un design de type component/plugin pour une meilleure réutilisation des dits composants
  8. On change un paramètre, ça ne recalcule que le div de l’exercice concerné et pas tout le reste
  9. On change l’ordre des exercices, ça déplace les div sans tout recalculer
  10. La liste des exercices disponibles sera gérée par des templates et des modifications du DOM avec VueJS
  11. Fusionner le mode liste et le mode recherche. Le champ de recherche pourrait être toujours visible et lorsqu’on commence à saisir une recherche l’affichage des résultats remplace la liste.
  12. Scénarios de tests avec PlayWright
  13. Reprise du code du site statique en Go Hugo pour réorganiser le dépôt FTP et automatiser les mises en ligne
  14. Un exercice aura une url unique qui ne changera pas au changement de référentiel
  15. Le chronomètre pourra être paramétré exercice par exercice
  16. Écrire le moteur en TS et gérer les exercices JS comme TS.
  17. Découpler les librairies du moteur.
  18. Utiliser la POO et s'arranger pour avoir de l'autocomplétion.
  19. Gestion du css pour avoir un aperçu en page A4.