Системы управления обучением, такие как Canvas, Moodle и Blackboard, — это то, где школы и корпоративные команды обучения ведут повседневную работу. Чтобы сделать оценки Testlify пригодными к использованию внутри этих систем, нам был нужен безопасный, соответствующий стандартам мост. Я построил плагин Testlify LTI как единственный full-stack-инженер — он позволяет преподавателям назначать созданные в Testlify оценки кандидатам, записанным на курс, и отслеживать их баллы, всё прямо внутри LMS.

Интеграция официально сертифицирована 1EdTech для LTI Advantage (v1.3) — Names and Role Provisioning Services 2.0 и Assignment & Grade Services 2.0. Тесты на соответствие проводит 1EdTech, так что это не заявленные самостоятельно утверждения: независимый орган проверил, что реализация следует спецификации.
Что я сделал
- Собственная реализация LTI 1.3: вместо того чтобы опираться на тяжёлую стороннюю LTI-библиотеку, я реализовал спецификацию напрямую в Next.js 14 — обмен OpenID Connect, проверку подписи JWT и эндпоинты открытых ключей JWKS, которые устанавливают доверие между LMS и Testlify.
- Поток «назначить и отслеживать»: построил слой API за всем рабочим процессом — Deep Linking, чтобы преподаватель выбрал оценку Testlify и добавил её на курс как задание, Names and Role Provisioning Services (NRPS), чтобы подтянуть кандидатов, записанных на этот курс, и Assignment & Grade Services (AGS), чтобы вернуть балл каждого кандидата в журнал оценок LMS, так что преподаватели видят результаты там, где уже работают.
- Full-stack-система: объединил мультитенантную маршрутизацию API с дашбордом на React 18 в одном приложении, спроектировал схемы MongoDB для конфигурации по каждой платформе и использовал Docker, чтобы моделировать изолированные среды LMS для локального тестирования.
Почему это было важно
Соответствующая стандартам интеграция LTI открыла Testlify рынки высшего образования и корпоративного обучения — а построенный мной плагин затем прошёл тестирование на соответствие 1EdTech и получил сертификацию. Преподаватели могли назначать оценки целому курсу и автоматически получать баллы в журнал оценок — без выгрузки списков и копирования результатов вручную, — а именно такое трение обычно тормозит внедрение в LMS.