6.4 KiB
6.4 KiB
План разработки 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
- Сохранение пресетов фильтров
- Темная тема
Принципы разработки
- Вертикальная разработка — делаем полный flow (BE → FE) для каждой фичи
- Инкрементальность — сначала базовое, потом улучшаем
- Тестирование — покрываем критичный функционал
- Документирование — обновляем CONTEXT.md после значимых изменений