Discourse as an LMS / Discourse integration with an LMS

Конечно, спасибо за ваш интерес.

У нас уже есть сообщество, в котором встречаются молодые люди университетского возраста, желающие совершенствоваться. Здесь мы в основном проводим модули по науке и философии, еженедельные встречи и поощряем участников к выступлениям. Я также создал форум для этого сообщества, чтобы люди могли вести более комфортные и долгосрочные обсуждения и беседы. В настоящее время форум доступен только участникам сообщества, но в будущем мы планируем открыть его для всего интернета.

В настоящее время основной поток информации, такой как ежедневные чтения, детали презентаций, подробности встреч и т. д., осуществляется через WhatsApp. Уровень использования форума участниками всё ещё низок. Мы хотим как наладить более функциональную работу, так и повысить активность участников на форуме, перенеся туда то, что мы делаем в WhatsApp.

  1. Есть ли способ отправлять уведомления людям при использовании Progressive Web App на мобильных телефонах?
  2. Можем ли мы создать систему, в которой можно будет проверять, выполнили ли участники свои ежедневные чтения, и поощрять их или напоминать им? (Я спрашивал об этом ChatGPT, он сказал, что это можно сделать, создав новый сценарий с помощью плагина автоматизации Discourse, но опции создания нового сценария нет)
  3. Можем ли мы создать систему сертификации, в которой мы будем выдавать дипломы участникам на основе их посещаемости еженедельных встреч в модулях?

Это функции, которые я искал в течение нескольких дней. Если у вас есть идеи для функций, которые, по вашему мнению, были бы полезны в подобной системе, я открыт к предложениям.

2 лайка

Для заданий я использовал систему значков. Студенты создавали тему с тегом для задания, и если я ставил ей :heart:, они получали значок (с использованием SQL для значков). Я написал скрипт, который читал CSV-файл из LMS школы, обновлял его, чтобы его можно было снова загрузить в школьную LMS.

6 лайков

Да, безусловно, за PWA.

Можете уточнить? Вы пробовали добавить новую автоматизацию через панель администратора?

И, как говорит Джей, бейджи — хороший способ это сделать.

3 лайка

Я только что ещё раз посмотрел, мне нужно включить уведомления в настройках Discourse. Спасибо.

ChatGPT немного ввёл меня в заблуждение, теперь я понял, но метод, который он мне предложил, похоже, не работает.

Спасибо за ответ.

Как я уже сказал, могу ли я создать систему, где я буду вознаграждать пользователей, оставляющих эмодзи на своих постах о ежедневном чтении, просто используя BadgeSQL? Стоит ли мне делать это, выдавая им значки? Требует ли система лидербордов больших усилий? И если вы сможете предоставить руководство или отправную точку для BadgeSQL, я буду очень благодарен.

1 лайк

Да.

Плагин лидерборда ещё не существовал, когда я это делал, и я мало что (или вообще ничего) с ним не делал.

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

Если идея со значками вам подходит, то хорошим решением будет плагин (или, возможно, что-то, что вызывает API?), который автоматизирует создание значка с соответствующим SQL-запросом.

Если это ежедневное действие, то можно придумать способ, чтобы SQL-запрос для значка выдавал значок за вчерашний день; или просто использовать один значок, который можно выдавать несколько раз, и начислять его каждый день, когда пользователь размещает эмодзи.

2 лайка

Как и многие из вас в этой ветке, я искал лёгкий способ использовать 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-плагина для бэкенда
Добавьте это в ваш app.yml ниже docker_manager и пересоберите контейнер. Это обеспечит сверхбыструю конечную точку 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: Установка компонента темы для интерфейса
Установите его напрямую через веб-браузер в разделе Администрирование > Настройка > Темы > Установка > Из репозитория Git.
:hammer_and_wrench: Ссылка на репозиторий: https://github.com/zsviczian/discourse-course-progress-theme

Надеюсь, это поможет другим, кто пытается создавать курсы, управляемые сообществом, без раздувания отдельной LMS-платформой! Дайте знать, если в итоге вы решите его использовать.

3 лайка

Была ли причина, по которой вы не включили код компонента темы фронтенда в плагин, а оставили два отдельных?

Но я быстро взглянул на ваш код, и оказалось, что реализовать это гораздо проще, чем я думал. Отлично!

2 лайка

Я подумал, что людям может понадобиться другой внешний вид для отслеживания курсов, и не хотел навязывать свои предпочтения другим.

Компонент темы включает цвета, значки и другие детали, которые подходят именно мне, но не обязательно другим.

Плагин реализует небольшую недостающую функцию в документации Discourse. Вы можете создать свой собственный компонент темы на его основе, используя мой лишь как пример или источник вдохновения.

Поскольку я использую это решение всего один день, я уже думаю о том, чтобы добавить несколько графиков из Data Explorer для отслеживания общего прогресса студентов по курсам, а затем внедрить дополнительные настройки. Возможно, я добавлю это в плагин, когда поработаю с ним в реальных условиях некоторое время.

1 лайк

Вы можете изменить временную метку темы в интерфейсе, если вы администратор. Эта опция находится в меню «Действия с темой».
К сожалению, это работает только для темы в целом и не может быть применено к отдельному сообщению.

1 лайк