
Детская образовательная платформа живёт, пока в ней появляются новые уроки. Если каждую игру программировать отдельно, контент становится самой дорогой статьёй бюджета, а запуск нового предмета упирается в разработчиков. VunderKids, онлайн-школа по математике и английскому языку для детей, где уроки проходят в форме игр. Главный технический вызов: огромное количество разных игр по разным предметам, и каждая должна собираться как конструктор.

Для кого это и что видно сразу
У платформы две аудитории. Ребёнок видит детский интерфейс с персонажем-львом, уроки по предметам и классам, баллы, знаки отличия и сертификаты. Родитель регистрирует аккаунт, добавляет детей, выбирает предмет и класс, ставит учебную цель на неделю и получает напоминания о занятиях.
Игры-уроки как конструктор
В каждой игре настраивается всё: текст вопроса, варианты ответов, картинки, фон и звуки. Содержание задаётся из админки под каждый урок. На первом экране ребёнок выбирает подходящую цифру, а в другом варианте того же шаблона подставляет пропущенную букву в слово.

Тот же механизм даёт другие задания с другим текстом и картинками: сравнить количество фишек и ответить «да» или «нет», перетащить мышкой цветы нужного цвета в рамку.


С чего начинался проект: ТЗ с «хотелками»
Заказчик пришёл с готовым техническим заданием: список пожеланий и примеры интерфейса из другого приложения. Мы взяли его в работу как есть, без доработки, и быстро увидели цену такого решения. Страница «Вопрос-ответ» в ТЗ была проиллюстрирована чужим экраном.

Страница рейтинга тоже была показана картинкой из другого продукта.

А описана она была парой строк, из которых логика не понятна: за счёт каких баллов строится рейтинг и за какой период? Слабо была расписана и админка. Картинка есть, а правил, по которым система считает и показывает данные, нет. Как превратить пожелания в проверяемые требования, мы разбираем в статье про этап технического задания.

Как мы разложили работу: этапы, задачи, WBS
Мы сделали документ «Этапы разработки» и разделили требования на 5 этапов, у каждого своя цель и проверяемый результат. Первый этап: проектирование архитектуры и реляционной базы данных, регистрация и авторизация по токену, развёртывание на Docker и сервер для демонстрации. Второй: функциональный прототип с демонстрационными играми-уроками, баллами за правильные ответы, подтверждением почты, целями и выбором дней обучения, уведомлениями на почту и системой языков и переводов.


Дальше каждое требование расписывалось задачей в трекере Asana. Страница «Вопрос-ответ» для программиста описана как сценарий: пользователь видит список вопросов, ответ раскрывается и скрывается по клику, при выборе английской локали меняются заголовок и вопросы, ниже форма с обязательными полями «Имя» и «E-mail», а отправленный вопрос приходит в раздел обращений админки.


Для контроля разработки мы построили диаграмму WBS. Проект делился на 3 раздела: админка, сайт и личный кабинет. В админке управление пользователями и редактирование страниц, тарифов, новостей и вопросов. На сайте главная, новости, тарифы, вопрос-ответ, контакты, страницы уроков и оплаты.





Логика личного кабинета
Ветка кабинета на WBS фиксирует правила, которых не хватало в исходном ТЗ:
- родитель добавляет детей и для каждого выбирает предмет, класс и язык обучения;
- на неделю ставится учебная цель и выбираются дни занятий, по ним уходят уведомления;
- за прохождение урока начисляется 1 балл, баллы тратятся на смену фона приложения;
- за успешное прохождение класса выдаётся сертификат;
- после первой темы по классу платформа предлагает платный аккаунт и дублирует предложение письмом.




Расписание устроено просто: родитель выбирает темп (начальный 15 минут, рекомендуемый 30, интенсивный 45), дни недели (рекомендуется три) и время напоминаний: утром, в полдень, днём или вечером.

Что ещё усложняло проект
- очень много переводов: статьи, интерфейс, уроки, игры, оповещения и звуки;
- сложные анимации и аудио в играх-уроках;
- отдельная JS-игра, где лев собирает монетки на карте;
- технические консультации для верстальщика и дизайнера, помощь в проведении собеседований.

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


Как упростили конструирование игр
Вместо десятков уникальных игр мы типизировали механику по способу ответа. На схеме ниже группы: выбор вариантов, перетаскивание, клик по объекту и ввод текста. Каждая группа сводится к простой форме ответа, а отдельная полиморфная панель вопросов принимает разные типы заданий в одном шаблоне. Новая игра собирается из шаблона, картинок, звуков и вопросов, а не пишется с нуля.

Как такой проект запускается у Вас
- Консультация и моделирование: аудитория, предметы, модель оплаты. Подробнее в статье про этап консультации.
- ТЗ по этапам: у каждого этапа цель, проверяемый результат и фиксированная цена.
- Прототип с первыми играми-уроками, на котором проверяется идея. Об этом этапе статья про прототипирование.
- Дизайн, разработка, переводы, тестирование и передача.
Честная граница: на скриншотах дизайн и прототип VunderKids, а состав игр, предметов и языков под Вашу платформу определяется на этапе ТЗ.
Где ещё это применимо
Типизированные шаблоны заданий подходят для корпоративного обучения и аттестации сотрудников, языковых школ и онлайн-курсов, обучающих тренажёров для клиентов продуктовых компаний.
Если Вы планируете образовательный продукт, запишитесь на бесплатную консультацию с архитектором. После неё Вы получите расчёт цены и сроков по этапам.