# Team Planner - Требования к приложению ## Описание продукта Приложение для команды разработки, позволяющее собирать бэклог идей, приоритизировать его, проводить брейнштормы, оценивать задачи и оставлять комментарии. --- ## Функциональные требования ### 1. Управление идеями #### 1.1 Список идей Таблица со следующими полями для каждой идеи: | Поле | Описание | Тип | |------|----------|-----| | Статус | Текущее состояние идеи (Новая, В обсуждении, Одобрена, В работе, Готово, Отклонена) | Enum | | Приоритет | Важность идеи (Критический, Высокий, Средний, Низкий) | Enum | | Модуль | Где реализуется (Frontend, Backend, AI, Mobile, Infrastructure, Other) | Enum/Multi-select | | Суть идеи | Краткое описание идеи | Text | | Для кого | Целевая аудитория / пользователь | Text | | Какую боль решает | Проблема, которую решает идея | Text | | Роль AI | Что делает ИИ в рамках этой идеи (если применимо) | Text | | Способ проверки | Быстрый способ валидации идеи / MVP | Text | | Комментарии | Обсуждение и заметки | Text (список комментариев) | | Цвет | Цветовая маркировка строки | Color | | Оценка времени | AI-генерируемая оценка трудозатрат | Calculated | #### 1.2 Редактирование идей - **Inline-редактирование**: возможность редактировать любое поле прямо в таблице двойным кликом - **Быстрое изменение статуса и приоритета** через dropdown - **Автосохранение** изменений #### 1.3 Drag & Drop - Перемещение идей в списке для ручной сортировки - Визуальная индикация при перетаскивании - Сохранение порядка после перемещения #### 1.4 Цветовая маркировка - Возможность назначить цвет строке для визуального выделения - Предустановленная палитра цветов - Фильтрация по цвету ### 2. Сортировка и фильтрация #### 2.1 Сортировка - По любому полю (клик на заголовок колонки) - Множественная сортировка (Shift + клик) - Сохранение настроек сортировки #### 2.2 Фильтры - Фильтр по статусу - Фильтр по приоритету - Фильтр по модулю - Фильтр по цвету - Текстовый поиск по всем полям - Сохранение пресетов фильтров ### 3. AI-оценка времени #### 3.1 Управление командой - Список членов команды с ролями: - Backend-разработчик - Frontend-разработчик - AI/ML-инженер - Аналитик - Тестировщик (QA) - DevOps - Дизайнер - Project Manager - Количество сотрудников каждой роли #### 3.2 Матрица производительности Для каждого сотрудника/роли указывается время на задачи разной сложности: | Сложность | Описание | Пример времени | |-----------|----------|----------------| | Trivial | Тривиальная задача | 1-2 часа | | Easy | Лёгкая задача | 0.5-1 день | | Medium | Средняя задача | 2-3 дня | | Hard | Сложная задача | 1-2 недели | | Epic | Эпик / большая фича | 2-4 недели | #### 3.3 AI-функционал - Анализ описания идеи - Определение необходимых ролей для реализации - Оценка сложности для каждой роли - Расчёт общего времени с учётом состава команды - Рекомендации по оптимизации ### 4. Комментарии - Добавление комментариев к идее - Ответы на комментарии (треды) - Упоминание участников (@mention) - История комментариев --- ## Технические требования ### Backend (NestJS) #### Стек технологий - **Framework**: NestJS - **Language**: TypeScript - **Database**: PostgreSQL - **ORM**: TypeORM - **API**: REST + WebSocket (для real-time обновлений) - **AI Integration**: ai-proxy service тут лежит гайд по интеграции /Users/vigdorov/dev/gptunnel-service/INTEGRATION.md ### Frontend (React + TypeScript) #### Стек технологий - **Framework**: React 18+ - **Language**: TypeScript - **State Management**: Zustand - **UI Library**: MUI - **Table**: TanStack Table (react-table) - **Drag & Drop**: dnd-kit / react-beautiful-dnd - **HTTP Client**: Axios / React Query - **Styling**: Tailwind CSS / CSS Modules ## Нефункциональные требования ### Производительность - Виртуализация списка при большом количестве идей (1000+) - Оптимистичные обновления UI - Кэширование данных ### UX - Отзывчивый интерфейс (< 100ms на действие) - Keyboard shortcuts для частых операций - Responsive design (desktop-first) ### Безопасность - Валидация входных данных - Rate limiting для AI-запросов ### Авторизация - **Keycloak** (auth.vigdorov.ru) — внешний Identity Provider - Авторизация через редиректы на стандартную форму Keycloak - Authorization Code Flow + PKCE - JWT токены с валидацией через JWKS - Автоматическое обновление токенов - Защита всех API endpoints (кроме /health) - Роли и права доступа НЕ требуются — просто аутентификация --- ## Открытые вопросы 1. Нужна ли многопользовательская работа и разграничение прав? НЕТ 2. Требуется ли история изменений (audit log)? НЕТ 4. Нужен ли экспорт данных (CSV, Excel)? НЕТ 5. Интеграция с внешними системами (Jira, Trello)? НЕТ