Клиент — онлайн-школа (маркетинг и SMM, ~400 учеников). Обучение шло в GetCourse + Telegram-чат — ученики путались где смотреть урок и где сдавать тест. Drop-off после 2-й недели ~30%.
Задача: Mini App как единая точка входа — список модулей, видео-уроки, тесты с автопроверкой, прогресс-бар, сертификат по завершении. Доступ по invite-link из бота после оплаты.
Реализация:
• структура курса: модули → уроки → quiz; блокировка следующего без прохождения;
• видео: embed или HLS player в WebView; отметка «просмотрено»;
• тесты: single/multi choice, порог прохождения 80%, 3 попытки;
• progress sync на backend; streak и мотивационные push через бота;
• сертификат PDF по завершении; watermark с именем ученика;
• админ: загрузка контента, статистика по группам, export CSV.
Стек: React, Telegram WebApp SDK, FastAPI, PostgreSQL, S3 (video), aiogram, PDF generation, Docker. Приёмка: полный проход 1 модуля 10 тест-аккаунтами.
Итог: drop-off −15%; completion rate первого модуля +22%. NDA: школа не публикуется.