This commit is contained in:
2025-12-29 16:58:56 +03:00
commit 524f3ebf23
62 changed files with 30925 additions and 0 deletions

161
ROADMAP.md Normal file
View File

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