Полезная фиджитал веб-игра для детей 6-11 лет, разработанная для геймджема VK Education x Учи.ру.
- Ссылка на игру:
https://city.andrewdev.dev - Ссылка на видео-демонстрацию:
https://disk.yandex.ru/i/TM2mA2rjnITJcw
Родители сталкиваются с чрезмерным экранным временем детей и часто не понимают, как мягко перевести ребенка из цифровой среды в полезный офлайн-досуг. При этом родителю важно видеть не абстрактную "активность в приложении", а понятное доказательство пользы: что ребенок сделал, сколько времени провел вне экрана, какие навыки развивал.
"Город профессий" превращает экран в стартовую точку для действий в реальном мире. Ребенок выбирает профессию, получает игровую задачу, выполняет ее офлайн, подтверждает результат фото или ответом и получает награду. Дальше награда возвращает его в игровой цикл: питомец, комната, скины, декор, сундуки, магазин, рейтинг и профиль.
- Игра органично работает по принципу фиджитал: задача в веб-игре -> действие в реальном мире -> валидация -> награда.
- Механики закрывают запросы родителей на творчество, чтение, фотоквесты, физическую активность и полезный досуг.
- Ребенку интересно за счет понятной игровой мотивации: профессии, XP, монеты, рубины, питомец, скины, комната и рейтинг.
- Родитель видит пользу через профиль: выполненные задания, минуты вне экрана, прогресс профессий и фото-подтверждения.
- Фото не раскрываются публично: приватные подтверждения доступны через backend API с проверкой прав, а чужие профили не показывают изображения.
- Экономика безопасная: игровые валюты зарабатываются действиями, а магазин не построен вокруг агрессивной монетизации.
- Формат: веб-приложение.
- Игровой движок: кастомная веб-реализация на Vue 3 без Unity/Cocos.
- Основной интерфейс: mobile-first, рассчитан на телефон ребенка.
- JavaScript
- Vue 3
- Vite
- Vue Router
- Pinia
- CSS/Tailwind-подход в стилистике детского игрового интерфейса
- Vitest для frontend-тестов
- Python
- FastAPI
- SQLAlchemy
- Alembic
- PostgreSQL
- JWT-аутентификация
- SQLAdmin для CRUD-админки
- pytest для backend/API-тестов
- MinIO/S3 для фото-подтверждений и ассетов
- Docker Compose для локального запуска
- Traefik-ready конфигурация для серверного деплоя
- Переменные окружения для домена, CORS, S3, админки и лимиты загрузки
Frontend отвечает за игровой интерфейс:
- главная страница с объяснением идеи проекта;
- регистрация и вход;
- экран задач с фильтрами по профессиям;
- карточка задания и отправка выполнения;
- экран награды;
- питомец с комнатой, скинами, декором, сундуками и бустерами;
- магазин питомца;
- профиль игрока с родительской статистикой;
- рейтинг и публичные профили.
Frontend взаимодействует с backend через REST API. Для защищенных действий используется JWT-токен.
Backend реализует бизнес-логику:
- авторизация и пользователи;
- профессии и задания;
- отправка и хранение выполнений;
- начисление XP, монет и рубинов;
- фото-подтверждения через S3/MinIO;
- питомец, инвентарь, скины, декор и фоны комнаты;
- магазин и каталог товаров из базы данных;
- лидерборд и статистика;
- SQLAdmin-админка для управления контентом.
PostgreSQL хранит:
- пользователей;
- профессии;
- задания;
- отправки заданий;
- кошелек игрока;
- экономические транзакции;
- питомцев;
- инвентарь;
- каталог магазина;
- офферы;
- настройки скинов, декора и фонов.
S3-совместимое хранилище используется для:
- фото-подтверждений заданий;
- загружаемых ассетов;
- картинок товаров;
- скинов, декора и фонов комнаты.
Админка на SQLAdmin позволяет управлять пользователями, заданиями, профессиями, каталогом магазина, офферами, питомцами и визуальными ассетами. Отдельный редактор визуала позволяет подбирать позиции скинов и декора.
- Docker
- Docker Compose
- свободные порты
5173,8000,5432,9000,9001
docker compose up --build -dПосле запуска:
- игра:
http://localhost:5173 - backend health:
http://localhost:8000/health - API docs:
http://localhost:8000/docs - админка:
http://localhost:5173/admin - MinIO console:
http://localhost:9001
Админка:
- login:
admin - password:
admin12345
MinIO:
- login:
minioadmin - password:
minioadmin
docker compose ps
curl http://localhost:8000/healthОжидаемый ответ backend:
{"status":"ok"}docker compose downНе использовать docker compose down -v, если нужно сохранить пользователей и данные PostgreSQL.
- Главная страница объясняет идею: экранное время превращается в полезные офлайн-действия.
- Ребенок входит в игру и видит нижнюю навигацию.
- В задачах выбирает профессию и открывает миссию.
- Выполняет задание, прикрепляет фото или ответ и получает награду.
- Награда влияет на XP, монеты, рубины и питомца.
- В питомце можно видеть комнату, скины, декор, сундуки и бустеры.
- В магазине товары покупаются за игровую валюту.
- В профиле родитель видит статистику пользы: задания, минуты вне экрана, прогресс и подтверждения.
- В рейтинге виден прогресс игроков без раскрытия чужих приватных фото.
Проект является рабочим MVP: есть frontend, backend, база данных, S3-хранилище, авторизация, игровой цикл, питомец, магазин, профиль, рейтинг, админка, Docker Compose, тесты и документация.
- Настоящий AR-выгул питомца через камеру телефона.
- AR-фотоквесты: ребенок ищет реальные объекты, наводит камеру и получает игровые подсказки.
- Распознавание объектов вокруг ребенка: растения, книги, спортивные предметы, поделки, рисунки.
- Камерные задания с интерактивными подсказками: куда поставить предмет, что найти, как повторить движение.
- Оживление рисунков: ребенок загружает рисунок, а игра превращает его в персонажа, декор комнаты или временного помощника.
- Оживление поделок: фото поделки становится игровым предметом или трофеем.
- Создание сказок по рисункам: ребенок рисует героя, а система помогает собрать короткую историю.
- Галерея творчества: работы ребенка сохраняются как коллекция достижений.
- Более точная AI-валидация фото-подтверждений.
- Проверка чтения вслух и мягкая обратная связь по прогрессу.
- Адаптация сложности заданий под возраст и интересы ребенка.
- Рекомендации новых миссий на основе любимых профессий и выполненных активностей.
- Сюжетные цепочки профессий и мини-квесты.
- Достижения, бейджи и сезонные события.
- Семейные и классные челленджи без раскрытия приватных фото.
- Более живой питомец: новые эмоции, реакции, анимации и персональные привычки.
- Расширенная аналитика по неделям и месяцам.
- Настройка направлений развития: чтение, творчество, спорт, фотоквесты.
- Семейные цели по полезному офлайн-времени.
- Экспорт отчета о прогрессе в PDF или ссылку.