Перейти к содержимому
N1
CRM / Bitrix24 · обучение · комплаенс · тестирование

Обучение и тестирование по ПОД/ФТ в портале с защитой от списывания

Клиент: Страховая компания, NDA Категория: CRM / Bitrix24 Стек: PHP 8.4, Bitrix24 D7 (ORM), MySQL, Vue, PHPUnit Срок: несколько дней до пробного запуска
Проблема

Обязательный курс по ПОД/ФТ жил отдельным сайтом на Next.js, запущенным в режиме разработчика, а итоговые тесты — в Google Формах: ФИО вводили руками (сдать можно за коллегу), в 37 из 40 вопросов основного теста был вариант «все ответы верны», а самопроверка местами учила неверному.

Ограничения

Доступа к серверу прежнего сайта не было — только архив. Штатный модуль обучения коробки построен на старых классах без ORM, поэтому его нельзя было просто настроить.

Что сделал
  • Контент курса восстановлен из архива прежнего сайта через sourcemap; ошибки самопроверки исправлены, пояснения переписаны
  • Свой модуль на ORM D7 (8 таблиц): курсы, уроки, самопроверка, итоговые тесты, попытки и результаты сотрудника
  • Попытки, лимит времени и порядок вопросов считает сервер: перемешивание фиксируется при старте, ответ после срока не принимается, сотрудник берётся из сессии портала
  • Защита от списывания: запрет копирования и печати, размытие вопроса при уходе из окна, водяной знак с ФИО и счётчик нарушений в попытке
  • Редактор курсов на Vue для группы редакторов; курс хранится в git пакетом и ставится импортёром
Архитектура
Пакет курса в git → Импортёр → Модуль на ORM D7 → Попытки и таймер на сервере → Vue: уроки, тест, редактор
Результат

Первый курс перенесён — 7 модулей с самопроверкой и три итоговых теста; запуск для сотрудников — в сентябре 2026, после сверки ключа ответов службой комплаенс.

Что можно переиспользовать
Модуль тестирования с серверным таймером и защитой от списывания Хранение курса пакетом в git с импортёром Редактор курсов на Vue