AML/CFT training and testing in the portal with anti-cheating protection
The mandatory AML/CFT course lived on a separate Next.js site running in development mode, and the final tests were in Google Forms: full names were typed by hand (anyone could take the test for a colleague), 37 of 40 questions in the main test had an "all of the above" option, and the self-check in places taught the wrong thing.
There was no access to the old site's server — only an archive. The boxed portal's stock learning module is built on old classes without ORM, so it could not simply be configured.
- Course content restored from the old site's archive via sourcemaps; self-check errors fixed, explanations rewritten
- A custom D7 ORM module (8 tables): courses, lessons, self-checks, final tests, attempts and employee results
- Attempts, time limit and question order are handled by the server: shuffling is fixed at start, an answer after the deadline is rejected, the employee is taken from the portal session
- Anti-cheating: copying and printing blocked, the question blurs when the window loses focus, a watermark with the full name and a violation counter per attempt
- A Vue course editor for a group of editors; the course is stored in git as a package and installed by an importer
The first course has been migrated — 7 modules with self-checks and three final tests; the launch for employees is set for September 2026, once the compliance team has verified the answer key.
Related services and solutions
Bitrix24 D7: boxed development and stabilization
I work not only with interface settings, but at the level of the box, the code and internal APIs.
Business process automation
When employees transfer data manually, reconcile spreadsheets, lose requests or repeat the same actions — I turn the routine into code.