DidactIA — Documentation Technique

Présentation

DidactIA est une plateforme cross-platform permettant de concevoir des outils didactiques et pédagogiques destinés à la communauté éducative, assistée par l’intelligence artificielle.

Fonctionnalités principales

  • Assistant IA (KOFFI) — Conversations pédagogiques contextualisées par niveau, matière et type de ressource
  • Documents pédagogiques — Création et export de fiches de cours, exercices et évaluations (Word/PDF)
  • Quiz interactifs — Création, assignation et correction de quiz enseignant → élève
  • Outils mathématiques et scientifiques — GeoGebra IA, physique 2D, graphes Cytoscape, tableaux de variation, chimie LaTeX
  • Blog — Articles pédagogiques publics
  • Crédits — Système de crédits pour l’accès aux fonctionnalités IA

Stack technique

Couche Technologie
Frontend Quasar v2 + Vue 3 + TypeScript
Styling CSS Variables + <style scoped>
State Pinia (avec persistance)
Mobile Capacitor (iOS / Android)
Desktop Electron
API FastAPI — http://localhost:8000
Auth OAuth2 / JWT + Firebase Google Auth

Accès par rôle

Rôle Description
public Pages accessibles sans connexion
auth Utilisateur connecté avec email vérifié
teacher Enseignant — accès création quiz / documents
student Élève — accès quiz assignés
admin Administrateur — back-office blog, classes, n8n

Arborescence de la documentation

docs/
├── index.md                        ← Ce fichier (présentation + arborescence)
│
├── public/                         ← Pages accessibles sans connexion
│   ├── home.md                     /
│   ├── documentation.md            /documentation
│   ├── blog-list.md                /blog
│   └── blog-article.md             /blog/:slug
│
├── auth/                           ← Authentification
│   ├── login.md                    /auth/login
│   ├── signup.md                   /auth/signup
│   ├── signup-confirmation.md      /auth/signup-confirmation
│   ├── forgot-password.md          /auth/forgot-password
│   ├── reset-password.md           /auth/reset-password
│   ├── verify-email.md             /auth/verify-email
│   └── oauth-callback.md           /auth/callback
│
├── chat/                           ← Assistant IA
│   ├── home.md                     /chat
│   └── conversation.md             /chat/:chatId
│
├── documents/                      ← Documents pédagogiques
│   ├── list.md                     /documents
│   └── edit.md                     /documents/:id
│
├── quiz/                           ← Quiz
│   ├── teacher-list.md             /quiz/teacher
│   ├── teacher-editor.md           /quiz/teacher/new  |  /quiz/teacher/:id/edit
│   ├── teacher-groups.md           /quiz/groups
│   ├── teacher-attempts.md         /quiz/teacher/:quizId/attempts
│   ├── student-list.md             /quiz/student
│   ├── student-detail.md           /quiz/access/:slug
│   └── student-attempts.md         /quiz/student/history
│
├── tools/                          ← Outils scientifiques
│   ├── index.md                    /tools
│   ├── geogebra.md                 /tools/geogebra
│   ├── cytoscape.md                /tools/cytoscape
│   ├── matter-js.md                /tools/matter-js
│   ├── tableau-variation.md        /tools/tableau-variation
│   ├── chemistry-typing.md         /tools/chemistry-typing
│   └── richtext-word.md            /tools/richtext-word
│
├── user/                           ← Espace utilisateur
│   ├── profile.md                  /profile
│   └── credits.md                  /credits
│
├── admin/                          ← Back-office (admin)
│   ├── blog-admin.md               /admin/blog
│   ├── blog-editor.md              /admin/blog/:id
│   ├── classes.md                  /admin/classes
│   ├── collections.md              /admin/collections
│   ├── credits.md                  /admin/credits
│   └── n8n-mapping.md              /admin/n8n-mapping
│
└── errors/
    └── 404.md                      /:catchAll

Index des pages

Pages publiques

Page d’accueil/ — Public

Vitrine principale de DidactIA. Présente les fonctionnalités, les assistants IA, les outils et les témoignages d’utilisateurs pour convaincre les visiteurs de s’inscrire.

Actions :

  • S’inscrire en cliquant sur le bouton CTA → /auth/signup
  • Découvrir les fonctionnalités et les assistants disponibles
  • Naviguer vers les tarifs → /pricing
  • Accéder directement au chat IA → /chat
  • Explorer les outils scientifiques → /tools

Tarifs/pricing — Public

Compare les plans d’abonnement (Free, Pro, Premium) avec un toggle mensuel/annuel et un tableau des quotas inclus.

Actions :

  • Basculer entre facturation mensuelle et annuelle (−20%)
  • Comparer les plans et leurs limites (messages IA, documents, quiz…)
  • Lancer l’abonnement à un plan → /checkout?plan=...
  • Consulter la FAQ sur les abonnements

Guide d’utilisation/documentation — Public

Affiche le guide d’utilisation complet de DidactIA, compilé depuis le fichier Markdown du projet.

Actions :

  • Lire la documentation de toutes les fonctionnalités
  • Naviguer par sections via les ancres du document

Blog/blog — Public

Liste paginée des articles de blog avec filtres par catégorie (actualités, tutoriels, fonctionnalités, annonces).

Actions :

  • Filtrer les articles par catégorie
  • Parcourir la pagination (précédent / suivant)
  • Ouvrir un article → /blog/:slug

Article de blog/blog/:slug — Public

Affiche un article de blog complet avec image de couverture, métadonnées et contenu.

Actions :

  • Lire l’article complet
  • Naviguer vers d’autres articles en cliquant sur un tag

Authentification

Connexion/auth/login — Guest

Formulaire de connexion pour les utilisateurs existants, avec options email/mot de passe ou Google.

Actions :

  • Se connecter avec son email et son mot de passe
  • Se connecter avec Google (popup web ou natif sur mobile)
  • Afficher / masquer le mot de passe
  • Accéder à la réinitialisation → /auth/forgot-password
  • Naviguer vers la création de compte → /auth/signup

Inscription/auth/signup — Guest

Formulaire de création de compte avec choix du rôle (enseignant ou élève).

Actions :

  • Choisir son rôle : Élève ou Enseignant
  • Créer un compte avec prénom, nom, email et mot de passe
  • S’inscrire avec Google
  • Naviguer vers la connexion → /auth/login

Confirmation d’inscription/auth/signup-confirmation — Guest

Page intermédiaire post-inscription indiquant à l’utilisateur de vérifier sa boîte mail.

Actions :

  • Renvoyer l’email de confirmation si non reçu
  • Retourner à la connexion → /auth/login

Mot de passe oublié/auth/forgot-password — Guest

Permet de demander un lien de réinitialisation du mot de passe par email.

Actions :

  • Soumettre son adresse email pour recevoir le lien de réinitialisation
  • Retourner à la connexion → /auth/login

Nouveau mot de passe/auth/reset-password — Guest

Définit un nouveau mot de passe via le lien reçu par email.

Actions :

  • Saisir et confirmer le nouveau mot de passe
  • Retourner à la connexion après succès

Vérification email/auth/verify-email — Guest

Valide le compte utilisateur en traitant le token reçu par email.

Actions :

  • Validation automatique au chargement de la page
  • Renvoyer l’email de vérification si la validation échoue

Callback OAuth/auth/callback — Public

Page technique de finalisation du flux OAuth redirect côté serveur. Aucune interaction utilisateur requise.


Assistant IA

Accueil Chat IA/chat — Authentifié

Point de départ pour démarrer une nouvelle conversation avec l’assistant pédagogique KOFFI.

Actions :

  • Choisir le type d’assistant (KOFFI, etc.)
  • Envoyer un premier message pour créer une conversation
  • Utiliser une suggestion rapide (prompt prédéfini)
  • Rafraîchir la liste (pull-to-refresh sur mobile)

Conversation IA/chat/:id — Authentifié

Fil de discussion complet avec l’assistant IA, avec rendu Markdown et affichage des exercices générés.

Actions :

  • Envoyer un message à l’assistant
  • Régénérer la dernière réponse de l’IA
  • Copier le contenu d’un message
  • Consulter les résultats d’exercices structurés générés par KOFFI

Documents pédagogiques

Mes documents/documents — Authentifié

Liste de tous les documents pédagogiques créés par l’utilisateur (fiches, évaluations, etc.).

Actions :

  • Créer un nouveau document (fiche, évaluation…)
  • Rechercher un document par titre
  • Filtrer par type de document
  • Ouvrir et éditer un document existant → /documents/:id
  • Supprimer un document

Éditeur de document/documents/:id — Authentifié

Éditeur complet pour rédiger ou modifier un document pédagogique, avec deux modes selon le type de contenu.

Actions :

  • Modifier le titre du document
  • Écrire le contenu (éditeur texte riche ou éditeur d’exercices structurés)
  • Sauvegarder le document (manuel ou auto-save)
  • Exporter en Word (.docx)
  • Exporter en PDF

Quiz

Mes quiz — Enseignant/quiz/teacher — Enseignant

Tableau de bord de gestion de tous les quiz créés par l’enseignant.

Actions :

  • Créer un nouveau quiz/quiz/teacher/new
  • Modifier un quiz existant → /quiz/teacher/:id/edit
  • Voir les tentatives des élèves pour un quiz
  • Supprimer un quiz (avec confirmation)
  • Accéder à la gestion des groupes/quiz/teacher/groups

Éditeur de quiz/quiz/teacher/new ou /:id/edit — Enseignant

Formulaire complet de création ou modification d’un quiz.

Actions :

  • Définir le titre, la description et les règles (temps limite, seuil de réussite)
  • Ajouter, modifier et supprimer des questions
  • Assigner le quiz à des groupes ou des élèves
  • Publier le quiz ou le sauvegarder en brouillon

Groupes d’affectation/quiz/teacher/groups — Enseignant

Gestion des groupes d’élèves pour assigner des quiz rapidement à plusieurs personnes à la fois.

Actions :

  • Créer un groupe avec un nom
  • Ajouter ou retirer des membres (élèves)
  • Activer / désactiver un groupe
  • Supprimer un groupe

Tentatives d’un quiz/quiz/teacher/:id/attempts — Enseignant

Résultats de tous les élèves pour un quiz donné, avec scores et statuts.

Actions :

  • Consulter les scores de chaque élève (% + badge réussi/échoué)
  • Filtrer les tentatives par nom d’élève

Quiz assignés — Élève/quiz/student — Élève

Liste de tous les quiz auxquels l’élève a accès (assignés directement ou via un groupe).

Actions :

  • Voir les quiz disponibles avec leur description et règles
  • Accéder à un quiz pour le passer → /quiz/access/:slug
  • Naviguer vers l’historique des tentatives

Passer un quiz/quiz/access/:slug — Élève

Interface immersive de passation d’un quiz, avec instructions, navigation et correction détaillée.

Actions :

  • Lire les instructions du quiz (dialogue d’accueil)
  • Répondre aux questions (QCM, vrai/faux, réponse courte…)
  • Naviguer entre les questions via la sidebar
  • Soumettre ses réponses
  • Consulter la correction détaillée avec score final
  • Recommencer le quiz (si autorisé par l’enseignant)

Historique des tentatives/quiz/student/history — Élève

Historique personnel de toutes les tentatives de quiz de l’élève.

Actions :

  • Consulter ses résultats passés (score, date, quiz)
  • Identifier les quiz réussis ou échoués via les badges colorés

Outils scientifiques

Catalogue des outils/tools — Authentifié

Grille de présentation de tous les outils pédagogiques et scientifiques disponibles.

Actions :

  • Choisir et accéder à un outil IA pour commencer à travailler

GeoGebra IA/tools/geogebra — Authentifié

Génère des constructions géométriques GeoGebra interactives (2D ou 3D) depuis une description en langage naturel.

Actions :

  • Décrire la construction souhaitée en français
  • Choisir le mode 2D (Graphing) ou 3D
  • Générer la construction via l’IA
  • Utiliser un exemple prédéfini
  • Télécharger en PNG
  • Importer un fichier .ggb existant

Cytoscape.js/tools/cytoscape — Authentifié

Génère des graphes et réseaux interactifs depuis une description en langage naturel.

Actions :

  • Décrire le graphe souhaité en langage naturel
  • Ajouter une image de référence optionnelle
  • Générer le graphe via l’IA
  • Randomiser la disposition des nœuds
  • Télécharger en PNG

Matter.js — Physique 2D/tools/matter-js — Authentifié

Génère et simule des scènes de physique 2D interactives depuis une description textuelle.

Actions :

  • Décrire la scène physique souhaitée
  • Générer la simulation via l’IA
  • Secouer la scène (appliquer des forces aléatoires)
  • Ajouter des corps dynamiquement
  • Réinitialiser la scène
  • Télécharger une capture PNG

Tableau de variation/tools/tableau-variation — Authentifié

Génère automatiquement un tableau de variation et une analyse textuelle depuis une expression mathématique.

Actions :

  • Saisir une expression mathématique (ex. x^2 - 3x + 2)
  • Utiliser un exemple prédéfini
  • Générer le tableau de variation (image PNG) et l’analyse
  • Télécharger le tableau en PNG

Chemistry Typing/tools/chemistry-typing — Authentifié

Convertit des expressions chimiques LaTeX en images PNG de haute qualité.

Actions :

  • Saisir l’expression chimique en LaTeX
  • Choisir les packages LaTeX (mhchem, chemfig…)
  • Ajuster la taille de police et la largeur
  • Utiliser un exemple prédéfini
  • Générer l’image PNG
  • Télécharger le résultat

Rich Text → Word/tools/richtext-word — Authentifié

Éditeur de texte riche avec export direct en fichier Word (.docx), sans passer par le module Documents.

Actions :

  • Rédiger un document (titres, listes, tableaux, images)
  • Utiliser un exemple rapide
  • Nommer le fichier à exporter
  • Exporter directement en .docx (sans appel API)

Espace utilisateur

Mon profil/profile — Authentifié

Affiche les informations personnelles de l’utilisateur et permet leur modification.

Actions :

  • Modifier son prénom et son nom
  • Consulter son rôle (enseignant / élève) et ses classes
  • Voir son plan d’abonnement actuel → lien vers /subscription
  • Se déconnecter

Mon abonnement/subscription — Authentifié

Affiche le plan actif et les jauges d’utilisation des quotas de la période en cours.

Actions :

  • Consulter ses quotas d’utilisation (messages IA, documents, quiz…)
  • Voir la date de renouvellement du plan
  • Aller sur les tarifs pour changer de plan → /pricing

Paiement/checkout — Authentifié

Tunnel de paiement Mobile Money (CinetPay) pour souscrire à un plan DidactIA.

Actions :

  • Vérifier le récapitulatif du plan choisi (tier + cycle)
  • Saisir son numéro de téléphone Mobile Money
  • Choisir l’opérateur (Orange Money, MTN, Moov…)
  • Confirmer et payer
  • Suivre le statut de la transaction en temps réel

Administration

Gestion du blog/admin/blog — Admin

Tableau de bord de tous les articles avec filtres et actions rapides de gestion.

Actions :

  • Créer un nouvel article → /admin/blog/new
  • Modifier un article existant
  • Publier ou dépublier un article
  • Supprimer un article (avec confirmation)
  • Filtrer par statut (publié, brouillon, archivé) ou catégorie

Éditeur d’article/admin/blog/:id — Admin

Formulaire complet de rédaction et publication d’un article de blog.

Actions :

  • Rédiger le contenu via l’éditeur riche
  • Définir titre, slug (auto-généré), résumé, catégorie
  • Uploader l’image de couverture
  • Ajouter des tags
  • Mettre en vedette l’article
  • Publier ou sauvegarder en brouillon

Configuration des classes/admin/classes — Admin

Vue en lecture seule des niveaux scolaires, spécialités et matières configurés dans le backend.

Actions :

  • Consulter la structure pédagogique (niveaux, spécialités, matières) — lecture seule

Mapping n8n/admin/n8n-mapping — Admin

Outil de consultation et création des clés de mapping qui connectent les demandes pédagogiques aux workflows n8n.

Actions :

  • Rechercher une clé existante par niveau / spécialité / matière / type
  • Créer une nouvelle clé de mapping
  • Consulter les collections n8n disponibles

Erreurs

Page 404/:catchAll(.*) — Public

Page d’erreur affichée pour toute URL inconnue.

Actions :

  • Retourner à l’accueil/