Интерактивный онлайн-курс "Цифровой МИЭМ" (интерактивные уроки (грейдеры) [далее — интерактивные уроки].
Ожидаемая дата окончания работ: май 2021 г. При необходимости проект может быть продлён.
Интерактивные уроки предназначены для ознакомления студентов и преподавателей МИЭМ НИУ ВШЭ с цифровыми сервисами МИЭМ в автоматизированном режиме. Ознакомление производится при помощи заданий, которые предлагается выполнить непосредственно на изучаемой платформе.
В рамках проекта автоматизируются следующие процессы:
Интерактивные уроки создаются с целями:
В системе выделяются следующие функциональные подсистемы:
Основная подсистема, которая:
Подсистема хранения данных может как входить в состав основной подсистемы, так и быть вынесена в отдельную подсистему.
Подсистема:
stop
или restart
);Подсистема выполняет автоматизированные операции по обслуживанию системы. В их числе:
Вспомогательная подсистема использует веб-сервер Nginx для проксирования запросов к основной подсистеме, а также для обеспечивания защищённого SSL-соединения.
Вспомогательная подсистема используется для получения и обновления ключа и сертификата веб-сервера.
В качестве протокола взаимодействия между подсистемами на транспортно-сетевом уровне используется протокол TCP/IP, на прикладном уровне — протокол HTTP.
Доступ пользователей и администраторов к системе осуществляется посредством протокола HTTPS, текстовым общением с чат-ботом в Zulip и действиями на платформах, для администраторов также используется протокол SSH.
Система плотно взаимодействует с внешними сервисами (Google Drive, Spreadsheets, Classroom; Zulip, Taiga, Trello, GitLab).
Система должна функционировать в рабочем режиме круглосуточно. Допускаются перерывы в работе на время проведения технического обслуживания (обновление системы, устранение неисправностей).
Для диагностирования системы используется анализ логов и состояния базы данных по алгоритму, описанному в инструкции к системе.
Для оперативного устранения неисправностей и обслуживания системы требуется администратор, обладающий навыками работы с SSH, командной строкой Linux, Docker, python.
Обеспечение приспособляемости системы должно выполняться за счет:
Система должна выполнять следующие задачи:
Система должна обеспечивать реализацию следующих функций:
Информация о пользователях системы, об их прогрессе и созданном окружении хранится в реляционной базе данных, реализация — SQLite или MySQL. Управление базой данных осуществляется с помощью библиотеки SQLAlchemy.
Информация о сценарии уроков, комментарии и прочие сообщения, предназначенные для пользователя, хранятся в таблице Google Spreadsheets.
Логи хранятся в простом текстовом файле в кодировке UTF-8.
Для реализации системы применяется язык программирования Python 3. Для файлов конфигурации применяется язык описания данных YAML. Для скриптов применяется язык команд Bash.
Для пользователя предоставляется веб-интерфейс и интерфейс внешних платформ.
Для функционирования системы требуется сервер со следующими характеристиками:
Работы по созданию системы выполняются поэтапно:
Этап и сроки | Состав и содеражание работ |
---|---|
3 цикл (02.11-29.11) |
|
4 цикл (30.11-27.12) |
|
5 цикл (11.01-07.02) |
|
6-7 циклы |
|
Создание системы контролируется и принимается руководителем проекта в конце каждого проектного цикла, а также соответствующей комиссией Проектного офиса МИЭМ НИУ ВШЭ согласно Правилам подготовки и защиты проекта для студентов МИЭМ НИУ ВШЭ после окончания разработки.
Ввод в эксплуатацию производится постепенно, в соответствии с этапами разработки.
Система запускается внутри Docker контейнеров на выделенном сервере. Производится настройка файла конфигурации, интеграция с внешними системами (Zulip, Google Cloud Platform, Spreadsheets, Classroom). В используемых курсах Classroom публикуются ссылки на интерактивные уроки.