Files
team-planner/ROADMAP.md
2025-12-29 16:58:56 +03:00

162 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# План разработки 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 после значимых изменений