Стек технологий: Язык программирования: Python 3.x Фреймворк: Django Rest Framework или FastAPI База данных: PostgreSQL Аутентификация: JWT (JSON Web Tokens) Контейнеризация (опционально): Docker Realtime сообщение клиента и сервера: Websocket Функциональные требования 1. Пользователи и аутентификация 1. Регистрация пользователей: 1.1. Возможность создания аккаунта с уникальным именем пользователя и паролем. 1.2. Пользователь на сайте должен иметь следующие параметры: o Имя пользователя o Фамилия пользователя o Аватаре пользователя (если не задан то, стандартный) o Роль на платформе o Текущие проекты o *Дополнительные поля при необходимости 2. Аутентификация: 2.1. Реализация входа в систему и проверку авторизации с использованием JWT. 3. Профиль пользователя: 3.1. Возможность просмотра информации на странице “профиль” о: o Имени пользователя на платформе o Фамилии пользователя на платформе o Аватаре пользователя o Роль в текущих проектах, на которых задействован пользователь o Истории проектов (проекты на которых пользователь был когда-либо задействован) 2. Проекты 1. CRUD операции для проектов: 1.1. Возможность создания, чтение, обновление и удаление проектов. 1.2. Участники проекта: o Возможность добавления и удаления пользователей из проекта. o Назначение ролей внутри проекта. 1.3. Поля проекта: o Название o Описание o Дата создания o Дата обновления o Статус (Активен, Архивирован) 2. Фильтрация и сортировка задач: 2.1. Возможность сортировки проектов по: o Времени создания\обновления (от старых к новым и от новых к старым) o По названию (от а до я) 2.2. Возможность фильтрации задач: o От и до (созданные/обновленные/сроки выполнения от 00.00.2000 до 00.00.2001) 3. Задачи 1. CRUD операции для задач: 2. Создание, чтение, обновление и удаление задач. 2.1. Поля задачи: o Название o Описание o Проект (ссылка на проект) o Исполнитель (ссылка на пользователя) o Статус (Grooming, In Progress, Dev, Done) o Приоритет (Низкий, Средний, Высокий) o Дата создания o Дата обновления o Срок выполнения o Ответственный за тестировку 3. Комментарии к задачам: 3.1. Добавление, редактирование и удаление комментариев. 3.2. Просмотр истории комментариев. 4. Фильтрация и сортировка задач: 4.1. Возможность сортировки задач по: o Статусу o Приоритету o Исполнителю 4.2. Возможность фильтрации задач: o От и до (созданные/обновленные/сроки выполнения от 00.00.2000 до 00.00.2001) o По дате создания/обновления (от старых к новым и от новых к старым) o По названию (от а до я) 4. Развертывание 1. Docker: 1.1. Развернуть локальное приложение с использованием технологии Docker. Создание Dockerfile и docker-compose.yml для приложения и базы данных. 2. Инструкция по развертыванию: 2.1. Подробное руководство по запуску приложения. 5. Уведомления 3. Email уведомления: 3.1. Отправка уведомлений при: o Назначении вас в новый проект 4. Websocket уведомления на сайте: 4.1. Отправка уведомлений при: o Назначении вас как ответственного на задачу o Назначении вас в новый проект o Изменении статуса в вашей задаче o Добавлении комментария к вашей задаче Требования к API 1. Структура эндпоинтов: 1.1. Должны соответствовать RESTful архитектуре. 2. Стандартизация ответов: 2.1. Единый формат ответов API (успешных и ошибочных). 3. Версионирование API: 3.1. Включение версии в URL (например, /api/v1/). Ожидаемые результаты 1. Исходный код: 1.1. Размещен в репозитории (GitHub, GitLab) с понятной структурой коммитов. 2. Документация: 2.1. README.md с описанием проекта и инструкцией по запуску. 2.2. Документированное API (Swagger, OpenAPI). 3. Тесты: 3.1. Покрытие тестами основных модулей и функций. 4. Демонстрация: 4.1. Работающее приложение, готовое к запуску и проверке. Имеется полноценная postman коллекция для тестированя эндпоинтов во время презентации