# План разработки Team Planner > **Это основной источник истины для всех планов по проекту.** > Обновляй этот файл при изменении планов или завершении задач. --- ## Обзор фаз | Фаза | Название | Статус | Описание | |------|----------|--------|----------| | 0 | Инициализация | ⏳ В процессе | Настройка проектов, инфраструктура | | 1 | Базовый функционал | ⏸️ Ожидает | CRUD идей, таблица, редактирование | | 2 | Расширенный функционал | ⏸️ Ожидает | Drag&Drop, цвета, комментарии, команда | | 3 | AI-интеграция | ⏸️ Ожидает | Оценка времени, рекомендации | --- ## Фаза 0: Инициализация ### Backend - [ ] Создать NestJS проект (`nest new backend`) - [ ] Настроить TypeORM + PostgreSQL - [ ] Создать docker-compose для PostgreSQL - [ ] Настроить базовую структуру модулей - [ ] Добавить глобальную валидацию (class-validator) - [ ] Настроить CORS ### Frontend - [ ] Создать React проект (Vite + TypeScript) - [ ] Установить и настроить MUI - [ ] Установить Zustand - [ ] Установить TanStack Table - [ ] Установить dnd-kit - [ ] Настроить Axios + React Query - [ ] Создать базовую структуру папок ### Инфраструктура - [ ] Настроить ESLint + Prettier для обоих проектов - [ ] Создать общий docker-compose --- ## Фаза 1: Базовый функционал ### Backend — Модуль Ideas - [ ] Создать сущность Idea (entity) - [ ] Создать DTO (CreateIdeaDto, UpdateIdeaDto, QueryIdeasDto) - [ ] Реализовать IdeasService - [ ] Реализовать IdeasController - [ ] GET /api/ideas (с пагинацией, фильтрами, сортировкой) - [ ] POST /api/ideas - [ ] PATCH /api/ideas/:id - [ ] DELETE /api/ideas/:id - [ ] Добавить валидацию - [ ] Написать тесты ### Frontend — Таблица идей - [ ] Создать типы (types/idea.ts) - [ ] Создать API-сервис (services/ideas.ts) - [ ] Создать Zustand store (store/ideas.ts) - [ ] Создать компонент IdeasTable - [ ] Отображение колонок - [ ] Пагинация - [ ] Сортировка (клик по заголовку) - [ ] Создать компоненты фильтров - [ ] Фильтр по статусу - [ ] Фильтр по приоритету - [ ] Фильтр по модулю - [ ] Текстовый поиск - [ ] Inline-редактирование ячеек - [ ] Double-click для редактирования - [ ] Автосохранение при blur/Enter - [ ] Оптимистичные обновления - [ ] Создать модалку создания идеи - [ ] Добавить skeleton loader - [ ] Добавить empty state --- ## Фаза 2: Расширенный функционал ### Backend — Дополнения - [ ] PATCH /api/ideas/reorder (изменение порядка) - [ ] Модуль Comments - [ ] Сущность Comment - [ ] GET /api/ideas/:id/comments - [ ] POST /api/ideas/:id/comments - [ ] DELETE /api/comments/:id - [ ] Модуль Team - [ ] Сущность TeamMember - [ ] CRUD endpoints - [ ] GET /api/team/summary ### Frontend — Drag & Drop - [ ] Интегрировать dnd-kit в таблицу - [ ] Drag handle в первой колонке - [ ] Визуальная индикация при перетаскивании - [ ] Сохранение порядка на сервер ### Frontend — Цветовая маркировка - [ ] Добавить поле color в таблицу - [ ] Цветовой фон строки - [ ] Picker для выбора цвета - [ ] Фильтр по цвету ### Frontend — Комментарии - [ ] Раскрывающаяся панель под строкой - [ ] Список комментариев с тредами - [ ] Форма добавления комментария - [ ] Ответы на комментарии ### Frontend — Управление командой - [ ] Страница /team - [ ] Сводка по ролям - [ ] Таблица участников - [ ] Модалка добавления/редактирования - [ ] Матрица производительности (время на задачи по сложности) --- ## Фаза 3: AI-интеграция ### Backend — Модуль AI - [ ] Интегрировать ai-proxy service - [ ] POST /api/ai/estimate - [ ] Получить идею и состав команды - [ ] Сформировать промпт - [ ] Отправить запрос в AI - [ ] Распарсить ответ - [ ] Сохранить оценку - [ ] Rate limiting для AI-запросов ### Frontend — AI-оценка - [ ] Кнопка "Оценить AI" в строке/детали идеи - [ ] Модалка с результатом оценки - [ ] Общее время - [ ] Сложность - [ ] Разбивка по ролям - [ ] Рекомендации - [ ] Отображение оценки в таблице - [ ] Loading state для AI-запросов --- ## Backlog (после MVP) - [ ] WebSocket для real-time обновлений - [ ] Виртуализация списка (1000+ идей) - [ ] Keyboard shortcuts - [ ] Сохранение пресетов фильтров - [ ] Темная тема --- ## Принципы разработки 1. **Вертикальная разработка** — делаем полный flow (BE → FE) для каждой фичи 2. **Инкрементальность** — сначала базовое, потом улучшаем 3. **Тестирование** — покрываем критичный функционал 4. **Документирование** — обновляем CONTEXT.md после значимых изменений