Преподаватели ВШЭ активно переходят на использование Smart LMS вместо уже привычного для "эпохи ковида" Google Classroom. Собственная система, конечно, хорошо, но не всегда удобно и практично. Для нас, студентов, Google Classroom удобен тем, что присылает уведомления о выложенных лекциях, новых домашних заданиях, начавшихся тестах. Smart LMS таких функций не предоставляет, и, чтобы узнать что-то, придётся зайти на сайт и посмотреть.
В цифровой среде МИЭМ используется мессенджер Zulip для общения по учебным и рабочим вопросам между студентами и преподавателями. Он может быть использован в качесте платформы для повышения практичности Smart LMS для студентов МИЭМ за счёт введения функционала уведомлений, но главной целью будет повышение активности использования самого Zulip миэмовцами.
Решение поставленной проблемы можно разделить на несколько шагов:
Вышкинская образовательная система Smart LMS основана на системе управления обучением Moodle. Изучив документацию Moodle API и различные плагины, я нашёл возможность для реализации задуманного.
Плагин Event Trigger отслеживает события в Moodle и может отправить http-запрос или email с этим событием. Это написано на странице плагина:
«This plugin plugin allows site administrators to trigger external actions such as an http request or email when certain events happen in Moodle. Filters can be added to check if the event meets certain conditions and actions(email/http post) can include information contained within the Moodle event. Lookups can also be added to the workflow to allow information not contained within the Moodle event to be exposed to the external action»
Ссылка на источник: https://moodle.org/plugins/tool_trigger
Плагин будет посылать данные о событии http-запросом, который будет принимать приложение для дальнейшей обработки и отправки пользователю.
Взаимодействие с пользователем будет реализовано в виде Zulip-бота.
Ссылка на документацию: https://zulip.com/api/running-bots
Функционал взаимодействия с пользователем будет отделен от обработки и получения данных, что позволит разделить логику и реализовывать написание кода параллельно.
Для обработки событий нужно понимать, как они устроены. Для этого нужно обратиться в документацию Moodle API: https://docs.moodle.org/dev/Events_API
В документации можно найти структуру данных события, что и нужно для понимания деталей обработки.
У событий есть уровни. Для приложения будут интересны события уровня 1 и 2. Вот что о них сказано в документации:
Teaching (LEVEL_TEACHING: 1)
Any event/action that is performed by someone (typically a teacher) and has a teaching value (anything that is effecting the learning experience/environment of the students). This should not be combined with "Participating" events.
Valid events:
- A teacher grading a student
- A teacher modifying the course settings
- A teacher adding a new section to the course page
- A teacher modifying a module settings
- A teacher adding a page to course
- A teacher leaving a feedback
INVALID events:- A teacher posting in a forum (it might affect the learning experience, >but not necessarily, so the teacher is just participating)
Participating (LEVEL_PARTICIPATING: 2)
Any event/action that is performed by a user, that is related (or could >be related) to his learning experience.
Valid events:- A user posting to a forum
- A user submitting an assignment
- A user blogging
- A user reading someone's blog
- A user posting a comment
- A user chatting on a chat activity
- A user viewing the course page
- A user deletes a blog post
INVALID events:- A user updating his profile
- A user visiting someone's profile
- A user viewing his /my/ page
- A user sending a message to another one
Other (LEVEL_OTHER: 0)
Any other action, whether they шare related to the site administration, >or are specific to user. They do not have any educational value.
Общая схема взаимодействия:
Реализовать в ближайшее время не смогу, но в новом году можно сделать мини-проект по этой теме. Хотелось бы попробовать себя в качестве руководителя. Для реализации нужен один или два Python-разработчика.