- Основная цель — сделать многопользовательскую игру «Дурак» с онлайн и оффлайн режимами, с поддержкой мобильных устройств и ПК.
- Акцент на весёлое общение, рейтинги, кланы и расширенный социальный функционал.
- Легко расширяемый и поддерживаемый стек.
- Backend: Django + Django Rest Framework (DRF) для API
- Frontend Web: HTML/CSS/JavaScript (друг - фронтендер, чистый CSS и JS)
- Анимации на вебе: выбор простого и плавного 2D решения (например, GreenSock GSAP, Anime.js, или CSS анимации)
- Desktop: Flet (Python) для кроссплатформенного GUI
- Мобильное приложение: Kotlin (Android)
- Сервер для оффлайн: копия основного Django-сервера (упрощённая, без базы и защиты от читов)
- База данных: PostgreSQL (опыт использования и подходит по производительности)
- Реальное время: WebSocket (Django Channels)
- Формат обмена данными: JSON
- CI/CD: GitHub Actions/GitLab CI, Docker, автоматический деплой на VPS (DigitalOcean, AWS, Yandex Cloud)
- Монолитный сервер на Django, отвечающий за логику игры, управление пользователями, кланы, чаты и рейтинги.
- REST API для работы с данными и WebSocket для игр в реальном времени и чатов.
- Мобильное приложение и десктоп клиент обращаются к серверу по API и WebSocket.
- Локальный сервер на телефоне для оффлайн партий с друзьями (логика игры локальная, без защиты от читов и базы данных).
- username (логин/никнейм)
- password (хешированный)
- статус аккаунта - зарегистрирован, подтвержден, заблокирован
- роли: обычный, админ, владелец
- OAuth-связи (Google, Yandex, GitHub, VK, Telegram)
- соцсети в профиле (для стримеров/ютуберов)
- флаги выполнения условий для наград (например, подписка на канал)
- количество игр, побед, поражений
- клан и роль в клане (дурак-вождь, проказник, младший дурак, участник)
- онлайн-статус
- список друзей
- звание (строка)
- рейтинг (число)
- ачивки
- внутриигровая валюта
- предметы (скины, фон, карты, эмодзи)
- значки (за сезон и прочее)
- название
- участники и их роли
- чат (последние 100 сообщений)
- рейтинг клана
- приглашения (по ссылке или через личные сообщения в игре)
- приватность вступления (по приглашению и одобрению)
- временная сущность, хранит состояние текущей игры
- игроки, текущие ходы, время на ход
- логика игры, боты (на сервере)
- оффлайн партии — логика на клиенте, минимум проверки
- групповые и личные чаты
- хранение истории сообщений
- чаты кланов, личные и групповые
- достижения и награды для игроков
- условия получения и отображение в профиле
- Регистрация/авторизация (пароль, OAuth)
- Профиль с настройками и статистикой
- Добавление и управление друзьями
- Кланы с ролями и приглашениями
- Групповой чат в клане, личные и публичные чаты
- Игры онлайн (с рейтингом, логикой на сервере) и оффлайн (локальный сервер на телефоне, нерейтинговые)
- Игра с ботами
- Анимации карт и ходов (плавные, 2D)
- Рейтинговая система и звания
- Система достижений и наград
- Логирование действий и возможность админского мониторинга и вмешательства
- Восстановление соединения при разрыве связи в онлайн-играх (с ограничениями)
- Хранение паролей и данных пользователей в зашифрованном виде
- Проверка и валидация данных на сервере
- Защита логики онлайн-игры от читерства (основная игра на сервере)
- Минимальная защита в оффлайн режиме
- Логирование подозрительных действий и возможности просмотра логов админами
- Админская консоль с контролем партий
- Юнит-тесты для серверной логики и API
- Интеграционные тесты для ключевых сценариев
- Автоматические тесты UI (по мере возможности)
- CI/CD для быстрой сборки и деплоя
- Система баг-репортов и мониторинга
- Адаптивный дизайн для ПК и мобильных устройств
- Простота использования и удобство интерфейса
- Возможность расширения функционала и новых режимов
- Возможность добавления доната и премиум аккаунтов в будущем
- Оптимизация для слабых устройств
- Поддержка голосовых сообщений и эмодзи в чатах (план)
- Авторизация через OAuth и регистрация по email
- Профиль с настройками (скины, эмодзи, достижения)
- Просмотр статистики и достижений
- Игровая логика оффлайн (локальная, без рейтинга и защиты)
- Подключение к серверу через API и WebSocket для онлайн-игр
- Анимации карт и ходов (2D, плавные)
- Поддержка восстановления соединения
- Расширенные настройки приватности
- Режимы турниров и пати с друзьями
- Система доната и премиум-аккаунтов
- Голосовые сообщения в чатах
- Мини-игры и расширенные анимации
- Аналитика для улучшения UX
- Сервер Django с DRF + Channels, докеризированный для простоты деплоя
- Мобильное приложение на Kotlin с модулем локального сервера (упрощённый Django или FastAPI-подобный микросервер на Python, если возможно)
- Desktop клиент на Flet (Python) для ПК и кроссплатформы
- CI/CD — GitHub Actions с автоматическим тестированием и деплоем на VPS
Если нужен файл в другом формате — скажи.