Discourse en tant que LMS / Intégration de Discourse avec un LMS

Comme beaucoup d’entre vous dans ce fil, je cherchais un moyen léger d’utiliser Discourse nativement comme LMS. Je trouve les plateformes LMS dédiées trop lourdes, mais la « décélération des notifications » par défaut de Discourse (où les anciens sujets cessent d’apparaître comme « non lus » pour les nouveaux utilisateurs) rend le suivi de la progression des cours difficile.

Pour répondre à mon propre besoin, j’ai créé une solution simple en combinant des paramètres de catégorie, un petit plugin backend et un composant de thème.

Voici comment je l’ai configuré, ainsi que le code open-source que vous pouvez utiliser pour le reproduire !

Le concept de base : Discourse en tant que LMS

Pour que cela fonctionne, j’utilise les fonctionnalités standard de Discourse combinées au plugin officiel Discourse Doc Categories :

  • Cours = Catégorie : Chaque cours dispose de sa propre catégorie.
  • Leçon = Sujet : Chaque leçon est un sujet au sein de cette catégorie.
  • Permissions : Les membres peuvent répondre aux leçons (pour poser des questions), mais seuls le personnel peut créer de nouveaux sujets.
  • Ordre : L’ordre des leçons est fixé par la date de création. (Astuce : Cela nécessite un peu de réflexion anticipée lors de la publication des leçons, ou vous pouvez utiliser la console Rails pour reculer rapidement les dates de création des sujets afin d’imposer le tri correct).
  • Programme : J’utilise le plugin Discourse Doc Categories pour désigner un « Sujet Index ». Ce sujet index sert de syllabus/suivi du cours et affiche une belle structure dans la barre latérale lorsque les utilisateurs entrent dans le cours.

La pièce manquante : Un véritable suivi de progression

Le problème avec la configuration ci-dessus est que, lorsqu’un nouvel étudiant rejoint, les anciens sujets de leçon n’apparaissent pas comme « non lus », ils n’ont donc aucun moyen de suivre visuellement leur progression.

Pour résoudre ce problème, j’ai créé un plugin backend qui interroge directement la table de base de données TopicUser pour obtenir le statut de lecture historique réel, et un composant de thème frontend qui transforme la barre latérale standard de Discourse en un véritable suivi de progression LMS en temps réel.

1. Badges de progression dans la barre latérale principale

Le composant de thème remplace les points de notification bleus standard par des indicateurs de progression [ lu / total ] pour vos catégories de cours.

2. coches de complétion des leçons

Lorsqu’un utilisateur clique sur un cours, le plugin Docs affiche le syllabus. Mon composant de thème injecte des coches de succès (fa-check) à côté des leçons spécifiques que l’utilisateur a terminées.

3. Complétion du cours

Une fois qu’un utilisateur a lu tous les sujets de la catégorie, le badge de progression de la barre latérale se transforme automatiquement en une coche de complétion satisfaisante !

Comment l’installer

Comme cela nécessite de contourner le cache de notification standard de Discourse, vous devez installer à la fois le plugin backend et le composant de thème frontend.

Étape 1 : Installer le prérequis
Assurez-vous que le plugin officiel Discourse Doc Categories est installé et actif. Mon plugin cible spécifiquement uniquement les catégories qui ont un Sujet Index configuré.

Étape 2 : Installer le plugin API backend
Ajoutez ceci à votre app.yml sous docker_manager et reconstruisez votre conteneur. Cela fournit un point de terminaison API ultra-rapide pour les statuts de lecture.
:hammer_and_wrench: Lien vers le dépôt : https://github.com/zsviczian/discourse-course-progress**

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/zsviczian/discourse-course-progress.git

Étape 3 : Installer le composant de thème UI
Installez-le directement via votre navigateur web dans Admin > Personnaliser > Thèmes > Installer > Depuis un dépôt Git.
:hammer_and_wrench: Lien vers le dépôt : https://github.com/zsviczian/discourse-course-progress-theme

J’espère que cela aidera les autres qui tentent de créer des cours pilotés par la communauté sans la lourdeur d’une plateforme LMS distincte ! Faites-moi savoir si vous finissez par l’utiliser.

3 « J'aime »