Веб-разработка. Разработка с нуля, тестирование, настройка. Необходимо разработать rest api сервер на Python для мобильного приложения (игры) (набор фрейморков обсуждаем). После разработки необходимо будет развернуть сервер на веб хостинге и настроить его работу Технические требования Стек технологий Язык бэкэнд - python; Язык фронтенд - React или Vue; Фреймворки - обсуждаемо; Базы данных - PostgreSQL, MongoDB. Совместимость Требования к совместимости с различными браузерами и устройствами. Плановая нагрузка DAU - 50 000 Количество запросов в день - [Телефон скрыт] Безопасность и защита данных Шифрование данных при хранении и передаче с использованием надежных алгоритмов шифрования; Правильное хранение пользовательских данных и безопасное резервное копирование; Контроль доступа, аутентификация и управление доступом на основе ролевой модели (администратор); Безопасный дизайн API с инструментами проектирования и управления; Встроенные функции безопасности, такие как безопасное хеширование паролей, проверка ввода и защита от распространенных атак веб-приложений; Соответствие нормативным требованиям, таким как 152-ФЗ, GDPR и CCPA, для обеспечения конфиденциальности пользователей. Масштабируемость и отказоустойчивость Балансировка нагрузки - должна быть возможность распределять нагрузку между несколькими узлами или серверами; Разделение на микросервисы - организация микросевисной архитектуры при которой будет выполнена разбивка на отдельные блоки и независимые компоненты (обсуждаемо); Резервное копирование и восстановление данных - регулярное создание резервных копий для быстрого восстановления данных при потере или повреждении; Мониторинг и логирование - сбор данных о состоянии системы и ее компонентов для анализа логов после сбоев для выявления и исправления проблем. Реализуемые методы (API) Необходимо реализовать следующие методы: Получение серверного времени: Выполняет запрос времени, установленного на сервере. Передаваемые значения: нет Возвращаемые значения: серверное время Проверка пользователя: Выполняет проверку пользователя в базе данных и если запрашиваемый пользователь отсутствует в базе данных, то он создается. Передаваемые значения: Платформа Идентификатор устройства Возвращаемые значения: Идентификатор пользователя Логин Сохранение данных: Выполняет сохранение структуры данных в базе данных, передаваемой с клиента. Возвращает статус успешного сохранения. Передаваемые значения: Идентификатор пользователя Снапшот Возвращаемые значения: Результат сохранения Загрузка данных: Выполняет запрос данных с клиента. Возвращает структуру данных на клиент. Передаваемые значения: Идентификатор пользователя Возвращаемые значения: Снапшот Структура таблиц Структура таблиц указана предварительная и может быть скорректирована. Пользователи: Идентификатор пользователя Логин Пароль Дата регистрации Дата последней авторизации Тип платформы Платформа: Тип платформы Устройства: Идентификатор пользователя Идентификатор устройства Снапшоты: Идентификатор пользователя Идентификатор устройства Дата снапшота Снапшот - json Пользовательский интерфейс (UI) В платформе должна быть реализована следующая структура пользовательского интерфейса, которая позволит просматривать и редактировать пользовательские данные: Страница аутентификации - необходима для аутентификации администратора Страница просмотра снапшотов - необходима для просмотра снапшотов пользователей и их корректировки.