Розробка сайту мовної школи на 1С-Бітрікс
Мовна школа продає не товар, а результат: «говорити англійською через 3 місяці». Сайт має не просто перелічувати курси, а допомогти потенційному учню визначити свій рівень, підібрати групу та записатися — без дзвінка. На 1С-Бітрікс це реалізується через інформаційні блоки з багатовимірною фільтрацією, кастомний компонент тестування та інтеграцію з платформами онлайн-навчання.
Каталог курсів: тривимірна структура
Головна складність каталогу мовної школи — три осі фільтрації: мова, рівень, формат. Учню потрібно швидко знайти «Англійська, B1, групове заняття, вечірній час».
Інформаційний блок «Курси» містить розділи першого рівня за мовами (англійська, німецька, французька, іспанська, китайська), другого рівня — за спеціалізацією (General, Business, Exam Prep, Conversational). Властивості елемента:
- Рівень (список з множинним вибором): A1, A2, B1, B2, C1, C2 за CEFR
- Формат (список): групове, міні-група (3-5 осіб), індивідуальне, онлайн-група, онлайн-індивідуальне
- Інтенсивність (список): стандарт (2 рази/тиж.), інтенсив (4-5 разів/тиж.), вихідного дня
- Тривалість (число): кількість академічних годин
- Вікова група (список): діти 7-10, підлітки 11-15, дорослі 16+
- Результат (текст): що учень зможе робити після курсу
Фільтрація реалізується через bitrix:catalog.smart.filter з AJAX. Три випадаючих списки (мова → рівень → формат) працюють каскадно: при виборі мови завантажуються тільки доступні рівні.
Онлайн-запис із підбором групи
Highload-блок «Групи» аналогічний за структурою каталогу автошколи, але з доповненнями:
- UF_TEACHER_ID — прив'язка до інформаційного блоку «Викладачі»
- UF_LEVEL — рівень групи
- UF_WEEKDAYS — дні занять (бітова маска: ПН=1, ВТ=2, СР=4...)
- UF_TIME_START — час початку заняття
- UF_CLASSROOM — аудиторія / посилання на Zoom
Форма запису пропонує відповідні групи на основі результату тесту рівня. Якщо тест пройдено і результат збережено в профілі — поле «Рівень» заповнюється автоматично, учню залишається вибрати зручний розклад.
Інтеграція з LMS та Zoom
Для онлайн-формату необхідна зв'язка з LMS (Moodle, iSpring) та Zoom/Google Meet. Інтеграція працює через REST API:
- При створенні групи з форматом «онлайн» автоматично створюється повторювана зустріч у Zoom через API та посилання записується у властивість групи
- Доступ до посилання відкривається в особистому кабінеті тільки для записаних учнів після оплати
- Матеріали уроку (презентації, аудіо, домашні завдання) зберігаються в інформаційному блоці «Матеріали» з прив'язкою до курсу та уроку
Особистий кабінет учня
Кабінет побудований на кастомному шаблоні bitrix:main.profile з вкладками:
- Мої курси — активні, завершені, майбутні
- Розклад — календарний вигляд з кольоровим кодуванням за мовами
- Домашні завдання — список з дедлайнами та статусами (нове / здано / перевірено)
-
Оплата — історія платежів, заборгованості, посилання на онлайн-оплату через модуль
sale - Результати тестів — динаміка рівня, рекомендації щодо переходу на наступний
Тест визначення рівня: детальний розгляд
Тест рівня — критична точка воронки. Відвідувач приходить із запитом «хочу вчити англійську», але не знає свого рівня. Якщо запропонувати подзвонити — конверсія падає. Якщо дати пройти тест за 15 хвилин і одразу показати відповідні групи — записується.
Архітектура тесту
Інформаційний блок «Питання тестування» з розділами за мовами. Кожна мова містить підрозділи за рівнями (A1–C2). Властивості питання:
- Тип (список): grammar, vocabulary, reading, listening
- Рівень (список): A1–C2 — реальний рівень питання
- Текст питання — детальний опис
- Медіа — аудіофайл для listening-питань
- Варіанти відповідей — 3-4 рядкові властивості
- Правильна відповідь — номер варіанта
- Вага — числове значення для алгоритму підрахунку
Адаптивний алгоритм
Стандартний підхід «50 питань від A1 до C2 по порядку» — довгий та нудний. Реалізуємо адаптивний алгоритм (спрощений CAT — Computerized Adaptive Testing):
- Тест починається з 5 питань рівня B1 (медіанний рівень)
- Якщо учень правильно відповідає на 4-5 з 5 — наступний блок беруться на рівень вище (B2)
- Якщо правильних менше 2 — на рівень нижче (A2)
- Якщо 2-3 — ще 5 питань того ж рівня для уточнення
- Тест завершується, коли алгоритм визначив стабільний рівень (два послідовних блоки з результатом 60-80%) або пройдено максимум 30 питань
Серверна частина — контролер D7 (/api/placement-test/). Клієнт відправляє відповідь на поточне питання, сервер визначає наступне питання на основі накопленої статистики. Номери правильних відповідей клієнту не передаються. Стан тесту зберігається в $_SESSION з резервним збереженням у Highload-блок (на випадок закриття вкладки — тест можна продовжити).
Маршрутизація результату
Після завершення тесту контролер:
- Визначає підсумковий рівень за формулою виваженого середнього (питання типу grammar мають вагу 1.0, vocabulary — 0.8, reading — 1.2)
- Зберігає результат у профілі користувача (властивість
UF_LANGUAGE_LEVEL_{LANG}) - Робить вибір з Highload-блоку «Групи» з фільтром за мовою, рівнем та статусом «Набір відкритий»
- Повертає сторінку результату з блоками:
- Визначений рівень з описом («B1 — Intermediate: ви розумієте основні ідеї текстів, можете спілкуватися в більшості ситуацій у подорожі...»)
- Рекомендовані курси — карточки з інформаційного блоку з фільтром за рівнем
- Ближайші групи — конкретні дати початку, розклад, викладач
- Кнопка запису — веде на форму з попередньо заповненими полями (мова, рівень)
Для неавторизованих користувачів результат зберігається у cookie на 30 днів. При реєстрації дані переносяться в профіль.
Повторне тестування
Учням, які пройшли курс, пропонується пройти тест повторно через 3 місяці. Тригер — автоматичне email-повідомлення через sale.personal.section та бізнес-процес. Порівняння «до і після» відображається в особистому кабінеті як прогрес-бар з двома позначками.
Акції та реферальна програма
Інформаційний блок «Акції» з датами дії (ACTIVE_FROM, ACTIVE_TO) та типами:
-
Приведи друга — реферальне посилання генерується в ЛК, при записі нового учня за посиланням обидва отримують знижку (купони модуля
sale) - Корпоративне навчання — окрема посадочна з формою заявки, розрахунок від кількості співробітників
- Сезонні — літній інтенсив, підготовка до IELTS перед дедлайнами
Корпоративні заявки обробляються окремо: дані попадають у CRM Бітрікс24 через REST API webhook.
Етапи та терміни
| Етап | Що робимо | Термін |
|---|---|---|
| Аналітика | Карта курсів, матриця «мова × рівень × формат», вимоги до тесту | 5–7 днів |
| Проектування | Wireframes, структура інформаційних блоків, алгоритм адаптивного тесту | 7–10 днів |
| Дизайн | Макети, UI-kit, адаптив під мобільні | 10–14 днів |
| Розробка каталогу | Інформаційні блоки, фільтрація, карточки курсів, сторінки груп | 10–14 днів |
| Тест визначення рівня | Компонент, адаптивний алгоритм, сторінка результату | 10–12 днів |
| Особистий кабінет та інтеграції | ЛК учня, Zoom API, оплата | 10–14 днів |
| Контент та тестування | Заповнення бази питань, QA | 7–10 днів |
Загальний термін — 9–12 тижнів. Заповнення бази питань для тесту (мінімум 120 питань на мову, по 20 на рівень) може йти паралельно з розробкою.







