Использование Discourse для курсов в университетской программе

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

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

  1. Будет много курсов (десятки, возможно, сотни)
  2. Настройка курсов будет происходить периодически, крупными партиями, в начале каждого семестра (2–4 раза в год)
  3. У курсов будет срок окончания
  4. Люди, управляющие курсами, должны иметь возможность настраивать их самостоятельно
  5. Люди, управляющие курсами, будут иметь ограниченный или нулевой опыт управления сайтом Discourse.
  6. Люди, управляющие курсами, действительно нуждаются только в просмотре своих собственных. Они могут иногда просматривать другие в качестве примеров, но не нуждаются в постоянном участии в них.
  7. ^ То же самое для студентов курсов
  8. Существует очень небольшая команда, управляющая системой в целом
  9. Курсам на самом деле не нужны подкатегории; использования тегов для организации контента внутри курсов будет достаточно

Если эти предположения близки к истине, вот что я предлагаю, сначала на высоком уровне:

  1. Создать небольшое количество категорий верхнего уровня: одну для «Текущих курсов», одну для «Прошедших курсов», одну для «Предстоящих курсов» и одну или несколько для общих вопросов, касающихся всей системы (например, как пользоваться сайтом)
  2. Установить стиль главной страницы как «блоки с категориями», чтобы они были хорошо заметны
  3. Использовать подкатегории для каждого курса
  4. Создавать их в «Предстоящих курсах»
  5. Перемещать их в «Текущие курсы» в начале семестра
  6. Когда курс завершается, перемещать его из «Текущих курсов» в «Прошедшие курсы»
  7. Контролировать доступ к курсам с помощью групп (более подробно ниже)

Контроль доступа:

  1. Для каждого курса создать набор следующих групп, например: foo_interested, foo_enrolled, foo_admin
  2. Создать две дополнительные группы: «browse_courses» и «browse_past_courses»
  3. Настроить категории в «Предстоящих курсах» и «Текущих курсах» так, чтобы они были доступны только людям из групп для конкретного курса и людям из группы «browse_courses».
  4. Настроить категории в «Прошедших курсах» так, чтобы они были доступны только людям из групп для конкретного курса и людям из группы «browse_past_courses».

Пользовательский опыт для групп и курсов

  1. Закрепить тему в категории верхнего уровня для «Предстоящих курсов», объясняющую, как просматривать курсы, с простым способом присоединения к группе «browse_courses».
  2. ^ То же самое для «Текущих курсов»
  3. ^ То же самое для «Прошедших курсов»

Для отдельных курсов закрепить тему в категории, объясняющую, как присоединиться к курсу:

  1. Присоединиться к группе «foo_interested» и/или «foo_enrolled»
  2. Добавить курс в боковую панель

Администрирование будет немного трудоемким вначале, так как для каждого нового курса кому-то с соответствующими привилегиями потребуется:

  1. Создать категорию
  2. Создать группы
  3. Создать закрепленную тему
  4. Добавить людей в группу _admins
  5. Предоставить им документацию, необходимую для управления своим курсом

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

Масштабирование категорий может стать проблемой. У Discourse есть некоторые проблемы с производительностью и пользовательским опытом, когда количество категорий становится слишком большим (сотни или тысячи). Пользователи с доступом к большему количеству категорий почувствуют это влияние, тогда как те, у кого доступ ограничен, — нет. Это одна из причин ограничения доступа к категориям, как я описал выше.

Очень интересно услышать любые и все отзывы или вопросы, которые у вас есть по вышеизложенному.

1 лайк