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 :
- Proposer des corrigés différents pour une même question.
- Internalisation des contenus et de l'interface utilisateur
- Pouvoir écrire des problèmes comportant une série de questions, avec affichage des solutions question par question.
- Paramètres infinis et simplification de leur utilisation (plus de sup1, sup2, etc.)
- Prévoir la possibilité, pour l'utilisateur final, de faire un feedback directement au concepteur d'un exo.
- 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.
- Refonte de la vérification d'égalité entre la réponse attendue et la valeur saisie dans mathlive
- 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.
- Pour la sortie papier prévoir l'ajout optionnel de QRCode vers la vidéo choisie par le professeur.
- 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
- Généraliser l'utilisation d'une extension comme codeStream
WorkFlow
- 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.
- Se concerter avant de coder et faire une véritable travail de co-construction
- 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 :
- Passage de webpack à viteJS ou ESBuild
- Suppression de SemanticUI et de JQuery
- 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
- Il faut aussi prévoir un displayQuestion pour afficher les questions les unes après les autres
- 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
- Reprendre la fonction exerciceToContenu pour créer des HTMLElement et non du texte
- Utiliser VueJS pour faire un design reactif et avoir un design de type component/plugin pour une meilleure réutilisation des dits composants
- On change un paramètre, ça ne recalcule que le div de l’exercice concerné et pas tout le reste
- On change l’ordre des exercices, ça déplace les div sans tout recalculer
- La liste des exercices disponibles sera gérée par des templates et des modifications du DOM avec VueJS
- 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.
- Scénarios de tests avec PlayWright
- Reprise du code du site statique en Go Hugo pour réorganiser le dépôt FTP et automatiser les mises en ligne
- Un exercice aura une url unique qui ne changera pas au changement de référentiel
- Le chronomètre pourra être paramétré exercice par exercice
- Écrire le moteur en TS et gérer les exercices JS comme TS.
- Découpler les librairies du moteur.
- Utiliser la POO et s'arranger pour avoir de l'autocomplétion.
- Gestion du css pour avoir un aperçu en page A4.