> [name=Sylvain Godmé <a title="Voir ma chaîne Youtube" href="https://www.youtube.com/@sylvaingodme"><a title="Voir la chaîne regroupant l'ensemble des vidéos que j'ai réalisées à destination de mes élèves pour l'enseignement des mathématiques de niveau collège" href="https://tube-sciences-technologies.apps.education.fr/c/godme_sylvain_channel/videos"></a> <a title="Professeurs : Suivre @SylvainGodme sur X" href="https://x.com/intent/follow?ref_src=twsrc%5Etfw%7Ctwcamp%5Ebuttonembed%7Ctwterm%5Efollow%7Ctwgr%5ESylvainGodme®ion=follow_link&screen_name=SylvainGodme"></a> <a title="Professeurs : Suivre @SylvainGodme sur BlueSky" href="https://bsky.app/profile/sylvaingodme.bsky.social"></a> ]
# Documentation Mémotest - Application Web de Création de Quiz et Flashcards
<i>Publié le dimanche 14 décembre 2025 12:03, mis à jour le vendredi 26 décembre 2025 à 07:00</i>
## 🏠 Présentation générale
Le projet **[Mémotest](https://educode.forge.apps.education.fr/memotest/)** représente une application web statique innovante conçue pour permettre aux **enseignants** de **créer facilement** des **quiz interactifs** et des **flashcards** (fiches de révision pédagogiques), et de **les partager avec leurs élèves**, par lien, QR-Code ou téléchargement de la ressource produite.
**L'interface utilisateur privilégie la simplicité et l'efficacité**, avec un design en mode sombre qui réduit la fatigue oculaire lors de sessions d'étude prolongées. **Le système de thèmes (sombre/clair)** permet aux utilisateurs de basculer d'un mode à l'autre selon leurs préférences. Une option permet aussi d'**ajuster le niveau de contraste** de normal à renforcé; ce dernier suit les recommandations du [RGAA](https://accessibilite.numerique.gouv.fr/) pour un contraste de [niveau AAA](https://www.w3.org/Translations/WCAG21-fr/#contrast-enhanced).
**La navigation est conçue pour être intuitive** avec des indicateurs visuels clairs, et **la responsivité de l'interface garantit une utilisation optimale sur tous types d'appareils**, des ordinateurs de bureau aux smartphones. Cette adaptabilité est cruciale dans un contexte éducatif où les enseignants et élèves utilisent des équipements variés.
L'intégration de **MathJax permet l'affichage correct des formules mathématiques**, essentiel pour les matières scientifiques et **la synthèse vocale enrichit l'accessibilité** par la lecture des contenus principaux (textes sur les flashcards, questions et options de réponse dans les quiz), avec une voix française sélectionnée parmi celles disponibles sur le terminal d'affichage.
---
## 🚀 Création d'une ressource - Guide pas à pas
L'interface principale s'articule autour d'un **processus de création en trois étapes** clairement définies.
### Étape 1 : Choix du type de ressource
La première étape permet aux utilisateurs de **choisir le type de ressource pédagogique à créer**, avec des tuiles visuelles attrayantes pour les quiz et flashcards :

Deux options sont proposées :
- **Créer un Quiz** : pour évaluer les connaissances avec des questions à choix multiples
- **Créer des Flashcards** : pour favoriser la mémorisation par répétition espacée
Chaque tuile affiche une description claire de l'usage et des bénéfices pédagogiques.
### Étape 2 : Saisie ou importation des données
La seconde étape gère la saisie des données de manière flexible, permettant soit **l'importation depuis une URL CodiMD**, soit **la saisie directe de contenu JSON ou Markdown**. Cette flexibilité répond aux différents workflows des enseignants, qu'ils préfèrent utiliser des outils collaboratifs comme CodiMD ou travailler directement avec des données structurées.
Il est conseillé à ce stade d'utiliser les prompts fournis dans la documentation **[Templates de prompts Mémotest](https://codimd.apps.education.fr/s/MytxxaWwo)** pour **générer automatiquement vos quiz et flashcards** avec ChatGPT, Claude, Mistral ou d'autres IA génératives. Ces prompts garantissent la structure correcte et l'inclusion de tous les éléments pédagogiques (indices, feedbacks, etc.).
Vous n'aurez alors qu'à copier-coller la réponse de l'IA :
* soit dans un CodiMD dont l'URL publiée sera copiée et coller dans le champ **URL d'un document codiMD** (c'est la méthode conseillée car elle permet des modifications rapides de la ressource par la suite)
* soit sous forme de contenu JSON ou Markdown dans le champ **Contenu JSON/Markdown**

**Ce sont deux méthodes d'import mutuellement exclusives :**
1. **Import depuis CodiMD (recommandé)** :
- Collez l'URL **publique** de votre document CodiMD dans le champ dédié
:::danger
Attention à bien indiquer **l'URL publique** de votre document CodiMD, pas l'URL vous permettant d'éditer votre document (qui est une URL privée).
:::
- Le document doit respecter la structure Markdown spécifique (voir modèles fournis)
- Avantage : modification facile du contenu, collaboration possible
2. **Import JSON/Markdown direct** :
- Collez directement le contenu JSON ou Markdown dans la zone de texte
- Utile pour des données générées par IA ou exports existants
- La zone de texte s'adapte automatiquement (1 ligne pour URL, multiple lignes pour contenu)
---
<details>
<summary><strong>Plus de détails sur les formats de données...</strong></summary>
Mémotest supporte plusieurs formats d'import pour créer vos contenus pédagogiques. Les exemples JSON et Markdown ci-dessous reflètent les formats **actuellement utilisés** par l'application. La structure seule (sans donnée) des ces formats est présentée dans le document [<i class="fa fa-external-link" aria-hidden="true"></i> Structure des données importées](https://codimd.apps.education.fr/s/mp7Mb-qyh) qui sert de référence.
### **Format Markdown pour Flashcards**
Le format Markdown suit une structure simple, en séparant clairement chaque carte (ici avec des **Champs optionnels disponibles** -lecture vocale personnalisée-) :
```
# Flashcards : Capitales européennes
## Carte 1
**Question :** Quelle est la capitale de la France ?
**Question (lecture vocale) :** Nommez la capitale de la France
**Réponse :** Paris
**Réponse (lecture vocale) :** La capitale de la France est Paris
```
:::info
Si les champs **Question (lecture vocale)** ou **Réponse (lecture vocale)** sont vides ou si les champs sont absents, l'application utilise pour la vocalisation le contenu nettoyé (sans balises HTML/Markdown) des champs **Question** et **Réponse**.
:::
**Format JSON pour Flashcards**
Structure complète avec toutes les propriétés reconnues par l'application :
```
{
"title": "Flashcards : Capitales européennes",
"cards": [
{
"question": "Quelle est la capitale de la France ?",
"questionSpeech": "Nommez la capitale de la France",
"answer": "Paris",
"answerSpeech": "La capitale de la France est Paris"
},
{
"question": "Quelle est la capitale de l'Allemagne ?",
"questionSpeech": "Nommez la capitale de l'Allemagne",
"answer": "Berlin",
"answerSpeech": "La capitale de l'Allemagne est Berlin"
}
]
}
```
**Propriétés détaillées**
| Propriété | Type | Obligatoire | Description |
| ---------------------- | -------------- | ----------- | ---------------------------------------------------------------------------------------------------- |
| title | string | ✅ Oui | Titre du jeu de flashcards |
| cards | array | ✅ Oui | Tableau contenant toutes les cartes |
| cards[].question | string | ✅ Oui | Texte de la question (face recto) |
| cards[].questionSpeech | string | ❌ Non | Texte alternatif pour la synthèse vocale de la question. Si vide ou absent, utilise question nettoyé |
| cards[].answer | string | ✅ Oui | Texte de la réponse (face verso) |
| cards[].answerSpeech | string | ❌ Non | Texte alternatif pour la synthèse vocale de la réponse. Si vide ou absent, utilise answer nettoyé |
:::info
💡 **Fallback automatique :** L'application applique automatiquement un "nettoyage" du HTML/Markdown (suppression des balises `<strong>`, des marqueurs Markdown comme `**` ou `*`, les liens, etc.) si les champs Speech sont absents ou vides, afin que la synthèse vocale lise le contenu nettoyé des champs d'origine.
:::
### Format Markdown pour Quiz
Structure Markdown pour créer un quiz interactif (avec champs optionnels pour la lecture vocale) :
```
# Quiz : Théorème de Thalès et théorème de Pythagore
## Question 1
**Question:** Quel est l'objectif principal de la réciproque du théorème de Thalès ?
**Question (lecture vocale):**
### Option 1
**Texte:** Calculer la longueur d'un côté dans une configuration de Thalès.
**Texte (lecture vocale):**
**Correcte:** Non
**Explication:** Le calcul de longueurs est l'objectif du théorème de Thalès direct, qui nécessite de savoir au préalable que les droites sont parallèles.
**Explication (lecture vocale):**
### Option 2
**Texte:** Démontrer que deux droites sont parallèles.
**Texte (lecture vocale):**
**Correcte:** Oui
**Explication:** La réciproque utilise l'égalité de deux rapports de longueurs et l'alignement des points pour prouver le parallélisme de deux droites.
**Explication (lecture vocale):**
### Option 3
**Texte:** Prouver qu'un triangle est rectangle.
**Texte (lecture vocale):**
**Correcte:** Non
**Explication:** Prouver qu'un triangle est rectangle est l'objectif de la réciproque du théorème de Pythagore.
**Explication (lecture vocale):**
### Option 4
**Texte:** Calculer le coefficient d'agrandissement ou de réduction entre deux triangles.
**Texte (lecture vocale):**
**Correcte:** Non
**Explication:** Bien que les rapports soient liés au coefficient, l'objectif final de la réciproque n'est pas ce calcul mais la démonstration du parallélisme.
**Explication (lecture vocale):**
**Indice:** Pensez à la différence entre le théorème direct et sa réciproque. L'un part d'une propriété pour calculer, l'autre part de calculs pour prouver une propriété.
**Indice (lecture vocale):**
```
>Note : Si les champs de lecture vocale sont vides, l'application utilise automatiquement le contenu nettoyé des champs de base.
**Format JSON pour Quiz**
Structure complète avec toutes les propriétés reconnues par l'application :
```
{
"title": "Quiz : Théorème de Thalès et théorème de Pythagore",
"questions": [
{
"question": "Quel est l'objectif principal de la réciproque du théorème de Thalès ?",
"questionSpeech": "",
"answerOptions": [
{
"text": "Calculer la longueur d'un côté dans une configuration de Thalès.",
"textSpeech": "",
"isCorrect": false,
"rationale": "Le calcul de longueurs est l'objectif du théorème de Thalès direct, qui nécessite de savoir au préalable que les droites sont parallèles.",
"rationaleSpeech": ""
},
{
"text": "Démontrer que deux droites sont parallèles.",
"textSpeech": "",
"isCorrect": true,
"rationale": "La réciproque utilise l'égalité de deux rapports de longueurs et l'alignement des points pour prouver le parallélisme de deux droites.",
"rationaleSpeech": ""
},
{
"text": "Prouver qu'un triangle est rectangle.",
"textSpeech": "",
"isCorrect": false,
"rationale": "Prouver qu'un triangle est rectangle est l'objectif de la réciproque du théorème de Pythagore.",
"rationaleSpeech": ""
},
{
"text": "Calculer le coefficient d'agrandissement ou de réduction entre deux triangles.",
"textSpeech": "",
"isCorrect": false,
"rationale": "Bien que les rapports soient liés au coefficient, l'objectif final de la réciproque n'est pas ce calcul mais la démonstration du parallélisme.",
"rationaleSpeech": ""
}
],
"hint": "Pensez à la différence entre le théorème direct et sa réciproque. L'un part d'une propriété pour calculer, l'autre part de calculs pour prouver une propriété.",
"hintSpeech": ""
}
]
}
```
#### Propriétés détaillées
Niveau racine
| Propriété | Type | Obligatoire | Description |
| --------- | ------ | ----------- | -------------------------------------- |
| title | string | ✅ Oui | Titre du quiz |
| questions | array | ✅ Oui | Tableau contenant toutes les questions |
Niveau questions[]
| Propriété | Type | Obligatoire | Description |
| -------------- | ------ | ----------- | --------------------------------------------------------------------------------------------- |
| question | string | ✅ Oui | Texte de la question |
| questionSpeech | string | ❌ Non | Texte alternatif pour la synthèse vocale. Si vide ou absent, utilise question nettoyé |
| hint | string | ❌ Non | Indice pour aider l'élève |
| hintSpeech | string | ❌ Non | Texte alternatif pour la synthèse vocale de l'indice. Si vide ou absent, utilise hint nettoyé |
| options | array | ✅ Oui | Tableau des réponses possibles (minimum 2 options) |
Niveau questions[].options[]
| Propriété | Type | Obligatoire | Description |
| --------------- | ------- | ----------- | ------------------------------------------------------------------------------------------------------- |
| text | string | ✅ Oui | Texte de l'option de réponse |
| textSpeech | string | ❌ Non | Texte alternatif pour la synthèse vocale. Si vide ou absent, utilise text nettoyé |
| correct | boolean | ✅ Oui | true si c'est la bonne réponse, false sinon |
| rationale | string | ❌ Non | Explication pédagogique (affichée après sélection) |
| rationaleSpeech | string | ❌ Non | Texte alternatif pour la synthèse vocale de l'explication. Si vide ou absent, utilise rationale nettoyé |
</details>
---
### Étape 3 : Génération et partage de la ressource
À partir des données fournies, **la ressource est générée** sous forme de page web, que l'on peut consulter, partager ou télécharger localement.
:::danger
Il est fortement recommandé de cliquer sur le bouton 
afin d'effectuer le contrôle nécessaire sur le contenu **avant diffusion et partage aux élèves**.
:::


**Options de partage disponibles :**
1. **Lien de partage** :
- Un lien unique est généré automatiquement
- Bouton "Copier le lien" pour le presse-papier
- Partagez ce lien par email, messagerie, ENT, etc.
2. **QR Code** :
- Un QR Code est généré automatiquement
- Téléchargeable au format PNG
- Idéal pour affichage en classe ou sur des documents imprimés
- Les élèves peuvent le scanner avec leur smartphone pour un accès direct
3. **Téléchargement local** :
- Téléchargez la ressource complète en fichier HTML autonome
- Utilisable hors ligne
- Peut être déposée sur un ENT, un site web, ou envoyée par email
- Tous les scripts et styles sont inclus (pas de dépendance externe)
---
<details>
<summary><strong>Plus de détails sur les options de partage...</strong></summary>
<br>
**Lien de partage vs Téléchargement :**
- **Lien de partage** :
- Si vous avez utilisé une URL CodiMD, le lien pointe vers votre document
- Avantage : vous pouvez modifier le contenu dans CodiMD, les changements seront visibles par tous
- Nécessite une connexion internet pour les utilisateurs
- **Téléchargement HTML** :
- Fichier autonome, complètement indépendant
- Fonctionne hors ligne
- Le contenu est figé au moment du téléchargement
- Idéal pour archivage ou distribution sur clés USB
**Intégration dans un ENT ou site web :**
Le fichier HTML téléchargé peut être :
- Déposé directement sur votre ENT (Pronote, Moodle, etc.)
- Intégré dans un site web via balise `<iframe>`
- Partagé sur un espace de stockage cloud (Nextcloud, Drive, etc.)
**Durée de validité :**
- Les liens vers CodiMD restent valides tant que le document existe
- Les fichiers HTML téléchargés n'expirent jamais
- Les QR Codes restent fonctionnels tant que l'URL cible existe
</details>
---
## Utilisation des ressources générées
### Interface Quiz
L'interface des quiz offre une expérience d'apprentissage complète et intuitive.

**Éléments de l'interface centrale :**
- **Numéro de question** (progression) : clairement affiché en haut. Indique votre avancement (ex: Question 1 sur 25)
- **Zone de question** : affichage optimisé avec support LaTeX pour les formules mathématiques
- **Options de réponse** : 4 cases cliquables avec effet visuel au survol
- **Boutons de navigation** : "Précédente" et "Suivante" pour une navigation libre d'une question à une autre
- **Bouton "Indice"** <i class="fa fa-lightbulb-o" aria-hidden="true"></i> : affiche un indice sans révéler la réponse
**Icônes d'entête :**  
- **thème** clair/sombre : <i class="fa fa-sun"></i>
- **contraste** normal/renforcé : <i class="fa fa-adjust"></i>
- **synthèse vocale** : <i class="fa fa-volume-up" aria-hidden="true"></i>
- **zoom+** : <i class="fa fa-search-plus" aria-hidden="true"></i>
- **zoom-** : <i class="fa fa-search-minus" aria-hidden="true"></i>
- **ajustement écran** : <i class="fa fa-compress" aria-hidden="true"></i>
- **Mélanger les questions** : <i class="fa fa-random" aria-hidden="true"></i>
- **Téléchargement** : <i class="fa fa-download" aria-hidden="true"></i> des données seules (les questions) au format JSON, ou du fichier HTML complet (questions + interface, et au choix + localStorage + préférences utilisateur)
- **Historique** : <i class="fa fa-history" aria-hidden="true"></i> accès rapide à vos tentatives précédentes
- **Recommencer le Quiz** : <i class="fa fa-repeat" aria-hidden="true"></i>
**Déroulement d'un quiz :**
1. Lecture de la question (avec écoute vocale possible)
2. Consultation optionnelle de l'indice
3. Sélection d'une réponse (ou passage de la question)
4. Feedback immédiat avec explication
5. Navigation vers la question suivante
6. Récapitulatif final avec score et corrections détaillées
### Interface Flashcards


**Éléments de l'interface centrale :**
- **Numéro de carte** (progression) : clairement affiché en haut. Indique votre avancement (ex: Carte 19 sur 30)
- **État du mode actuel** : Répétition espacée 
ou Parcours libre 
- **Nombre de carte à réviser dans la session** : compteur de cartes à réviser aujourd'hui
- **Recto = Zone de question** : affichage optimisé avec support LaTeX pour les formules mathématiques
- **Verso = Zone de réponse** : affichage optimisé avec support LaTeX pour les formules mathématiques, texte en vert (correction)
- **Boutons de navigation** : "Précédente" et "Suivante" pour une navigation libre d'une question à une autre
- **Boutons d'évaluation** (en mode SRS) : pour l'évaluation de la réponse → Encore/Difficile/Bon/Facile
**Icônes d'entête :** 
- **thème** clair/sombre : <i class="fa fa-sun"></i>
- **contraste** normal/renforcé : <i class="fa fa-adjust"></i>
- **Bouton Bacule** Mode Répétition espacée ⟷ Parcours libre : <i class="fa fa-graduation-cap" aria-hidden="true"></i>
- **Historique de révision** : <i class="fa fa-history" aria-hidden="true"></i>
- **Récapitulatif de session** de révision : <i class="fa fa-line-chart" aria-hidden="true"></i>
- **synthèse vocale** : <i class="fa fa-volume-up" aria-hidden="true"></i>
- **Vue d'ensemble des cartes** : <i class="fa fa-th-large" aria-hidden="true"></i>
- **Téléchargement** : <i class="fa fa-download" aria-hidden="true"></i>
- **Carte centrale** : affichage grande taille pour lisibilité optimale
- **Indicateur de progression** : "Carte 3/25" en haut
- **Compteur de session** : cartes restantes à réviser aujourd'hui
- **Boutons de contrôle** :
- Mélanger les cartes
- Retour au début
- Mode Répétition espacée ⟷ Parcours libre
- Historique de révision
- **Barre d'outils** : thème, contraste, synthèse vocale
**Interaction avec les cartes :**
- **Clic sur la carte** ou touche Entrée : retournement de la carte
- **Flèches clavier** : navigation entre cartes (←/→)
- **Gestes tactiles** : swipe gauche/droite sur mobile/tablette, retour haptique (vibrations) sur mobile pour confirmer les actions
- **Après retournement** : évaluation avec les 4 boutons (Encore/Difficile/Bon/Facile)
---
## Fonctionnalités pédagogiques
### Flashcards et apprentissage optimisé
**Pour les flashcards**, l'application intègre des méthodes d'apprentissage scientifiquement validées, comme **la répétition espacée (SRS - Spaced Repetition System) pour optimiser la mémorisation**. Le système s'appuie sur l'**algorithme SM-2** (SuperMemo 2), qui adapte automatiquement les intervalles de révision selon votre maîtrise de chaque carte.
Le principe repose sur [la courbe de l'oubli d'Ebbinghaus](https://fr.wikipedia.org/wiki/Courbe_de_l%27oubli), qui démontre que nous oublions rapidement les informations sans révision. En proposant les cartes au moment précis où elles commencent à s'estomper de la mémoire, le système maximise l'efficacité de l'apprentissage. Cette approche scientifique différencie **Mémotest** des outils basiques en offrant une véritable valeur pédagogique.
Les flashcards peuvent être utilisées en mode **Répétition espacée**, activé par défaut au chargement de la page, ou bien en mode **Parcours libre**.
#### Mode Répétition espacée → évaluation des réponses (verso des cartes)

**En mode Répétition espacée**, l'apprenant **doit évaluer** si la réponse qu'il a trouvée correspond à celle figurant au verso de la carte; il doit alors choisir entre **4 critères d'évaluation** :
1. **"Encore"** - La carte n'est pas reconnue du tout : la carte est réinitialisée et sera reproposée dès la prochaine session de révision (retour à 1 jour)
2. **"Difficile"** - La réponse est trouvée avec effort : la carte est réinitialisée et sera révisée rapidement (retour à 1 jour)
3. **"Bon"** - La réponse est reconnue correctement : la carte progresse et sera révisée selon l'intervalle de révision calculé
4. **"Facile"** - La réponse est immédiate et sûre : la carte progresse avec un intervalle de révision plus long, et le facteur de facilité augmente
| Bouton | Signification | Impact sur l'intervalle de révision |
|--------|---------------|-------------------------|
| **🔴 Encore** | Vous avez oublié | Intervalle réinitialisé à **1 jour** |
| **🟠 Difficile** | Vous avez hésité | Intervalle augmenté **modérément** |
| **🔵 Bon** | Vous vous souvenez bien | Intervalle augmenté **normalement** |
| **🟢 Facile** | Réponse immédiate | Intervalle augmenté **rapidement** |
---
<details>
<summary><strong>Plus de détails sur le système SRS implémenté...</strong></summary>
#### Comment fonctionne le système de répétition espacée ?
Le système implémenté dans Mémotest utilise l'**algorithme SM-2** (SuperMemo 2), qui fonctionne avec deux paramètres principaux :
- **Répétitions consécutives réussies** : nombre de fois où vous avez répondu "Bon" ou "Facile" d'affilée
- **Facteur de facilité** : multiplicateur (entre 1,3 et 3,0 environ) qui détermine la vitesse d'augmentation des intervalles
#### Fonctionnement détaillé de l'algorithme
**Initialisation (carte nouvelle) :**
- Répétitions : 0
- Intervalle : 1 jour
- Facteur de facilité : 2,5
**Selon votre évaluation :**
**Si vous répondez "Encore" ou "Difficile" :**
- Les répétitions sont **réinitialisées à 0**
- L'intervalle revient à **1 jour**
- Le facteur de facilité **diminue** (la carte est considérée comme plus difficile)
- Vous recommencez le cycle d'apprentissage pour cette carte
**Si vous répondez "Bon" ou "Facile" :**
- Les répétitions **augmentent de 1**
- L'intervalle est calculé selon le nombre de répétitions :
- **1ère réussite** : intervalle = 1 jour
- **2e réussite** : intervalle = 3 jours
- **3e réussite et suivantes** : intervalle = intervalle précédent × facteur de facilité
**Impact sur le facteur de facilité :**
- **"Facile"** : le facteur augmente → les intervalles futurs seront plus longs
- **"Bon"** : le facteur reste relativement stable
- **"Difficile"** : le facteur diminue → les intervalles futurs seront plus courts
- **"Encore"** : le facteur diminue fortement
#### Exemple concret de progression
Prenons une carte que vous commencez à apprendre le 14 décembre :
**Scénario 1 : Progression régulière**
1. Premier essai → "Bon" : prochaine révision le **15 décembre** (1 jour)
2. Deuxième essai → "Bon" : prochaine révision le **18 décembre** (3 jours)
3. Troisième essai → "Bon" : prochaine révision le **26 décembre** (~8 jours, avec facteur ≈ 2,5)
4. Quatrième essai → "Facile" : prochaine révision le **16 janvier** (~20 jours, facteur augmente)
5. Cinquième essai → "Facile" : prochaine révision le **7 mars** (~50 jours)
**Scénario 2 : Avec difficultés**
1. Premier essai → "Bon" : prochaine révision le **15 décembre** (1 jour)
2. Deuxième essai → "Difficile" : **réinitialisation**, prochaine révision le **16 décembre** (1 jour)
3. Troisième essai → "Bon" : prochaine révision le **17 décembre** (1 jour, compte comme 1ère réussite)
4. Quatrième essai → "Bon" : prochaine révision le **20 décembre** (3 jours)
5. Cinquième essai → "Bon" : prochaine révision le **27 décembre** (~7 jours, facteur réduit par les difficultés)
#### Pourquoi des cartes avec le même nombre de réussites n'ont pas la même date de révision ?
Deux cartes avec le même nombre de répétitions consécutives peuvent avoir des échéances différentes car :
1. **Le facteur de facilité varie** selon vos évaluations passées :
- Une carte toujours évaluée "Facile" aura un facteur élevé (ex: 2,8) → intervalles plus longs
- Une carte évaluée "Bon" aura un facteur moyen (ex: 2,5) → intervalles standards
- Une carte ayant connu des difficultés aura un facteur réduit (ex: 1,8) → intervalles plus courts
2. **La date de dernière révision diffère** :
- Le système calcule la prochaine révision à partir de la dernière évaluation
- Même avec le même nombre de répétitions, les cartes évaluées à des jours différents auront des échéances différentes
**Exemple concret :**
Vous avez 10 cartes avec 2 réussites consécutives (deuxième étape du cycle), toutes évaluées le 14 décembre :
- **3 cartes évaluées "Facile"** :
- Répétitions passent à 3
- Facteur de facilité augmente (ex: 2,5 → 2,6)
- Intervalle = round(3 jours × 2,6) = **8 jours**
- Prochaine révision : **22 décembre**
- **5 cartes évaluées "Bon"** :
- Répétitions passent à 3
- Facteur de facilité stable (≈ 2,5)
- Intervalle = round(3 jours × 2,5) = **8 jours**
- Prochaine révision : **22 décembre**
- **2 cartes évaluées "Difficile"** :
- Répétitions réinitialisées à 0
- Facteur de facilité diminue
- Intervalle = **1 jour**
- Prochaine révision : **15 décembre**
Mais si une de ces cartes a été révisée pour la dernière fois le 10 décembre au lieu du 14 :
- Avec le même facteur (2,5) et 3 répétitions
- Intervalle = 8 jours calculé à partir du **10 décembre**
- Prochaine révision : **18 décembre** (au lieu du 22)
#### Sessions de révision
À chaque ouverture du jeu de flashcards en mode Répétition espacée, Mémotest :
1. Vérifie pour chaque carte si sa **date de révision est échue ou dépassée**
2. Propose en priorité ces cartes "dues" dans la session
3. Peut ajouter quelques nouvelles cartes si la session est légère
Ce fonctionnement explique pourquoi :
- Certains jours, vous n'aurez que quelques cartes à revoir
- D'autres jours, vous aurez une session dense (surtout après une pause)
- Les cartes bien maîtrisées réapparaissent de moins en moins souvent
#### Intervalles typiques selon les répétitions
Avec un facteur de facilité moyen (≈ 2,5), voici les intervalles approximatifs :
- **0 répétition** (Encore/Difficile) : 1 jour
- **1ère réussite** : 1 jour
- **2e réussite** : 3 jours
- **3e réussite** : ~8 jours
- **4e réussite** : ~20 jours
- **5e réussite** : ~50 jours
- **6e réussite** : ~125 jours
- **7e réussite** : ~300 jours (environ 10 mois)
Ces intervalles peuvent être **plus courts** si vous évaluez souvent "Difficile" (facteur réduit), ou **plus longs** si vous évaluez souvent "Facile" (facteur augmenté).
#### Bénéfices pédagogiques
- **Personnalisation automatique** : chaque carte évolue selon VOTRE maîtrise
- Lutte contre la courbe de l'oubli en révisant au moment optimal
- Transfert progressif vers la mémoire à long terme
- **Optimisation du temps** : concentration sur les cartes difficiles
- Les cartes faciles espacent naturellement leurs révisions
- Renforcement des connexions neuronales par répétition espacée
</details>
---
#### Récapitulatif de session
Chaque session d'évaluation se termine par un **récapitulatif de session** qui présente :
- Le nombre total de cartes révisées
- La répartition par critère d'évaluation (Réussies = Bon + Facile; à revoir = Encore + Difficile)
- Un aperçu visuel de votre évaluation, de manière colorée, carte par carte, avec la prochaine révision programmée de chacune d'entre elles.

---
<details>
<summary><strong>Plus de détails sur le récapitulatif...</strong></summary>
Le récapitulatif offre une vue d'ensemble immédiate de votre session. La **répartition par critère** vous aide à identifier les cartes qui nécessitent plus d'attention. Si vous avez beaucoup de réponses "Encore" ou "Difficile", cela indique que le contenu nécessite plus de travail.
L'**aperçu visuel** montre comment vos cartes sont distribuées selon leur état de maîtrise. Vous pouvez observer la migration progressive des cartes vers des intervalles de révision plus longs.
Le système enregistre également la **durée de la session**, ce qui vous permet de suivre votre temps d'apprentissage et d'optimiser vos sessions (idéalement 15-30 minutes pour une concentration optimale).
Vous pouvez **cliquer sur chaque carte** du récapitulatif pour voir son historique détaillé : toutes les évaluations passées, les intervalles appliqués, et l'évolution du facteur de facilité.
</details>
---
##### Historique de révision
À tout moment, l'apprenant peut accéder à **l'historique de révision** du jeu de cartes concerné, mis à jour à chaque session d'évaluation des réponses. Cet historique comprend :
- Le nombre de cartes totales du jeu
- Le nombre de cartes évaluées
- Le nombre de cartes non évaluées
- Le nombre total d'évaluations de cartes dans le jeu
- Une **vue miniature** de chaque carte avec un **code couleur** correspondant à **sa dernière évaluation**, le **nombre de révisions** de cette carte, et sa **prochaine date de révision** prévue
- Une **vue détaillée de l'historique d'évaluation** complet **de chaque carte** (accessible en cliquant sur la carte)

---
<details>
<summary><strong>Plus de détails sur l'historique...</strong></summary><br>
L'historique vous permet de **visualiser votre progression à long terme**. Vous pouvez identifier (Pas encore implémenté):
- Les périodes où vous avez été le plus actif
- Votre évolution dans la maîtrise du contenu
- Les jours où vous avez le plus travaillé
- Votre régularité dans les révisions (essentielle pour la mémorisation)*
Les **statistiques globales** incluent également :
- Le nombre total de cartes évaluées au moins une fois
- Le nombre de cartes jamais évaluées
- La répartition des dernières évaluations pour chaque carte (code couleur)
- Le nombre total d'évaluations toutes cartes confondues
**Vue détaillée par carte :**
En cliquant sur une carte dans l'historique, vous accédez à son **historique personnel** complet :
- Toutes les dates et heures de révision
- L'évaluation donnée à chaque fois (Encore/Difficile/Bon/Facile)
- L'intervalle appliqué pour la prochaine révision
- Le nombre de **répétitions consécutives** actuelles
- Le nombre de **réussites totales** (compteur qui se réinitialise en cas d'échec)
- Le **facteur de facilité** actuel (entre 1,3 et ~3,0)
Ces données vous aident à **adapter votre stratégie d'apprentissage**. Par exemple, si vous constatez qu'une carte oscille entre "Bon" et "Encore", c'est le signe qu'elle nécessite une attention particulière (reformulation, mnémotechnique, etc.).
</details>
---
#### Mode Parcours libre
À tout moment également, l'apprenant peut **basculer en mode Parcours libre**, qui lui permet de voir les cartes (questions et réponses) sans évaluer sa reconnaissance des réponses. Les fonctionnalités disponibles en mode Parcours libre :
- Navigation libre dans l'ensemble des cartes (suivant/précédent)
- Retournement des cartes pour voir instantanément les réponses
- Mélange aléatoire des cartes
- Lecture vocale du contenu (si activée)
- Pas d'enregistrement de progression ni de statistiques
**Ce mode Parcours libre est particulièrement utile pour :**
- **Les enseignants** souhaitant projeter les flashcards en classe pour les présenter à leurs élèves
- **Les apprenants** voulant parcourir rapidement tout le contenu avant un examen
- **La découverte initiale** d'un nouveau jeu de cartes avant de commencer les révisions espacées
- **La révision rapide** sans impacter les statistiques de progression
---
<details>
<summary><strong>Quand utiliser chaque mode ?</strong></summary><br>
**Mode Répétition espacée** (recommandé pour l'apprentissage) :
- Pour mémoriser durablement de nouvelles connaissances
- Pour préparer un examen à long terme
- Pour maintenir des acquis dans le temps
- Lorsque vous voulez suivre votre progression et bénéficier de l'algorithme adaptatif
**Mode Parcours libre** (pour la découverte et la révision rapide) :
- Pour une première découverte du contenu
- Pour une révision de dernière minute avant un contrôle
- Pour projeter les cartes en classe
- Pour réviser sans pression ni enregistrement
- Pour consulter rapidement une information spécifique
**Astuce pédagogique :** Les enseignants peuvent conseiller à leurs élèves de commencer par 1-2 passages en mode Parcours libre pour se familiariser avec le contenu, puis de basculer en mode Répétition espacée pour l'apprentissage efficace sur le long terme. La régularité est la clé : mieux vaut 10 minutes par jour qu'une heure une fois par semaine.
**Passage entre modes :**
Lorsque vous passez du mode Répétition espacée au mode Parcours libre, un avertissement vous rappelle que les évaluations ne seront pas enregistrées. Vos données de progression existantes restent intactes : vous pouvez consulter les cartes librement sans risque. Pour reprendre l'apprentissage avec suivi, il suffit de revenir en mode Répétition espacée.
</details>
---
### Quiz interactifs et suivi des progrès
Pour chaque question, **4 options de réponse** sont proposées :

Lorsqu'une réponse est choisie, un **feedback immédiat** indique la réussite ou non, avec une **explication détaillée** de la bonne réponse, mais aussi, en cas de réponse erronée, une **explication claire** montre pourquoi la réponse chosie n'est pas la bonne.

D'autre part, afin d'aider l'apprenant **avant** que ce dernier ne fasse un choix de réponse, **un indice peut être suggéré** (au choix de l'utilisateur, en cliquant sur l'ampoule).

**Ces feedbacks et indices ne sont pas gérés par Mémotest** : il faut qu'ils fassent partie intégrante des données ayant servi à la génération du quiz. Une façon rapide de les inclure est de les **faire produire par une IA en même temps que le quiz avec un prompt adapté** : voir les prompts fournis dans la documentation **[Templates de prompts Mémotest](https://codimd.apps.education.fr/s/MytxxaWwo)**.
Enfin, l'application propose un système de navigation flexible avec la possibilité de revenir aux questions précédentes et de **suivre les progrès** d'une tentative à l'autre, en maintenant un **historique consultable** à tout moment.
##### Navigation dans le quiz et fonctionnalités
- **Navigation flexible** : boutons "Suivante" et "Précédente" pour naviguer librement entre les questions
---
<details>
<summary><strong>Plus de détails sur la navigation...</strong></summary><br>
**Stratégies de navigation efficaces :**
1. **Premier passage rapide** : parcourez toutes les questions et répondez à celles dont vous êtes sûr, passez les autres
2. **Deuxième passage** : concentrez-vous sur les questions passées, utilisez les indices si nécessaire
3. **Consultation finale** : avant de soumettre, vérifiez le compteur de questions passées
**Mélange des questions :**
- Le bouton de mélange (icône shuffle) permet de réorganiser aléatoirement l'ordre des questions
- Attention : le mélange réinitialise votre progression actuelle
- Les options de chaque question sont également mélangées à chaque nouvelle tentative pour éviter la mémorisation de position
**Navigation au clavier :**
- Touche Entrée : valider une réponse ou passer à la question suivante
- Navigation possible avec Tab entre les options
</details>
---
- **Questions non obligatoires** : possibilité de passer une question et d'y revenir plus tard
- **Indicateur de progression** : affichage textuel de votre avancement dans le quiz (ex: Question 5/20)
- **Mélange des questions** : possibilité de mélanger l'ordre des questions via un bouton dédié
- **Écran de résultats** : à la fin du quiz, accès à un récapitulatif avec le score détaillé (bonnes/mauvaises/passées), le pourcentage et la durée

#### Historique des tentatives
L'historique est un tableau contenant :
* Le numéro de tentative
* La date et heure
* Le score en %
* Le nombre de réponses correctes, incorrectes, passées
* La durée de la tentative
* Une coloration du score en % : Vert (≥90%), Bleu (≥70%), Orange (≥50%), Rouge (<50%)

<details>
<summary><strong>Plus de détails sur l'historique des quiz...</strong></summary>
L'historique des quiz vous permet de **mesurer concrètement votre progression**. En comparant vos tentatives successives, vous pouvez :
- Identifier si votre score s'améliore au fil du temps
- Analyser le temps que vous prenez pour répondre (un temps plus court avec un bon score indique une meilleure maîtrise)
- Fixer des objectifs de progression (par exemple : atteindre 90% au bout de 3 tentatives)
- Visualiser l'évolution du nombre de questions passées (qui devrait diminuer avec la progression)
**Réinitialisation :** Un bouton permet de réinitialiser l'historique si vous souhaitez repartir à zéro, par exemple après avoir bien maîtrisé le contenu et avant de réviser plusieurs mois plus tard.
</details>
---
<details>
<summary><strong>Comment intégrer feedbacks et indices (tout en permettant une vocalisation correcte des contenus LaTeX, s'il y en a) ?</strong></summary>
Ces **feedbacks et indices ne sont pas générés automatiquement par Mémotest** : ils doivent faire partie intégrante des données ayant servi à la génération du quiz.
**Méthode recommandée avec une IA :**
Une façon non chronophage de les inclure est de les faire produire par une IA (ChatGPT, Claude, etc.) en même temps que le quiz, avec un prompt adapté du type :
```
Génère un quiz au format JSON, puis au format markdown sur [votre sujet], pour le niveau [votre niveau], en [votre matière/discipline] avec [votre nombre de] questions.
Pour chaque question, inclus :
4 options de réponse
Un indice subtil qui guide vers la bonne réponse sans la révéler
Une explication détaillée de la bonne réponse (champ "rationale")
Pour chaque mauvaise réponse, une explication de pourquoi elle est incorrecte
**Structure JSON attendue :**
{
"title": "Quiz : Théorème de Thalès et théorème de Pythagore",
"questions": [
{
"question": "Quel est l'objectif principal de la réciproque du théorème de Thalès ?",
"questionSpeech": "",
"answerOptions": [
{
"text": "Calculer la longueur d'un côté dans une configuration de Thalès.",
"textSpeech": "",
"isCorrect": false,
"rationale": "Le calcul de longueurs est l'objectif du théorème de Thalès direct, qui nécessite de savoir au préalable que les droites sont parallèles.",
"rationaleSpeech": ""
},
{
"text": "Démontrer que deux droites sont parallèles.",
"textSpeech": "",
"isCorrect": true,
"rationale": "La réciproque utilise l'égalité de deux rapports de longueurs et l'alignement des points pour prouver le parallélisme de deux droites.",
"rationaleSpeech": ""
},
{
"text": "Prouver qu'un triangle est rectangle.",
"textSpeech": "",
"isCorrect": false,
"rationale": "Prouver qu'un triangle est rectangle est l'objectif de la réciproque du théorème de Pythagore.",
"rationaleSpeech": ""
},
{
"text": "Calculer le coefficient d'agrandissement ou de réduction entre deux triangles.",
"textSpeech": "",
"isCorrect": false,
"rationale": "Bien que les rapports soient liés au coefficient, l'objectif final de la réciproque n'est pas ce calcul mais la démonstration du parallélisme.",
"rationaleSpeech": ""
}
],
"hint": "Pensez à la différence entre le théorème direct et sa réciproque. L'un part d'une propriété pour calculer, l'autre part de calculs pour prouver une propriété.",
"hintSpeech": ""
},
{
...
}
]
}
**Structure Markdown attendue :**
# Quiz : Théorème de Thalès et théorème de Pythagore
## Question 1
**Question:** Quel est L'objectif principal de la réciproque du théorème de Thalès ?
**Question (lecture vocale):**
### Option 1
**Texte:** Calculer la longueur d'un côté dans une configuration de Thalès.
**Texte (lecture vocale):**
**Correcte:** Non
**Explication:** Le calcul de longueurs est l'objectif du théorème de Thalès direct, qui nécessite de savoir au préalable que les droites sont parallèles.
**Explication (lecture vocale):**
### Option 2
**Texte:** Démontrer que deux droites sont parallèles.
**Texte (lecture vocale):**
**Correcte:** Oui
**Explication:** La réciproque utilise l'égalité de deux rapports de longueurs et l'alignement des points pour prouver le parallélisme de deux droites.
**Explication (lecture vocale):**
### Option 3
**Texte:** Prouver qu'un triangle est rectangle.
**Texte (lecture vocale):**
**Correcte:** Non
**Explication:** Prouver qu'un triangle est rectangle est l'objectif de la réciproque du théorème de Pythagore.
**Explication (lecture vocale):**
### Option 4
**Texte:** Calculer le coefficient d'agrandissement ou de réduction entre deux triangles.
**Texte (lecture vocale):**
**Correcte:** Non
**Explication:** Bien que les rapports soient liés au coefficient, l'objectif final de la réciproque n'est pas ce calcul mais la démonstration du parallélisme.
**Explication (lecture vocale):**
**Indice:** Pensez à la différence entre le théorème direct et sa réciproque. L'un part d'une propriété pour calculer, l'autre part de calculs pour prouver une propriété.
**Indice (lecture vocale):**
**Traitement à opérer pour une vocalisation fonctionnelle du code LaTeX**
Si les valeurs des clés d'origine contiennent du code LaTeX encadré par des symboles $ et que tu trouves une commande LaTeX \angle, remplace-la par \widehat.
IMPORTANT : Afin de minimiser la taille des données, s'il n'y pas de code LaTeX encadré par des symboles $ dans les clés "question", ou "hint", ou "text", ou "rationale", alors les valeurs des clés correspondantes "questionSpeech", ou "hintSpeech", ou "textSpeech", ou "rationaleSpeech" DOIVENT être vides ("").
**CRUCIAL : Vocalisation des Expressions LaTeX**
- Toutes les expressions en LaTeX encadrées par des symboles $ DOIVENT être vocalisées de manière cohérente selon les règles de prononciation définies dans le document "Règles de prononciation LateX.md" fourni en pièce jointe.
- Si une expression contient du code LaTeX encadré par des symboles $, elle doit être transformée en texte prononçable, même si elle apparaît dans une question, une réponse, un indice ou une explication.
- Les clés de type Speech devront contenir la prononciation de leur clé originelle (si ces dernières contiennent du code LaTeX entre symboles $), obtenue en respectant les règles de prononciation définies dans le document "Règles de prononciation LateX.md" fourni en pièce jointe.
```
Cette approche permet de créer rapidement des quiz pédagogiquement riches et adaptatifs.
</details>
---
## La page "Mes ressources"
Chaque fois qu'une ressource est **créée, ou bien utilisée par un lien de partage**, elle est **automatiquement ajoutée à la base locale** des ressources Mémotest dans le navigateur de l'utilisateur.
:::danger
Il est important de préciser que **la base de données est locale au navigateur**. Si l'utilisateur **change d'appareil ou de navigateur**, **il ne retrouvera pas ses ressources dans la nouvelle base locale**, à moins de les importer, de les recréer ou d'utiliser un lien de partage d'une ressource. Dans tous ces cas, la nouvelle base locale est à son tour peuplée par les ressources importées, créées ou utilisées par des liens de partage.
:::
L'utilisateur peut ainsi la retrouver sur la page "**Mes ressources**" **(locales)** :

Les ressources sont présentées dans une grille de tuiles; **1 tuile = 1 ressource**; chaque ressource est **badgée** "<i class="fa fa-star" aria-hidden="true"></i> **Ma création**" si l'utilisateur est son créateur ou bien "<i class="fa fa-share-alt" aria-hidden="true"></i> **Partagée**" si elle est utilisée à travers un lien de partage transmis à l'utilisateur.
Cet affichage en tuiles permet des **actions multiples** :
* **Trier** les ressources par type (Quiz/Flashcards/Toutes/Ma création/Partagées/Date)
* **Rechercher** une ressource *(à venir)*
* **Exporter / Importer** localement des ressources *(à venir)*
* **Sur une tuile de ressources**, on a les actions suivantes :
* **Bouton <i class="fa fa-external-link" aria-hidden="true"></i> Ouvrir** : ouvre la ressource dans un nouvel onglet pour consultation ou utilisation
* **Bouton <i class="fa fa-qrcode" aria-hidden="true"></i> QR Code** : Affiche le QR code et le lien de partage. **Concerne uniquement les ressources de type URL CodiMD**.
* **Bouton <i class="fa fa-download"></i> JSON** : télécharge les données de la ressource au format JSON (structure au [<i class="fa fa-external-link" aria-hidden="true"></i> format JSON Mémotest](https://codimd.apps.education.fr/s/mp7Mb-qyh#formatJSON))
* **Bouton <i class="fa fa-file-code-o" aria-hidden="true"></i> HTML** : télécharge le **fichier HTML autonome complet** de la ressource avec données incluses (fonctionne sans accès à Mémotest, pas besoin de connexion internet).
* **<i class="fa fa-trash-o" aria-hidden="true"></i> Poubelle** (en rouge, en haut de la tuile) : supprime la ressource de la base locale.
* **<i class="fa fa-pencil" aria-hidden="true"></i> Icône d'Édition** : permet d'éditer la ressource pour modifier les données. Cette icône n'apparaît que pour les ressources "Ma création" (créées par l'utilisateur), pas pour les ressources de type "Partagées".
* **<i class="fa fa-refresh" aria-hidden="true"></i> MAJ** : une mise à jour est disponible. En cliquant sur cet élément, on peut ouvrir la ressource et décider d'appliquer (ou pas) sa mise à jour. Le plus souvent ce sont des mises à jours mineures (corrections d'erreurs non repérées à la génération ou de fautes d'orthographes). Si la mise à jour est acceptée, la date de Mise à jour apparaît sur la tuile au rechargement de la page "Mes ressources".
:::info
Pour un enseignant créateur de ressources, **il est important de pouvoir modifier ses ressources directement** depuis la page "Mes resssources" afin d'apporter des modifications. La **page d'édition** est alors mise à disposition, soit au travers d'une **fenêtre modale d'édition basique du code JSON** pour une ressource locale, soit par une **redirection vers l'URL du CodiMD source**, afin d'y opérer les modifications souhaitées. L'option la plus pratique est évidemment l'édition dans le CodiMD source.
:::
:::danger
**Lorsque la ressource a été partagée avec des élèves**, il est conseillé de **ne faire que des modifications mineures** : corrections d'erreurs grossières ou corrections de fautes d'orthographe, correction des textes de lecture vocale (si la prononciation ne vous convient pas). En effet, **des changements profonds dans les éléments de la ressource** (changer l'ordre des cartes ou des questions, en ajouter ou en retirer) **risquent de provoquer des incohérences** dans la progression des révisions espacées pour les cartes, ou dans l'historique d'un quiz. **Si vous avez des changements profonds à faire, il est conseillé de recrééer une nouvelle ressource**; vous pouvez utiliser le même titre que la ressource originale, mais il est conseillé de le compléter par un numéro comme (1), (2), etc.
:::
---
## Stockage Local et Conformité RGPD
**L'utilisation exclusive du localStorage pour la persistance des données représente un choix technique judicieux pour la conformité RGPD**. Cette approche évite tout transfert de données personnelles vers des serveurs externes, éliminant ainsi de nombreuses obligations légales liées au traitement des données. Les données restent sous le contrôle exclusif de l'utilisateur sur son appareil local.
L'implémentation du stockage local suit les bonnes pratiques de sécurité en évitant de stocker des informations sensibles. Le système sauvegarde automatiquement les données de progression et les préférences utilisateur dans le navigateur.
---
<details>
<summary><strong>Plus de détails sur le stockage et la confidentialité...</strong></summary><br>
**Que stocke Mémotest localement ?**
Pour les **flashcards** :
- Les données de progression SRS (répétitions consécutives, facteur de facilité, intervalle)
- Les dates de prochaine révision pour chaque carte
- L'historique complet des révisions (dates, évaluations, intervalles)
- Les statistiques de session (nombre de cartes par niveau)
Pour les **quiz** :
- L'historique des tentatives (dates, scores, durées)
- Le nombre de réponses correctes/incorrectes/passées par tentative
- Le pourcentage de réussite pour chaque tentative
Pour les **préférences utilisateur** (communes) :
- Thème choisi (clair/sombre)
- Mode contraste (normal/élevé)
- État de la synthèse vocale (activée/désactivée)
- Voix sélectionnée pour la synthèse vocale
Pour les **ressources listée sur la page "Mes ressources"** :
- ID unique de la ressource
- Métadonnées : titre, type (Quiz ou flashcard), date de création, date de premier accès, statut (Ma création ou Partagée), nombre d'éléments, nombre de consultations, url d'accès, url source (codiMD)
**Que se passe-t-il si je change d'appareil ?**
Les données étant stockées localement dans le navigateur, elles **ne sont pas synchronisées entre appareils**. Si vous utilisez Mémotest sur plusieurs appareils (ordinateur, tablette, smartphone), chaque appareil maintient ses propres données de progression.
**Solution de transfert manuel :**
- Pour les **flashcards** : utilisez le bouton de téléchargement pour exporter le fichier HTML complet (contenant les données SRS + le jeu de cartes). L'export JSON ne contient **que les données brutes** (questions/réponses, c'est-à-dire le eju de cartes), sans les données de progression SRS : **utilisez l'export HTML pour conserver votre historique**.
- Pour les **quiz** : actuellement, pas de solution d'export/import de l'historique (fonctionnalité en développement)
**Limites du stockage :**
Le localStorage a généralement une limite de **5 à 10 Mo par domaine** selon le navigateur. Mémotest utilise cet espace pour :
- Les données de progression des flashcards (quelques Ko par jeu)
- L'historique des quiz (augmente avec le nombre de tentatives)
- Les préférences (très léger, < 1 Ko)
**Actuellement, Mémotest ne gère pas automatiquement :**
- La compression des données JSON
- La suppression automatique des anciennes statistiques
- L'alerte si la limite de stockage approche
Ces fonctionnalités sont prévues dans la feuille de route pour garantir une meilleure gestion de l'espace.
**Réinitialisation des données :**
- **Quiz** : bouton "Effacer l'historique" disponible dans l'écran d'historique
- **Flashcards** : réinitialisation complète non disponible actuellement (fonctionnalité en développement)
- **Préférences** : pas de bouton de réinitialisation (elles s'écrasent simplement en changeant les paramètres)
**Confidentialité totale :**
- ✅ Aucun cookie de tracking
- ✅ Aucune connexion à des serveurs externes pour l'analyse
- ✅ Pas de compte utilisateur requis
- ✅ Aucune donnée transmise à des tiers
- ⚠️ Compatible avec la navigation privée **MAIS** les données sont perdues à la fermeture en mode privé
**Nettoyage manuel :**
Si vous souhaitez effacer toutes les données Mémotest de votre navigateur :
1. Ouvrez les outils de développement (F12)
2. Onglet "Application" ou "Stockage"
3. Section "Local Storage" → sélectionnez le domaine de Mémotest
4. Supprimez manuellement les clés ou videz tout le stockage
</details>
---
## Fonctionnalités transversales
### Synthèse vocale
La synthèse vocale (Text-to-Speech) permet d'écouter le contenu pour un apprentissage multisensoriel.
**Activation :**

- Cliquez sur l'icône haut-parleur dans la barre d'outils
- Une fois activée, le contenu textuel est lu automatiquement
**Sélection de la voix :**

- Cliquez sur l'icône microphone pour accéder au sélecteur de voix
- Choisissez parmi les voix françaises disponibles sur votre appareil :

- La voix sélectionnée est mémorisée pour les prochaines utilisations
**Contenu lu :**
- **Quiz** : questions, options de réponse, feedbacks, indices
- **Flashcards** : questions (recto) et réponses (verso)
- Les champs `*Speech` (ex: `questionSpeech`) sont utilisés en priorité s'ils existent, sinon le texte standard est lu
- **Les formules LaTeX sont converties en texte lisible**
---
<details>
<summary><strong>Optimisation de la synthèse vocale...</strong></summary><br>
**Améliorer la qualité de lecture :**
Pour que la synthèse vocale soit plus naturelle, utilisez les champs `Speech` dans vos données :
{
"question": "Calculer $\frac{2}{3} + \frac{1}{4}$",
"questionSpeech": "Calculer deux tiers plus un quart",
"answer": "$\frac{11}{12}$",
"answerSpeech": "onze douzièmes"
}
**Pause et reprise :**
- La lecture se met en pause automatiquement lors du changement de carte/question
- Désactivez la synthèse vocale via l'icône haut-parleur à tout moment
**Accessibilité :**
- Essentiel pour les utilisateurs malvoyants
- Utile pour l'apprentissage auditif
- Permet de réviser en situation de mobilité (transports, etc.)
</details>
---
### Thèmes et contraste
**Mode sombre / Mode clair :**
- Basculez entre les deux thèmes via l'icône lune/soleil
- Le mode sombre réduit la fatigue oculaire
- Le choix est mémorisé pour vos prochaines visites
**Ajustement du contraste :**
- **Contraste normal** : design équilibré et esthétique
- **Contraste renforcé** : conforme [RGAA](https://accessibilite.numerique.gouv.fr/) pour un contraste de [niveau AAA](https://www.w3.org/Translations/WCAG21-fr/#contrast-enhanced) pour accessibilité maximale
- Bascule via l'icône dédiée
### Affichage mathématique avec MathJax
MathJax permet l'affichage professionnel des formules mathématiques.
**Syntaxe LaTeX supportée :**
- **Inline** : `$x^2 + y^2 = z^2$` pour $x^2 + y^2 = z^2$
- **Block** : `$$\int_0^1 x^2 dx$$` pour $\int_0^1 x^2 dx$
**Exemples de formules :**
- Fractions : `$\frac{a}{b}$` → $\frac{a}{b}$
- Racines : `$\sqrt{x}$` → $\sqrt{x}$
- Exposants : `$x^{2n+1}$` → $x^{2n+1}$
- Intégrales : `$\int_a^b f(x)dx$` → $\int_a^b f(x)dx$
- Matrices : `$\begin{pmatrix} a & b \\ c & d \end{pmatrix}$` → $\begin{pmatrix} a & b \\ c & d \end{pmatrix}$
## Documentation et support
La documentation la plus générale et la plus complète est ce document que vous êtes en train de consulter. Il pourra y avoir des documents complémentaires si je le juge nécessaire; je les indiquerai dans la liste ci-après :
* <i class="fa fa-video-camera" aria-hidden="true"></i> : Teaser (2 min 21) : [Lien YT](https://youtu.be/Cl70TJdQUro), [Lien Tube](https://tube-numerique-educatif.apps.education.fr/w/4VWf5SrdDWTFJqB5fiRkCZ)
* <i class="fa fa-video-camera" aria-hidden="true"></i> : Playlist Professeur, 3 vidéos (21 min 44) : [Lien YT](https://www.youtube.com/playlist?list=PLbBgLs7mTczDJo8u7KkGhWJPsh3TuxmEJ), [Lien Tube](https://tube-numerique-educatif.apps.education.fr/w/p/bySRzNTWktsEJ2fc9NE1B4)
* <i class="fa fa-video-camera" aria-hidden="true"></i> : Playlist Élève, 3 vidéos (17 min 56) : [Lien YT](https://www.youtube.com/playlist?list=PLbBgLs7mTczA7sv52Dg8HoW9Q_9yYYL-A), [Lien Tube](https://tube-sciences-technologies.apps.education.fr/w/p/aw3pUGfrcgeSpttMXFfPHK)
* <i class="fa fa-code-fork" aria-hidden="true"></i> : **Mémotest** est hébergée sur la [Forge des Communs Numériques Éducatifs](forge.apps.education.fr/)
* <i class="fa fa-balance-scale" aria-hidden="true"></i> : Licence et code source : Mémotest est un logiciel libre distribué sous **licence Licence libre GNU AGPLv3** (compatible avec les communs numériques éducatifs).
* <i class="fa fa-code" aria-hidden="true"></i> : Le **code source est disponible publiquement** sur la forge : forge.apps.education.fr/educode/memotest
* <i class="fa fa-bug" aria-hidden="true"></i> : Pour **signaler un problème**, vous pouvez [créer un ticket](https://forge.apps.education.fr/educode/memotest/issues) (il faut pour cela être connecté avec son compte apps.education.fr)
<br><br>
<small>Sylvain Godmé <a title="Voir ma chaîne Youtube" href="https://www.youtube.com/@sylvaingodme"><a title="Voir la chaîne regroupant l'ensemble des vidéos que j'ai réalisées à destination de mes élèves pour l'enseignement des mathématiques de niveau collège" href="https://tube-sciences-technologies.apps.education.fr/c/godme_sylvain_channel/videos"></a> <a title="Professeurs : Suivre @SylvainGodme sur X" href="https://x.com/intent/follow?ref_src=twsrc%5Etfw%7Ctwcamp%5Ebuttonembed%7Ctwterm%5Efollow%7Ctwgr%5ESylvainGodme®ion=follow_link&screen_name=SylvainGodme"></a> <a title="Professeurs : Suivre @SylvainGodme sur BlueSky" href="https://bsky.app/profile/sylvaingodme.bsky.social"></a> - Cette publication est sous licence [CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) [](https://creativecommons.org/licenses/by-sa/4.0/)</small>