Путь ученика разорван
Каталог, оплата, материалы, тестирование и результаты находятся в разных сервисах.
Собрали публичный сайт, учебную среду, кабинет и серверную логику в одном Next.js-приложении.
Двуязычная образовательная платформа: от выбора курса и оплаты до тестирования, результатов и управления бизнесом.

Пользователю нужен понятный маршрут: выбрать программу, купить доступ, изучить материалы, пройти тренировку и увидеть результат. Владельцу — инструменты для самостоятельного управления курсами, тестами, тарифами, учениками и заказами.
Решением стало единое full-stack приложение. В нём публичный сайт, учебная среда, личный кабинет, административная панель и серверная бизнес-логика работают как одна система.
Проблемы возникали на стыке публичного сайта, обучения, оплаты и администрирования. Мы связали эти контуры общей моделью данных и серверной логикой, чтобы пользователь проходил весь путь последовательно, а владелец управлял продуктом без постоянных доработок кода.
Каталог, оплата, материалы, тестирование и результаты находятся в разных сервисах.
Собрали публичный сайт, учебную среду, кабинет и серверную логику в одном Next.js-приложении.
Новый курс, тариф или вопрос требует правки кода и замедляет запуск программы.
Создали административную панель для программ, модулей, тестов, тарифов, новостей и настроек сайта.
Разным методикам нужны свои правила прохождения, лимиты и обратная связь.
Реализовали четыре режима, случайную выборку, таймер, попытки, проходной порог и серверное сохранение результата.
Ручная проверка заказов задерживает ученика и создаёт риск повторной выдачи.
Связали ApiPay webhook, HMAC-SHA256, транзакционный переход PENDING → PAID и выдачу доступа.
Курсы сгруппированы по категориям. На странице программы пользователь видит описание, состав обучения, условия доступа и тарифы. Одна программа может находиться сразу в нескольких направлениях.



Русская и казахская версии имеют отдельные учебные тексты и банки вопросов. Редактор может создавать самостоятельное содержание для каждого языка, сохраняя общую структуру продукта.
Маршруты /ru и /kk
на базе next-intl


Боковая навигация показывает состав курса и помогает переходить между темами. Материалы поддерживают форматированный текст, изображения и встроенные YouTube-видео.


Последовательное прохождение вопросов.
Навигация назад к просмотренным заданиям.
Правильный ответ и пояснение сразу после выбора.
Полный набор заданий на одной странице.
Для каждого теста настраиваются время, число попыток, проходной порог, размер случайной выборки и обязательность ответа. Сервер фиксирует состав попытки, проверяет доступ и время, сохраняет ответы и вычисляет итог.


Незавершённая попытка восстанавливается при возвращении. После завершения пользователь видит процент правильных ответов, ошибки, затраченное время и статус прохождения.


Экзаменационный сценарий объединяет задания из тестов программы, фиксирует выбранные вопросы и применяет общий лимит времени. Результат показывает общий процент и разбивку по темам.
Это инструмент подготовки с обратной связью. Он не позиционируется как прокторинг или защищённая государственная аттестация.


Администратор собирает программы из модулей, публикует контент, настраивает тесты и тарифы, управляет пользователями, доступами и заказами. Основные ежедневные операции сосредоточены в одной панели.




Цена берётся с сервера из базы данных. Интеграция ApiPay создаёт счёт, нормализует телефон и проверяет HMAC-SHA256 подпись уведомления.
Переход заказа из PENDING в PAID и выдача доступа выполняются в транзакции. Условное обновление защищает от повторной выдачи при конкурентных успешных webhook.


Категория → Курс → Группа / Модуль → Языковая версия → Тест → Вопрос → Варианты ответа
App Router, SSR, React Server Components, Server Actions и API.
Tailwind CSS 3.4, Radix UI и Lucide.
22 связанные модели, индексы и транзакции.
JWT-сессии, роли USER / ADMIN и хеширование паролей.
Визуальный редактор и очистка форматированного HTML.
Оплата доступа, восстановление пароля и напоминания.
Multi-stage сборка, standalone и непривилегированный пользователь.
Проверки функций тестов, экзамена, таймеров и платежей.
Роли, проверка действующего доступа к программе и серверная защита учебных маршрутов.
Состав вопросов сохраняется в PostgreSQL; ответы, время и итог проверяются сервером.
HMAC-SHA256 для webhook, сверка суммы и идемпотентная транзакционная выдача доступа.
DOMPurify очищает HTML; изображения ограничены типами PNG, JPEG, WebP, GIF и размером 5 МБ.
Пароли хешируются bcrypt, авторизация использует JWT-сессии Auth.js.
SQL-экспорт базы, healthcheck и постоянный диск для локального каталога uploads.
Серверный рендеринг, метаданные, Open Graph, canonical, hreflang, sitemap, robots и JSON-LD.
Resend для восстановления пароля и напоминаний об окончании доступа; пороги отправки сохраняются в базе.
Docker Compose и Render Blueprint: веб-сервис, PostgreSQL, persistent uploads и healthcheck.
Публичный интерфейс и тарифы проверены на настольном экране и смартфоне 390 × 844.
Проверка выполнена 09.09.2026 на отдельной локальной копии базы. Скриншоты содержат демонстрационные данные. Production-сборка исходного проекта, реальная оплата, отправка писем, нагрузочные испытания и восстановление backup в эту проверку не входили.
В одной системе работают каталог программ, учебные материалы, четыре режима тестирования, пробные экзамены, кабинет ученика, тарифы, платежный сценарий и административная панель.
Архитектуру можно развивать как платформу учебного центра, сервис подготовки к экзаменам или корпоративный тренажёр знаний. Контент и коммерческие параметры меняются через интерфейс — без постоянного участия разработчика.
Посмотреть действующую платформу ↗Разберём процессы, спроектируем архитектуру и соберём продукт вокруг реальной задачи бизнеса.
Обсудить проект ↗Вернуться к кейсам