A visitor lands on a language school website, sees a course catalog, but can't quickly determine their level. The standard 50-question test takes 40 minutes — enough time for them to leave for a competitor. On the 1C-Bitrix platform, we implement an adaptive test that determines the level according to CEFR in 15 minutes and immediately shows suitable groups. According to our data, this approach increases enrollment conversion by 35% compared to standard forms. Below, we break down the architectural solutions: the CAT algorithm, a three-dimensional course catalog, and Zoom integration via REST API.
How the adaptive level test boosts conversion
The level test is a critical point in the funnel. The standard "50 questions from A1 to C2" approach takes 40 minutes and causes boredom. We implement a simplified CAT algorithm (Computerized Adaptive Testing): the test starts with 5 questions at the median B1 level, then goes up or down based on answers. On average, a student answers 20–25 questions instead of 50, and the level determination accuracy is 87% (from our measurements). This is 2x faster than the standard test.
More about the CAT algorithm
Algorithm: the server-side D7 controller (`/api/placement-test/`) processes each answer without sending correct answers to the client. State is stored in `$_SESSION` and backed up in a Highload-block — if the user closes the tab, they can continue later. The final level is calculated as a weighted average (grammar — weight 1.0, vocabulary — 0.8, reading — 1.2) and selects groups from the Highload-block.| Parameter | Standard test | Adaptive test (CAT) |
|---|---|---|
| Number of questions | 50 | 20–25 |
| Time to complete | 40 min | 15 min |
| Level accuracy | 75% | 87% |
Why the adaptive test takes only 15 minutes
Due to dynamic difficulty: if the student answers correctly, the next question is harder; if they make a mistake, it's easier. The algorithm quickly converges to the exact level. The result displays with a level description ("B1 — Intermediate: you can understand main ideas of texts..."), recommended course cards, and nearby groups with an enrollment button. For unauthenticated users, the result is saved in a cookie for 30 days; upon registration, it's transferred to the profile.
Three-dimensional course catalog
The language school catalog has three axes: language, level, format. The "Courses" information block contains sections by language (English, German, French, etc.) and direction (General, Business, Exam Prep). Element properties include CEFR level, format (group, individual, online), intensity, duration, age group, and result.
Filtering is implemented via bitrix:catalog.smart.filter with AJAX and cascading dropdowns: when a language is selected, only available levels are loaded. This speeds up search by 2–3 times compared to a flat list.
The Highload-block "Groups" stores schedules: teacher, day bitmask (Mon=1, Tue=2...), start time, classroom or Zoom link. The enrollment form automatically pulls the level from the test and suggests suitable groups.
Common mistakes in language school website development
- Ignoring mobile adaptation of the test: on phones, 80% of users won't complete a 40-minute test. Our components are tested for mobile screens.
- Lack of catalog caching: without tagged infoblock cache, the site slows down with 1000+ courses. We use
bitrix:cachewith tags. - Complex enrollment process: each extra step reduces conversion. Our enrollment form has 3 fields after the test.
Integration with Zoom and LMS
For online courses, integration with Zoom/Google Meet and LMS (Moodle, iSpring) is necessary. Integration via REST API: when a group with online format is created, a recurring meeting is automatically generated, and the link is saved in the group. Access to the link opens in the personal account after payment. Lesson materials are stored in an information block linked to the course.
Student personal account
The account is built on a custom bitrix:main.profile template with tabs: "My Courses", "Schedule" (calendar view with color coding), "Homework" (statuses: new, submitted, reviewed), "Payments" (history, online payment via the sale module), "Test Results" (level dynamics, progress bar before and after the course).
Development process: from analysis to deployment
| Stage | What we do | Timeline |
|---|---|---|
| Analysis | Course map, language×level×format matrix, test requirements | 5–7 days |
| Design | Wireframes, infoblock structure, CAT algorithm | 7–10 days |
| UI/UX | Mockups, UI kit, mobile adaptive | 10–14 days |
| Catalog development | Infoblocks, filtering, course cards | 10–14 days |
| Level test | CAT component, result page | 10–12 days |
| Personal account & integrations | Account, Zoom API, payment | 10–14 days |
| Content & testing | Question bank (120 questions per language), QA | 7–10 days |
Total time: 9–12 weeks. Question bank filling runs in parallel with development.
What's included in the work?
We deliver a ready site with full documentation: infoblock architecture, API description, admin instructions. We hand over hosting credentials, Bitrix panel access, and all integrations. We train editors to populate courses and questions. After launch, we provide 2 months of technical support and a code warranty. Contact us for a project evaluation — we'll calculate timelines and cost individually.
Request a consultation — get a commercial proposal after requirements analysis.

