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

Обучение и тестване по AML в портала със защита от преписване

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

Задължителният курс по мерките срещу изпирането на пари и финансирането на тероризма (AML) живееше като отделен сайт на Next.js, пуснат в режим за разработка, а финалните тестове — в Google Forms: имената се въвеждаха ръчно (тестът можеше да се положи вместо колега), в 37 от 40 въпроса на основния тест имаше вариант „всички отговори са верни“, а самопроверката на места учеше грешно.

Ограничения

Достъп до сървъра на предишния сайт нямаше — само архив. Стандартният модул за обучение в on-premise версията е изграден върху стари класове без ORM, затова не можеше просто да бъде конфигуриран.

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

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

Какво може да се преизползва
Модул за тестване със сървърен таймер и защита от преписване Съхраняване на курса като пакет в git с импортер Редактор на курсове на Vue