Projet Brevet d'Initiation Aéronautique BIA

Bruno Bernard et Marin Descarrega

Cahier des charges technique pour intégrateur et développeur web sur Moodle (la solution de cours en ligne Open Source).

1. Création d’une base de données des annales avec possibilité d’inclure des images
  • Objectif : Construire une base de données pour les annales avec la possibilité d’ajouter des images, des métadonnées et des statistiques de suivi.
  • Résumé du comportement attendu :
    • Les utilisateurs pourront accéder à une base de données contenant les annales, classées par question, avec des champs pour chaque réponse possible (A, B, C, D), des images associées, des commentaires, et des statistiques de performance. Les administrateurs pourront ajouter et modifier les questions et réponses, et suivre les performances via des statistiques (nombre de clics, de bonnes réponses, etc.).
  • Étapes :
    1. Installer et configurer le plugin “Database Activity” :
      • Procédure : Aller dans le panneau d’administration Moodle → Plugins → Installer un plugin. Chercher le plugin “Database Activity” (si non installé par défaut).
      • Une fois installé, créer une nouvelle activité de type “Base de données” dans un cours.
      • Dans la configuration de la base de données, ajouter les champs personnalisés suivants :
        • Texte pour : Clé, Question, Réponse A, B, C, D, Bonne Réponse.
        • Menu déroulant pour : Choix de la bonne réponse.
        • Fichier image pour l’ajout d’images dans chaque question.
        • Texte long pour les commentaires sur chaque réponse.
        • Menu déroulant ou numérique pour : Thème, Source (année).
        • Numérique pour : Statistiques (nb de vues, nb de clics sur chaque réponse, ratio bonne réponse).
    2. Installation du plugin “Dataform” (option avancée) :
      • Ce plugin offre plus de flexibilité que la base de données standard.
      • Installer “Dataform” via l’interface d’administration de Moodle.
      • Utilisation : Créer une nouvelle instance Dataform, et configurer les vues et formulaires en fonction des besoins spécifiques du projet.
  • Recommandations :
    • Créer des templates d’affichage pour personnaliser la présentation des données.
    • Utiliser des vues filtrées (par thème, difficulté, etc.) pour faciliter l’accès à certaines données spécifiques.
2. Automatisation de la classification des questions par thème via OpenAI
  • Objectif : Automatiser la classification des questions en fonction du programme BIA à l’aide d’une API externe comme OpenAI.
  • Résumé du comportement attendu :
    • Lorsque de nouvelles questions sont ajoutées, elles sont automatiquement analysées et classées dans les thèmes correspondants du programme BIA sans intervention manuelle. Le système utilise OpenAI pour comprendre le contenu des questions et les affecter à la bonne catégorie thématique.
  • Étapes :
    1. Créer une clé API OpenAI :
      • S’inscrire sur OpenAI (https://beta.openai.com/signup) et générer une clé API pour accéder à leurs services.
    2. Installer le plugin “Moodle External Tool” (LTI) :
      • Ce plugin permet de connecter Moodle à des services externes via l’API.
      • Procédure : Administration → Plugins → Outils externes → Ajouter un nouvel outil externe.
      • Configurer l’accès à l’API OpenAI : renseigner l’URL de l’API et la clé API dans les paramètres de l’outil externe.
    3. Développer un plugin personnalisé pour OpenAI :
      • Étape technique : Créer un plugin Moodle personnalisé (type local) pour intégrer l’API OpenAI.

      • Code de base : Utiliser cURL ou Guzzle pour envoyer les requêtes à l’API OpenAI en mode POST, avec les questions comme input, et le retour comme classification thématique.

      • Exemple de requête API OpenAI :

        $apiKey = 'votre_cle_openai';
        $url = 'https://api.openai.com/v1/completions';
        
        $data = [
            'model' => 'text-davinci-003',
            'prompt' => 'Classify this question into the correct theme based on the BIA syllabus: ' . $question,
            'max_tokens' => 50,
            'temperature' => 0.5,
        ];
        
        $headers = [
            'Authorization: Bearer ' . $apiKey,
            'Content-Type: application/json',
        ];
        
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        $response = curl_exec($ch);
        curl_close($ch);
        
        $classification = json_decode($response, true)['choices'][0]['text'];
      • Intégrer ce plugin avec une tâche CRON pour traiter régulièrement les nouvelles questions ajoutées.

3. Automatisation des commentaires explicatifs avec OpenAI
  • Objectif : Automatiser la génération de commentaires explicatifs pour chaque réponse.
  • Résumé du comportement attendu :
    • Pour chaque réponse proposée dans une question, le système génère automatiquement un commentaire explicatif intelligent à l’aide d’OpenAI. Ces explications sont ajoutées à la base de données, permettant aux utilisateurs de consulter les raisons pour lesquelles une réponse est correcte ou incorrecte après avoir répondu à la question.
  • Étapes :
    1. Utiliser le même plugin API que pour la classification :
      • Utiliser l’API OpenAI pour générer des commentaires explicatifs basés sur chaque réponse.

      • Créer des prompts spécifiques qui incluent le contexte de la question et les différentes réponses.

      • Exemple de prompt :

        $prompt = 'Provide an explanation for why the following answer is correct: ' . $answer . '. The context of the question is: ' . $question;
    2. Intégrer avec Moodle :
      • Ajouter un champ “Commentaire explicatif” dans la base de données et utiliser un script similaire à celui de la classification pour automatiser l’ajout des commentaires.
4. Base de données utilisateurs et historique des interactions
  • Objectif : Gérer les informations des utilisateurs et suivre leurs interactions avec les questions.
  • Résumé du comportement attendu :
    • Chaque utilisateur aura un profil avec des champs personnalisés (comme les groupes auxquels il appartient et ses points). Un historique détaillé de ses interactions avec les questions sera stocké, comprenant des données telles que le temps passé à répondre, si la réponse était correcte ou non, et combien de tentatives ont été faites. Cela permet aux administrateurs de suivre la progression de chaque utilisateur et de générer des rapports.
  • Étapes :
    1. Installer le plugin “Custom User Fields” :
      • Permet d’ajouter des champs supplémentaires pour les utilisateurs (groupes, points, etc.).
      • Configuration : Ajouter des champs pour suivre les points, la date de naissance, etc.
    2. Installer le plugin “Logstore Standard” :
      • Ce plugin permet de suivre les actions des utilisateurs sur le site.
      • Procédure : Administration → Plugins → Gestion des logs → Activer “Logstore Standard”.
    3. Configurer des rapports via “Configurable Reports” :
      • Installer ce plugin pour créer des rapports personnalisés sur les interactions des utilisateurs avec les questions.
      • Exemples de rapports : temps passé par question, taux de réussite, etc.
5. Base de données des groupes et gestion des adhésions
  • Objectif : Gérer efficacement les groupes avec des rôles personnalisés et un processus d’adhésion fluide.
  • Résumé du comportement attendu :
    • Les administrateurs pourront créer des groupes (cohortes) d’utilisateurs, attribuer des rôles (comme professeur ou élève), et gérer les adhésions. Les utilisateurs pourront rejoindre des groupes via un code ou une sélection automatique. Les professeurs pourront suivre la progression de leurs groupes et ajouter ou retirer des membres selon les besoins.
  • Étapes :
    1. Installer le plugin “Cohorts” :
      • Créer et gérer des groupes d’utilisateurs (appelés cohortes dans Moodle).
      • Procédure : Administration → Utilisateurs → Cohortes.
      • Créer des cohortes pour chaque groupe de classe.
    2. Installer le plugin “Group self-selection” :
      • Permettre aux utilisateurs de rejoindre des groupes via un code ou une sélection automatique.
      • Procédure : Administration → Plugins → Groupes → Activer “Self-selection”.
6. Interface utilisateur et admin ergonomique
  • Objectif : Simplifier l’interface pour les utilisateurs et les administrateurs.
  • Résumé du comportement attendu :
    • L’interface utilisateur sera simplifiée pour permettre une navigation fluide avec des choix intelligents et des options limitées. Les administrateurs auront une interface claire et ergonomique pour gérer les questions, les groupes et les utilisateurs, sans se

perdre dans des menus trop complexes. Les utilisateurs auront accès à une interface optimisée, facile à utiliser, leur proposant des révisions personnalisées basées sur leur progression.

  • Étapes :
    1. Installer un thème adapté :
      • Installer un thème comme “Adaptable” ou “Fordson”, qui offre une personnalisation poussée de l’interface utilisateur.
      • Procédure : Administration → Apparence → Thèmes → Installer un thème.
    2. Configurer la navigation avec “Boost Navigation Fumbling” :
      • Simplifier les menus et la navigation dans Moodle en cachant les éléments non essentiels.
      • Procédure : Administration → Plugins → Navigation → Activer Boost Navigation.
7. Gamification avancée et gestion des points
  • Objectif : Motiver les utilisateurs via un système de points, niveaux et badges.
  • Résumé du comportement attendu :
    • Les utilisateurs gagneront des points pour chaque bonne réponse, avec des bonus supplémentaires pour les réponses rapides. Ils pourront utiliser ces points pour débloquer des options spéciales (comme la suppression de mauvaises réponses), obtenir des badges et progresser dans les niveaux. Un tableau de classement par groupe sera également affiché, renforçant la compétition amicale entre les utilisateurs.
  • Étapes :
    1. Installer le plugin “Level Up!” :
      • Ce plugin permet de créer un système de progression avec des points et des badges.
      • Procédure : Administration → Plugins → Activités → Installer “Level Up!”.
      • Configurer les règles de progression : points attribués pour chaque bonne réponse, bonus pour le temps de réponse, etc.
    2. Installer le plugin “Stash” :
      • Permet de collecter des objets virtuels ou des récompenses que les utilisateurs peuvent utiliser pour débloquer des options.
      • Procédure : Administration → Plugins → Stash → Installer.
8. Chatbot intégré aux questions
  • Objectif : Permettre aux utilisateurs d’interagir avec un chatbot directement sur chaque question.
  • Résumé du comportement attendu :
    • Sur chaque question, un chatbot sera disponible pour répondre aux questions de l’utilisateur concernant la question affichée. Le chatbot saura quelles questions ont été posées et quelles réponses ont été données. Il fournira des explications supplémentaires si nécessaire, et ses interactions seront surveillées pour détecter tout abus.
  • Étapes :
    1. Installer le plugin “Chatbot” :
      • Procédure : Administration → Plugins → Installer “Chatbot”.
      • Configurer le chatbot pour qu’il interagisse avec les questions visibles, en intégrant la logique des réponses déjà données.
    2. Surveillance des abus :
      • Développer un script personnalisé pour monitorer les requêtes envoyées au chatbot et détecter des anomalies dans son utilisation (ex : questions non liées au BIA).
9. Suppression automatique des comptes et des groupes inactifs
  • Objectif : Automatiser la gestion des comptes et groupes inactifs.
  • Résumé du comportement attendu :
    • Les comptes utilisateurs seront automatiquement supprimés après 3 ans d’inactivité, après un avertissement par email. Les groupes sans administrateurs actifs depuis un certain temps seront également supprimés automatiquement. Cela permet de garder la plateforme propre et à jour sans surcharge de comptes ou de groupes inutilisés.
  • Étapes :
    1. Installer le plugin “Inactive User Cleaner” :
      • Permet de supprimer automatiquement les utilisateurs après une période d’inactivité.
      • Procédure : Administration → Plugins → Gérer les utilisateurs → Activer “Inactive User Cleaner”.
    2. Configurer la suppression des groupes avec “Cohort Management” :
      • Gérer automatiquement les cohortes sans administrateur via ce plugin.
10. Trame d’apprentissage et répétition espacée
  • Objectif : Organiser les questions selon leur difficulté et utiliser la répétition espacée pour améliorer l’apprentissage.
  • Résumé du comportement attendu :
    • Les utilisateurs verront les questions organisées par niveau de difficulté croissant, leur permettant d’améliorer progressivement leurs compétences. Un système de répétition espacée sera mis en place pour leur faire réviser les questions déjà vues en fonction de leurs performances passées, renforçant ainsi la mémorisation à long terme.
  • Étapes :
    1. Installer le plugin “Quizventure” :
      • Ce plugin permet de transformer des quiz en jeu avec des niveaux de difficulté croissants.
    2. Installer le plugin “Flashcards” :
      • Permet d’implémenter la répétition espacée pour renforcer l’apprentissage progressif des questions.

Guide pour les utilisateurs

1. Utilisation de la base de données des annales
2. Classification automatique des questions
3. Explications automatiques des réponses
4. Suivi de vos performances
5. Adhésion aux groupes
6. Interface utilisateur simplifiée
7. Système de points et gamification
8. Utilisation du chatbot
9. Suppression automatique des comptes inactifs
10. Révision et trame d’apprentissage

de difficulté croissant, vous permettant de vous améliorer progressivement. - Répétition espacée : Les questions que vous avez déjà vues vous seront régulièrement reproposées en fonction de votre performance, afin de renforcer vos connaissances sur le long terme.


Conclusion

Demander à PM la partie scientifique