Discourse as an LMS / Discourse integration with an LMS

このスレッドの多くの方と同様に、Discourse をネイティブの LMS として軽量に利用する方法を探していました。専用 LMS プラットフォームは機能過多すぎると感じていましたが、Discourse のデフォルトの「通知の減衰」(古いトピックが新規ユーザーに対して「未読」として表示されなくなる仕組み)のため、学習の進捗を追跡するのが難しいのです。

自分の課題を解決するために、カテゴリ設定、小さなバックエンドプラグイン、そしてテーマコンポーネントを組み合わせたシンプルなソリューションを構築しました。

以下に、私の設定方法と、それを再現するためのオープンソースコードを紹介します!

基本概念:Discourse を LMS として活用

これを機能させるために、標準的な Discourse の機能と、公式の Discourse Doc Categories プラグイン を組み合わせています。

  • コース = カテゴリ: 各コースに独自のカテゴリを割り当てます。
  • レッスン = トピック: 各レッスンは、そのカテゴリ内のトピックとなります。
  • 権限: メンバーはレッスンへの返信(質問など)はできますが、新しいトピックを作成できるのはスタッフのみです。
  • 順序付け: レッスンの順序は作成日で固定されます。(ヒント:レッスンを投稿する際に少し先を見据える必要があります。あるいは、Rails コンソールを使ってトピックの作成時間を遡らせて、正しい順序に強制することもできます)。
  • シラバス: 「インデックストピック」を指定するために Discourse Doc Categories プラグインを使用します。このインデックストピックはコースのシラバス/進捗トラッカーとして機能し、ユーザーがコースにアクセスした際にサイドバーに美しい目次を表示します。

不足している要素:真の進捗追跡

上記の設定の問題点は、新しい学生が参加した際、古いレッスントピックが「未読」として表示されないため、視覚的に進捗を追跡する方法がないことです。

これを解決するために、真の過去の既読ステータスを取得するために TopicUser データベーステーブルを直接クエリするバックエンドプラグインと、Discourse の標準サイドバーをリアルタイムの LMS 進捗トラッカーに変換するフロントエンドのテーマコンポーネントを構築しました。

1. メインサイドバーの進捗バッジ

このテーマコンポーネントは、標準的な青い通知ドットを、コースカテゴリ向けの [ 既読 / 総数 ] という進捗インジケーターに置き換えます。

2. レッスンの完了チェックマーク

ユーザーがコースをクリックすると、Docs プラグインがシラバスを表示します。私のテーマコンポーネントは、ユーザーが読み終えた特定のレッスンの隣に、成功を示すチェックマーク(fa-check)を挿入します。

3. コースの完了

ユーザーがカテゴリ内のすべてのトピックを読み終えると、サイドバーの進捗バッジが自動的に、満足感のある完了マーク(チェック)に変わります!

インストール方法

これは標準的な Discourse の通知キャッシュをバイパスする必要があるため、バックエンドプラグインとフロントエンドのテーマコンポーネントの両方をインストールする必要があります

ステップ 1:前提条件のインストール
公式の Discourse Doc Categories プラグインがインストールされ、有効になっていることを確認してください。私のプラグインは、インデックストピックが設定されているカテゴリのみを対象としています。

ステップ 2:バックエンド API プラグインのインストール
docker_manager の下に app.yml に以下を追加し、コンテナを再構築してください。これにより、既読ステータスのための超高速 API エンドポイントが提供されます。
:hammer_and_wrench: リポジトリリンク: 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

ステップ 3:UI テーマコンポーネントのインストール
Web ブラウザから直接 管理 > カスタマイズ > テーマ > インストール > Git リポジトリから でインストールしてください。
:hammer_and_wrench: リポジトリリンク: https://github.com/zsviczian/discourse-course-progress-theme

これが、別個の LMS プラットフォームの機能過多なしに、コミュニティ主導のコースを構築しようとしている他の方々の役に立てば幸いです!実際に利用された場合は、お知らせください。

「いいね!」 3