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

Bien sûr, merci de votre intérêt.

Nous avons actuellement une communauté où se rencontrent de jeunes universitaires désireux de s’améliorer. Nous y organisons principalement des modules sur la science et la philosophie, des réunions hebdomadaires, et encourageons les gens à faire des présentations. J’ai également essayé d’ouvrir un forum pour cette communauté afin que les gens puissent avoir des discussions et des conversations plus confortables et à long terme. Il est actuellement privé à la communauté, mais nous prévoyons de l’ouvrir à l’ensemble d’Internet à l’avenir.

Actuellement, la majeure partie du flux d’informations, comme les lectures quotidiennes, les détails des présentations, les détails des réunions, etc., se fait via WhatsApp. Le taux de participants utilisant le forum est encore faible. Nous voulons à la fois établir un fonctionnement plus fonctionnel et faire en sorte que les gens accèdent davantage au forum en y transférant ce que nous faisons sur WhatsApp.

  1. Existe-t-il un moyen d’envoyer des notifications aux personnes lorsqu’il est utilisé comme Progressive Web App sur les téléphones mobiles ?
  2. Pouvons-nous créer un système où nous pouvons vérifier si les participants ont effectué leurs lectures quotidiennes et les récompenser ou leur rappeler ? (J’ai demandé à ChatGPT à ce sujet, il a dit que je pouvais le faire en créant un nouveau scénario avec le plugin d’automatisation Discourse, mais il n’y a pas d’option pour créer un nouveau scénario)
  3. Pouvons-nous créer un système de certification où nous délivrerons des diplômes aux participants en fonction de leur assiduité aux réunions hebdomadaires dans les modules ?

Ce sont les fonctionnalités que je recherchais depuis quelques jours. Si vous avez des fonctionnalités qui, selon vous, seraient fonctionnelles dans un système similaire, je suis ouvert à celles-ci.

2 « J'aime »

J’ai utilisé un système d’insignes pour les devoirs. Les étudiants créaient un sujet avec une étiquette pour le devoir et si je le :heart: ais, ils obtenaient un badge (avec badge sql). J’ai écrit un script qui lisait un fichier csv du LMS de l’école et le mettait à jour afin qu’il puisse être rechargé sur le LMS de l’école.

6 « J'aime »

Oui, absolument pour le PWA.

Pouvez-vous développer ? Avez-vous essayé d’ajouter une nouvelle automatisation via le tableau de bord administrateur ?

Et comme le dit Jay, les badges sont un bon moyen de le faire.

3 « J'aime »

Je viens de vérifier à nouveau, je dois activer les notifications dans les paramètres de Discourse. Merci.

ChatGPT m’a un peu induit en erreur, je comprends maintenant, mais la méthode qu’il m’a indiquée ne semble pas fonctionner.

Merci pour la réponse.

Comme je l’ai dit, puis-je créer un système où je peux récompenser les utilisateurs qui laissent des emojis sur leurs publications de lecture quotidiennes en utilisant simplement BadgeSQL ? Dois-je le faire en leur donnant des badges, le système de classement demande-t-il un plus grand effort ? Et si vous pouvez fournir un guide ou un point de départ pour BadgeSQL, j’en serais très heureux.

1 « J'aime »

Oui.

Le plugin de classement n’existait pas quand j’ai fait cela et je n’ai pas fait grand-chose (voire rien ?) avec.

https://meta.discourse.org/tag/sql-triggered-badge

Si la chose des badges fonctionne pour vous, alors un plugin (ou peut-être quelque chose qui appelle l’API ?) qui automatiserait la création du badge avec le SQL associé serait une bonne idée.

S’il s’agit d’un badge quotidien, il pourrait y avoir un moyen de faire en sorte que le SQL du badge accorde un badge pour hier ; ou simplement avoir un seul badge qui peut être attribué plusieurs fois et accorder un badge chaque jour où ils publient l’emoji.

2 « J'aime »

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 »

Y avait-il une raison pour laquelle vous n’avez pas inclus le code du composant de thème frontend dans le plugin, au lieu d’en avoir deux séparés ?

Mais, j’ai jeté un coup d’œil rapide à votre code, et c’était beaucoup plus simple à réaliser que je ne le pensais. J’adore ça !

2 « J'aime »

J’ai pensé que les gens pourraient souhaiter une apparence et une ambiance différentes pour leur suivi de cours et je ne voulais pas imposer mon goût aux autres.

Le composant de thème inclut des couleurs, des badges et des spécificités qui correspondent à mes besoins, mais pas nécessairement à ceux des autres.

Le plugin implémente une petite fonctionnalité manquante dans la documentation de Discourse. Vous pouvez créer votre propre composant de thème autour de celui-ci et n’utiliser le mien qu’à titre d’exemple ou d’inspiration.

Depuis que j’utilise cette solution – cela ne fait qu’un jour :slight_smile: – je pense déjà que je pourrais ajouter quelques graphiques de l’explorateur de données pour visualiser la progression globale des étudiants dans les cours, puis ajouter des personnalisations par-dessus. Je pourrais intégrer cela au plugin une fois que je l’aurai utilisé dans la vraie vie pendant un certain temps.

1 « J'aime »

Vous pouvez modifier l’horodatage du sujet dans l’interface utilisateur si vous êtes administrateur.
Cela se trouve dans le menu Actions du sujet.
Malheureusement, cela ne fonctionne que pour un sujet et ne peut pas être fait pour un message individuel.

1 « J'aime »