PLAYNEX — игровая платформа внутри Telegram, в которой пользователь может запускать игры, создавать комнаты и взаимодействовать с другими игроками без перехода на отдельный сайт.
Проект разрабатывался командой из 4 человек. Моя основная зона ответственности — backend и серверная часть приложения.
Нужно было построить основу, на которой можно развивать сразу несколько игр: Mafia, UNO и Monopoly. При этом архитектура не должна была быть привязана к одной конкретной игре — новые режимы и механики должны подключаться без полной переделки backend.
Основные задачи проекта:
• авторизация пользователей через Telegram
• создание и управление игровыми комнатами
• API для WebApp
• хранение пользователей и игровых данных
• синхронизация frontend и backend
• Telegram-бот и взаимодействие с Mini App
• подготовка архитектуры под несколько игр
• административные функции
• PostgreSQL
• корректная работа приложения через HTTPS
• развёртывание проекта на сервере
Отдельное внимание уделялось тому, чтобы Telegram WebApp и серверная часть воспринимались как единый продукт, а не как набор отдельных компонентов.
Решение
Backend построил на Node.js с PostgreSQL в качестве основной базы данных.
Спроектировал API для работы frontend с сервером: получение конфигурации приложения, данных пользователя, игровых комнат и остальных сущностей платформы.
Настроил структуру базы данных, миграции и серверную логику. Подготовил backend так, чтобы игровые модули можно было развивать независимо друг от друга.
Реализовал интеграцию с Telegram: Mini App получает пользователя из Telegram-контекста, а бот используется как отдельная точка взаимодействия с игровой платформой.
Для production-развёртывания настроил серверную среду, PostgreSQL, HTTPS и reverse proxy через Caddy. Приложение работает через единый публичный домен, а API отделён от клиентской части.
В процессе разработки также занимался поиском и устранением проблем, которые появлялись уже после развёртывания: маршрутизация API, MIME-типы frontend-ассетов, подключение Mini App, серверные ошибки и конфигурация окружения.
Архитектура изначально проектировалась с расчётом на дальнейшее расширение платформы: новые игры, профили, внутренняя экономика, косметические предметы, рейтинги и дополнительные игровые механики.
Backend построил на Node.js с PostgreSQL в качестве основной базы данных.
Спроектировал API для работы frontend с сервером: получение конфигурации приложения, данных пользователя, игровых комнат и остальных сущностей платформы.
Настроил структуру базы данных, миграции и серверную логику. Подготовил backend так, чтобы игровые модули можно было развивать независимо друг от друга.
Реализовал интеграцию с Telegram: Mini App получает пользователя из Telegram-контекста, а бот используется как отдельная точка взаимодействия с игровой платформой.
Для production-развёртывания настроил серверную среду, PostgreSQL, HTTPS и reverse proxy через Caddy. Приложение работает через единый публичный домен, а API отделён от клиентской части.
В процессе разработки также занимался поиском и устранением проблем, которые появлялись уже после развёртывания: маршрутизация API, MIME-типы frontend-ассетов, подключение Mini App, серверные ошибки и конфигурация окружения.
Архитектура изначально проектировалась с расчётом на дальнейшее расширение платформы: новые игры, профили, внутренняя экономика, косметические предметы, рейтинги и дополнительные игровые механики.
В результате получилась рабочая Telegram WebApp-платформа с собственной серверной частью и базой данных.
Пользователь открывает PLAYNEX непосредственно из Telegram, получает свой профиль и доступ к игровым разделам. Backend обрабатывает пользователей, комнаты, конфигурацию приложения и игровую логику, а PostgreSQL используется для постоянного хранения данных.
Проект подготовлен не как одноразовая демонстрация, а как основа для дальнейшего развития полноценной игровой экосистемы внутри Telegram.
Главный результат для меня в этом проекте — удалось за короткий срок собрать рабочую серверную архитектуру, связать Telegram, WebApp, API и базу данных в одну систему и подготовить её к дальнейшему масштабированию.
В проекте участвовало 4 человека.
Моя зона ответственности: backend, API, база данных, серверная логика и развёртывание.