1.1 Наименование программного обеспечения
Полное наименование программного обеспечения — «Индивидуальная образовательная траектория для образовательной платформы» (далее — Программа, ИОТ). Сокращённое наименование, применяемое в технической документации, — U1 ИОТ. Альтернативные наименования отсутствуют.
1.2 Назначение программного обеспечения
Программа предназначена для персонализации образовательного пути клиента на образовательной платформе в зависимости от его цели обучения, текущего уровня подготовки и динамики освоения учебного материала. Программа обеспечивает формирование, выдачу и редактирование индивидуального учебного маршрута клиента по учебному предмету, а также обмен сведениями о состоянии маршрута с интегрируемыми образовательными платформами. Программа применяется совместно с онлайн-платформами, обеспечивающими взаимодействие клиента и репетитора, проведение занятий, изучение теоретических материалов и контроль прогресса клиента. Сценарии взаимодействия пользователей с платформой находятся вне зоны ответственности Программы: Программа получает от платформы события и данные, необходимые для построения траекторий, и возвращает результаты своей работы.
1.3 Цели разработки программного обеспечения
Целями разработки Программы являются:
– удовлетворение индивидуальных потребностей обучающихся в интеллектуальном, нравственном и художественно-эстетическом развитии;
– выявление, развитие и поддержка обучающихся, проявивших выдающиеся способности;
– удовлетворение иных образовательных потребностей и интересов обучающихся, не противоречащих законодательству Российской Федерации, осуществляемое за пределами федеральных государственных образовательных стандартов и федеральных государственных требований;
– повышение качества освоения образовательных программ (полностью либо частично) с применением дистанционных образовательных технологий с учётом баланса времени труда и отдыха обучающихся;
– повышение уровня контроля за своевременностью и полнотой освоения образовательных программ обучающимися.
Соответствие функциональных возможностей Программы указанным целям приведено в таблице 1.
1.4 Состав программного обеспечения
В состав Программы входят следующие программные компоненты:
– iot-service — серверный компонент, реализующий бизнес-логику формирования и ведения образовательных траекторий, обработку входящих событий расписания, публикацию исходящих доменных событий и программные интерфейсы для клиентского компонента и внешних систем;
– модули ИОТ веб-приложения platform-one — клиентский компонент, реализующий пользовательские интерфейсы репетитора и методиста.
Компоненты образовательной платформы, не входящие в состав Программы, но обменивающиеся с ней данными, приведены в разделе 6 настоящего документа.
1.5 Целевая аудитория
Пользователями Программы являются:
– репетитор — просматривает и редактирует маршрут закреплённого за ним клиента, управляет составом теоретических видеолекций в теме, ведёт заметку целеполагания;
– методист — создаёт и редактирует шаблонные траектории и темы, выполняет импорт методических данных;
– менеджер — просматривает методическую базу и выполняет импорт данных в объёме предоставленных прав;
– администратор платформы — управляет параметрами поэтапного включения функциональности и правами пользователей.
Клиент (обучающийся) не является пользователем интерфейсов Программы: результаты работы Программы предоставляются клиенту через контентную часть образовательной платформы в виде открытых тем с относящимися к ним теоретическими видеолекциями.
1.6 Термины, определения и сокращения
В настоящем документе применяются термины и сокращения, приведённые в таблице 2.
2.1 Общий перечень функций
Перечень функций Программы и их назначение приведены в таблице 3. Подробное описание каждой функции приведено в подразделах 2.2–2.10.
2.2 Ведение методической базы
Программа обеспечивает ведение шаблонных траекторий и тем, используемых при автоматическом подборе маршрута клиента. Реализованы следующие операции:
– создание, просмотр, изменение и удаление шаблонной траектории с указанием наименования, предмета, класса, цели обучения, даты старта, интенсивности занятий и длительности обучения;
– поиск шаблонных траекторий с постраничным выводом результатов и фильтрацией;
– создание, просмотр, изменение и удаление темы с указанием наименования, предмета, класса и уровня темы;
– включение тем в состав шаблонной траектории с указанием порядкового номера темы;
– связывание темы с одной или несколькими ТВЛ контентной части платформы.
Длительность обучения задаётся значениями 3, 6, 9 или 12 месяцев, интенсивность занятий — от 1 до 7 занятий в неделю. Значения справочников доступны пользовательскому интерфейсу через отдельные методы программного интерфейса.
Значение функции: методическая база формируется однократно и применяется ко всем клиентам, что обеспечивает единство программы обучения и снижает трудоёмкость сопровождения.
2.3 Формирование индивидуального маршрута клиента
При поступлении сведений о приобретённом пакете занятий и цели обучения Программа выполняет подбор подходящей шаблонной траектории и создаёт на её основе маршрут клиента. Маршрут содержит:
– связь с клиентом, предметом и классом обучения;
– упорядоченный состав тем с указанием порядкового номера и состояния каждой темы;
– состав ТВЛ по каждой теме;
– связь с позициями заказа (приобретёнными пакетами занятий);
– связь с репетиторами и признак права редактирования маршрута;
– признак включения самостоятельного режима сборки.
Тема маршрута может находиться в одном из состояний: доступна для выдачи, недоступна, назначена клиенту. Состояние определяется правилами выдачи и объёмом приобретённого пакета занятий.
При приобретении дополнительного пакета занятий выполняется продление действующего маршрута: новые позиции заказа связываются с существующим маршрутом, а состав тем пополняется. Продление возможно в течение установленного периода, отсчитываемого от даты последнего проведённого практического занятия в рамках маршрута.
При длительном перерыве в занятиях выполняется актуализация маршрута: в базовом режиме состав невыданных тем пересобирается автоматически, в самостоятельном режиме формируется запрос на ручную актуализацию репетитору.
Значение функции: программа обучения формируется автоматически в момент покупки, что исключает задержку начала обучения и ручные операции со стороны сотрудников.
2.4 Выдача тем и теоретических видеолекций
Выдача учебного материала выполняется по событиям расписания занятий, поступающим от внешней системы. Программа обрабатывает события создания и изменения расписания, а также добавления и изменения занятий.
При получении события Программа:
1) определяет маршрут клиента по предмету и классу обучения;
2) проверяет допустимость обработки события для данной пары «предмет — класс» согласно параметрам поэтапного включения функциональности;
3) определяет очередную тему, подлежащую выдаче, и переводит её в состояние «назначена»;
4) формирует исходящее событие о следующих шагах обучения.
Открытие клиенту темы с относящимися к ней теоретическими видеолекциями выполняется контентной частью платформы на основании опубликованных событий Программы. Учитываются подарочные и заменённые ТВЛ: тема открывается в фактическом составе видеолекций на момент выдачи. События, обработка которых невозможна, помещаются в отдельное хранилище необрабатываемых сообщений и не блокируют обработку последующих событий.
Значение функции: клиент получает учебный материал синхронно с фактическим темпом занятий, без ручного открытия тем сотрудниками платформы.
2.5 Просмотр и редактирование маршрута репетитором
Репетитору предоставляется страница учебного маршрута клиента, содержащая:
– информационный блок клиента: предмет, класс, количество выданных тем и доля просмотренного материала;
– перечень тем с указанием порядкового номера, состояния, класса, даты и прогресса просмотра ТВЛ;
– признаки темы: наличие подарочных ТВЛ, добавление темы другим репетитором;
– фильтрацию тем по классу, месяцу и признаку просмотренности, поиск по наименованию темы, скрытие выданных тем;
– заметку целеполагания по маршруту.
В режиме редактирования маршрута репетитор может изменять порядок невыданных тем перетаскиванием или командами перемещения в начало и в конец перечня, а также добавлять темы из методической базы с указанием позиции вставки. Изменения применяются после явного сохранения; при попытке покинуть страницу с несохранёнными изменениями выводится запрос подтверждения.
Изменение порядка и состава ранее выданных тем не допускается — редактированию подлежит только невыданная часть маршрута.
Значение функции: репетитор адаптирует программу под конкретного клиента без обращения к методистам и технической поддержке.
2.6 Самостоятельная сборка маршрута
Самостоятельный режим предназначен для случаев, когда автоматически подобранная последовательность тем не соответствует потребностям клиента.
Порядок включения режима:
1) репетитор включает переключатель самостоятельной сборки и подтверждает правила работы в режиме;
2) формирует невыданную часть маршрута, добавляя темы сверх уже выданных;
3) сохраняет изменения; включение режима фиксируется только совместно с сохранением состава маршрута.
При сохранении выполняется проверка минимального объёма маршрута: количество тем в маршруте должно быть не менее количества уже назначенных тем плюс четыре невыданные темы. До момента сохранения включение режима считается незавершённым и при уходе со страницы отменяется.
В самостоятельном режиме дополнительно доступны удаление невыданных тем из маршрута. При выключении режима невыданная часть маршрута заполняется автоматически из шаблонной траектории.
Значение функции: сохраняется методическая гибкость при работе со сложными случаями без отказа от автоматического подбора для остальных клиентов.
2.7 Управление составом ТВЛ в теме
На странице темы маршрута репетитору доступны следующие операции:
– добавление подарочной ТВЛ — поиск видеолекции в контентной части платформы и включение её в состав темы;
– замена ТВЛ — подбор другой видеолекции с обязательным указанием причины замены; при выборе причины «Другое» указывается комментарий длиной от 10 до 500 символов;
– удаление подарочной ТВЛ из состава темы.
Предусмотрены следующие причины замены ТВЛ: тема раскрыта не полностью; материал не подходит по уровню клиента; не подходит качество объяснения; не подходит формат материала; недостаточно практики или примеров; материал дублирует уже изученное; другое.
Удаление допускается только для подарочных и непросмотренных клиентом видеолекций. Замена и удаление просмотренных клиентом ТВЛ не допускаются.
Значение функции: состав учебного материала уточняется на уровне отдельной темы, а сведения о причинах замены накапливаются и используются для улучшения методической базы.
2.8 Ведение заметки целеполагания
По каждому маршруту клиента ведётся одна заметка целеполагания. Заметка создаётся и изменяется репетитором в модальном окне страницы маршрута. Текст заметки не должен быть пустым, не должен превышать 120 символов и не должен содержать ссылки. Дата и время последнего изменения заметки отображаются пользователю.
Значение функции: краткая фиксация цели работы с клиентом обеспечивает преемственность при передаче клиента другому репетитору и при возвращении к работе после перерыва.
2.9 Контроль состояния маршрута и уведомления
Программа контролирует состояние маршрутов клиентов и формирует уведомления в следующих случаях:
– недостаточный запас невыданных тем в маршруте, сформированном в самостоятельном режиме;
– автоматическое пополнение маршрута темами из шаблонной траектории;
– длительный перерыв в занятиях клиента — с автоматической актуализацией маршрута в базовом режиме или запросом ручной актуализации в самостоятельном режиме;
– невозможность автоматического подбора тем для пополнения маршрута.
Уведомления передаются во внешние каналы доставки посредством исходящих событий и служебных вызовов. Состав уведомлений определяется настройками платформы.
Значение функции: ситуации, приводящие к остановке обучения, выявляются до того, как клиент остаётся без учебного материала.
2.10 Административные функции
К административным функциям Программы относятся:
– импорт шаблонных траекторий из файлов формата CSV;
– импорт тем и их связей с ТВЛ из файлов формата CSV;
– управление поэтапным включением обработки событий расписания по парам «предмет — класс»;
– проверка включения функциональности для заданной пары «предмет — класс»;
– контроль работоспособности Программы через служебные программные интерфейсы, просмотр журналов работы и метрик.
Значение функции: массовая загрузка методических данных выполняется без ручного ввода, а ввод функциональности в эксплуатацию выполняется управляемо, ограниченными группами клиентов.
3.1 Перечень ролей пользователей
В Программе применяется ролевая модель разграничения доступа. Сведения о пользователе и его роли передаются в Программу в составе маркера доступа, выдаваемого системой аутентификации образовательной платформы. Предусмотрены следующие роли:
– репетитор — работа с маршрутами закреплённых клиентов;
– методист — ведение методической базы;
– менеджер — просмотр методической базы и импорт данных;
– служебная роль внешней системы — вызов методов служебного программного интерфейса контентной частью платформы и сервисом расписания.
3.2 Права доступа
Соответствие ролей и функций Программы приведено в таблице 4.
3.3 Ограничения прав доступа
Помимо ролевой модели применяются следующие ограничения:
– репетитору доступны только маршруты клиентов, закреплённых за ним в образовательной платформе;
– редактирование маршрута допускается только при наличии у репетитора признака права редактирования в связи «маршрут — репетитор»; при отсутствии признака маршрут доступен только для просмотра;
– при разовой замене репетитора возможность работы в самостоятельном режиме может быть ограничена;
– методы служебного программного интерфейса доступны только соответствующей внешней системе;
– запросы без действительного маркера доступа отклоняются.
4.1 Формирование маршрута после приобретения пакета занятий
Участники: клиент, Программа, внешние системы платформы
Условия: клиент приобрёл пакет занятий, указана цель обучения
Ожидаемый результат: создан маршрут клиента с начальным составом тем и ТВЛ
Последовательность действий:
1) Внешняя система передаёт сведения о приобретённом пакете занятий и цели обучения.
2) Программа подбирает шаблонную траекторию по предмету, классу, цели, интенсивности и длительности.
3) Программа создаёт персональный маршрут клиента на основе выбранной траектории.
4) Программа определяет первые темы, доступные для выдачи, и формирует исходящее событие о следующих шагах обучения.
5) Контентная часть платформы открывает клиенту тему с ТВЛ.
4.2 Просмотр маршрута клиента репетитором
Участники: репетитор, Программа
Условия: за репетитором закреплён клиент с активным маршрутом
Ожидаемый результат: репетитор получил сведения о составе маршрута, статусах тем, прогрессе просмотра и цели обучения
Последовательность действий:
1) Репетитор открывает карточку клиента и переходит на вкладку учебного маршрута.
2) Программа отображает информационный блок клиента и перечень тем маршрута.
3) Репетитор применяет фильтры по классу, месяцу и признаку просмотренности либо выполняет поиск по наименованию темы.
4) Репетитор открывает тему и просматривает состав ТВЛ и прогресс их просмотра клиентом.
5) При необходимости репетитор изменяет заметку целеполагания.
4.3 Редактирование маршрута в базовом режиме
Участники: репетитор, Программа
Условия: маршрут клиента активен, у репетитора имеется право редактирования
Ожидаемый результат: изменён порядок и состав невыданных тем, зафиксированы изменения состава ТВЛ
Последовательность действий:
1) Репетитор нажимает кнопку изменения маршрута.
2) Репетитор изменяет порядок невыданных тем и при необходимости добавляет темы из методической базы.
3) При работе с темой репетитор добавляет или удаляет подарочную ТВЛ либо выполняет замену ТВЛ с указанием причины.
4) Репетитор сохраняет изменения.
5) Программа проверяет корректность изменений, фиксирует новый состав маршрута и формирует исходящие события об изменениях.
4.4 Самостоятельная сборка маршрута
Участники: репетитор, Программа
Условия: маршрут клиента активен, у репетитора имеется право редактирования и не действуют ограничения на самостоятельный режим
Ожидаемый результат: маршрут переведён в самостоятельный режим, невыданная часть сформирована репетитором
Последовательность действий:
1) Репетитор включает переключатель самостоятельной сборки и подтверждает правила работы в режиме.
2) Репетитор добавляет темы, обеспечивая необходимый объём невыданной части маршрута.
3) Репетитор сохраняет изменения; Программа фиксирует включение режима и новый состав маршрута.
4) В дальнейшем репетитор изменяет порядок, добавляет и удаляет темы невыданной части.
5) При выключении режима Программа заполняет невыданную часть маршрута из шаблонной траектории.
4.5 Выдача следующей темы после практического занятия
Участники: клиент, Программа, внешние системы платформы
Условия: по маршруту клиента проведено практическое занятие
Ожидаемый результат: клиенту открыта очередная тема с относящимися к ней ТВЛ
Последовательность действий:
1) Внешняя система расписания публикует событие о проведении занятия.
2) Программа проверяет допустимость обработки события и определяет очередную тему маршрута.
3) Программа переводит тему в состояние «назначена» и формирует запись исходящего события.
4) Программа формирует исходящее событие о следующих шагах обучения.
5) При недостаточном запасе невыданных тем формируется уведомление и (или) выполняется автопополнение маршрута.
4.6 Смена репетитора
Участники: репетиторы, Программа
Условия: клиент передан от одного репетитора другому
Ожидаемый результат: маршрут и прогресс обучения сохранены, права редактирования переданы принимающему репетитору
Последовательность действий:
1) Внешняя система передаёт сведения об изменении связи «клиент — репетитор».
2) Программа сохраняет маршрут клиента и накопленный прогресс просмотра.
3) Если маршрут находился в самостоятельном режиме, он переводится в базовый режим, а невыданная часть заполняется из шаблонной траектории.
4) Признак права редактирования назначается принимающему репетитору в соответствии с правилами связи клиента и репетитора.
4.7 Ведение шаблонных траекторий методистом
Участники: методист, Программа
Условия: методисту предоставлены права ведения методической базы
Ожидаемый результат: создана или изменена шаблонная траектория, используемая при подборе маршрутов клиентов
Последовательность действий:
1) Методист открывает раздел шаблонных траекторий и выполняет поиск существующей траектории.
2) Методист создаёт новую траекторию либо открывает существующую для изменения.
3) Методист задаёт параметры траектории: предмет, класс, цель, дату старта, интенсивность и длительность обучения.
4) Методист формирует состав тем траектории и их порядок, при необходимости выполняя импорт данных из файла CSV.
5) Методист сохраняет траекторию; Программа применяет её при последующем подборе маршрутов клиентов.
5.1 Ввод данных
Ввод данных в Программу выполняется следующими способами:
– через пользовательский интерфейс — параметры шаблонных траекторий и тем, изменения состава и порядка тем маршрута, операции с ТВЛ, текст заметки целеполагания;
– посредством импорта файлов формата CSV — массовая загрузка шаблонных траекторий, тем и их связей с ТВЛ;
– посредством входящих событий шины сообщений — сведения о расписании занятий и приобретённых пакетах;
– посредством служебных вызовов внешних систем — сведения, необходимые для формирования и актуализации маршрутов;
– посредством запросов Программы к внешним системам — метаданные ТВЛ, статусы просмотра, цели обучения, справочники предметов и классов, сведения о заказах клиента.
Все входящие данные проверяются на соответствие установленным схемам и правилам. При нарушении правил операция отклоняется с указанием причины.
5.2 Обработка данных
Обработка данных включает:
– подбор шаблонной траектории по параметрам покупки и цели обучения клиента;
– формирование и пересборку состава тем маршрута с сохранением уже выданных тем;
– изменение состояний тем маршрута в соответствии с событиями расписания и объёмом приобретённого пакета;
– расчёт показателей маршрута — количества выданных тем, количества и доли просмотренных ТВЛ, признаков наличия подарочных и заменённых ТВЛ;
– проверку правил редактирования: сохранение состава и порядка выданных тем, минимальный объём невыданной части в самостоятельном режиме, отсутствие повторов тем;
– формирование записей исходящих событий в рамках той же транзакции, в которой изменяется состояние маршрута.
Изменения данных выполняются транзакционно: при ошибке на любом шаге обработки изменения не применяются частично. Удаление тем маршрута и ТВЛ выполняется логически, с сохранением сведений о моменте удаления.
5.3 Вывод данных
Вывод данных Программой выполняется в следующих формах:
– ответы программного интерфейса на запросы пользовательских интерфейсов — сведения о маршруте, темах, составе ТВЛ, заметке, справочных перечнях;
– исходящие доменные события — сведения об изменении состава маршрута, состава тем и состава ТВЛ, а также о следующих шагах обучения;
– служебные вызовы к контентной части платформы — отзыв доступа к подарочной видеолекции, исключённой из выданной темы;
– уведомления пользователям платформы о состояниях, требующих вмешательства;
– служебные сведения о состоянии Программы — результаты проверок работоспособности, метрики и записи журналов.
Сведения о пользователях, отображаемые в интерфейсах, запрашиваются во внешних системах в момент формирования ответа и в базе данных Программы не хранятся.
6.1 Поддерживаемые интерфейсы
Программа предоставляет и использует следующие интерфейсы:
– программный интерфейс REST для пользовательских интерфейсов с аутентификацией по маркеру доступа; спецификация публикуется в формате OpenAPI;
– служебный программный интерфейс REST для внешних систем платформы с аутентификацией по служебным маркерам доступа;
– интерфейс обмена сообщениями через шину событий с защитой канала — приём событий расписания и публикация доменных событий Программы;
– интерфейс импорта данных из файлов формата CSV;
– служебные интерфейсы контроля работоспособности и передачи метрик.
Интеграционный контракт Программы — состав и форматы событий, схемы данных и спецификации программных интерфейсов — документирован и входит в состав установочного пакета.
6.2 Возможности обмена данными
Состав обмена данными с внешними системами приведён в таблице 5.
Взаимодействие с интегрируемыми платформами организовано асинхронно: платформа не ожидает завершения обработки данных Программой в синхронном режиме, что исключает влияние Программы на производительность платформы.
7.1 Функциональные ограничения
Установлены следующие функциональные ограничения:
– редактированию подлежит только невыданная часть маршрута; порядок и состав ранее выданных тем не изменяются;
– в самостоятельном режиме объём маршрута должен составлять не менее количества назначенных тем плюс четыре невыданные темы;
– замена и удаление ТВЛ, просмотренных клиентом, не допускаются; удаление возможно только для подарочных видеолекций;
– при замене ТВЛ обязательно указание причины; для причины «Другое» требуется комментарий длиной от 10 до 500 символов;
– по маршруту ведётся одна заметка целеполагания длиной не более 120 символов, не содержащая ссылок;
– редактирование маршрута доступно только репетитору с правом редактирования; при разовой замене репетитора возможность работы в самостоятельном режиме может быть ограничена;
– обработка событий расписания выполняется только для пар «предмет — класс», включённых параметрами поэтапного ввода функциональности;
– продление маршрута при приобретении нового пакета возможно в течение установленного периода после последнего проведённого практического занятия;
– Программа не предоставляет интерфейсов клиенту (обучающемуся): учебный материал предоставляется через контентную часть платформы;
– Программа не осуществляет хранение и воспроизведение образовательного контента, не выполняет проверку самостоятельных работ и не обрабатывает платежи.
7.2 Технические ограничения
Установлены следующие технические ограничения:
– работа Программы возможна только при наличии подключений к базе данных, шине сообщений и внешним системам платформы; при недоступности внешних систем соответствующие операции откладываются или завершаются с ошибкой;
– приём входящих событий выполняется с подтверждением после успешной обработки; сообщения, обработка которых невозможна, помещаются в хранилище необрабатываемых сообщений и требуют разбора;
– публикация исходящих событий выполняется по расписанию с периодичностью раз в минуту пакетами объёмом до 1000 событий, вследствие чего между изменением данных и получением события внешней системой возможна задержка;
– время ожидания ответа внешних систем и количество повторных попыток запроса ограничены параметрами конфигурации;
– работа пользователей выполняется через веб-интерфейс в поддерживаемых версиях браузеров; отдельные приложения для рабочих станций и мобильных устройств не предусмотрены;
– изменение схемы данных выполняется только средствами системы миграций, что требует применения миграций при обновлении версии.