end fase 2

This commit is contained in:
2026-01-15 00:18:35 +03:00
parent 85e7966c97
commit 739a7d172d
63 changed files with 3194 additions and 322 deletions

View File

@ -6,9 +6,9 @@
## Текущий статус
**Этап:** Фаза 2 — Drag & Drop ✅, Авторизация ✅, далее цвета/комментарии/команда
**Фаза MVP:** Базовый функционал + авторизация готовы
**Последнее обновление:** 2026-01-14
**Этап:** Фаза 2 завершена ✅, E2E тесты готовы ✅, далее Фаза 3 (AI-интеграция)
**Фаза MVP:** Базовый функционал + авторизация + расширенный функционал готовы
**Последнее обновление:** 2026-01-15
---
@ -49,6 +49,15 @@
| 2026-01-14 | **Infra:** Добавлен KEYCLOAK_REALM_URL в k8s/backend-deployment.yaml |
| 2026-01-14 | **Keycloak Theme:** Кастомная тема для Keycloak (MUI стиль) — keycloak-theme/ |
| 2026-01-14 | **CI/CD:** Добавлены steps build-keycloak-theme и deploy-keycloak-theme в .drone.yml |
| 2026-01-14 | **Фаза 2:** Цветовая маркировка — ColorPickerCell, цветной фон строки, фильтр по цвету |
| 2026-01-14 | **Фаза 2:** Комментарии — backend модуль (entity, service, controller, миграция), frontend (CommentsPanel, раскрывающаяся панель) |
| 2026-01-14 | **UX:** Хук useAuth для данных пользователя, имя в header, автор комментариев из Keycloak |
| 2026-01-14 | **Фаза 2:** Управление командой — backend (TeamMember entity, CRUD, summary), frontend (TeamPage, табы навигации) |
| 2026-01-14 | **Фаза 2:** Динамические роли — Role entity вместо enum, CRUD API (/api/roles), RolesManager UI, миграция данных |
| 2026-01-15 | **Testing:** E2E тесты Фазы 2 (Playwright) — 54 теста покрывают D&D, цвета, комментарии, команду |
| 2026-01-15 | **Testing:** Рефакторинг тестов на data-testid — стабильные селекторы вместо tbody/tr/.nth() |
| 2026-01-15 | **Testing:** Добавлены data-testid во все компоненты фронтенда (IdeasTable, TeamPage, CommentsPanel и др.) |
| 2026-01-15 | **Docs:** Создан E2E_TESTING.md — гайд по написанию e2e тестов, соглашения по data-testid |
---
@ -56,7 +65,7 @@
> Смотри [ROADMAP.md](ROADMAP.md) для полного плана разработки
**Сейчас:** Фаза 2 — цветовая маркировка, комментарии, управление командой
**Сейчас:** Фаза 2 завершена ✅ — далее Фаза 3 (AI-интеграция)
---
@ -70,6 +79,7 @@ team-planner/
├── REQUIREMENTS.md # Требования к продукту
├── ARCHITECTURE.md # Архитектура, API, UI
├── ROADMAP.md # План разработки
├── E2E_TESTING.md # Гайд по E2E тестированию ✅
├── docker-compose.yml # PostgreSQL и сервисы
├── .drone.yml # CI/CD pipeline (Drone CI)
├── keycloak-theme/ # Кастомная тема Keycloak ✅
@ -84,10 +94,10 @@ team-planner/
├── tests/
│ ├── package.json # Зависимости для тестов
│ ├── playwright.config.ts # Конфигурация Playwright
│ └── e2e/ # Playwright E2E тесты
│ └── e2e/ # Playwright E2E тесты (54 теста) ✅
│ ├── auth.setup.ts # Авторизация для тестов (Keycloak)
│ ├── phase1.spec.ts # Тесты Фазы 1 (11 тестов)
│ └── phase2.spec.ts # Тесты Фазы 2 (D&D, цвета, комментарии, команда)
│ ├── phase1.spec.ts # Тесты Фазы 1 (17 тестов)
│ └── phase2.spec.ts # Тесты Фазы 2 (37 тестов — D&D, цвета, комментарии, команда)
├── backend/ # NestJS API
│ ├── src/
│ │ ├── auth/ # Модуль авторизации ✅
@ -99,7 +109,7 @@ team-planner/
│ │ │ │ └── reorder-ideas.dto.ts # DTO для изменения порядка
│ │ │ ├── ideas.controller.ts # PATCH /ideas/reorder
│ │ │ └── ideas.service.ts # reorder() с транзакцией
│ │ ├── team/ # Модуль команды (Фаза 2)
│ │ ├── team/ # Модуль команды (Фаза 2) — TeamMember + Role entities
│ │ ├── comments/ # Модуль комментариев (Фаза 2)
│ │ └── ai/ # AI-оценка (Фаза 3)
│ └── ...
@ -114,13 +124,21 @@ team-planner/
│ │ │ ├── columns.tsx # Колонки + drag handle
│ │ │ └── ...
│ │ ├── IdeasFilters/ # Фильтры
│ │ ── CreateIdeaModal/ # Модалка создания
│ │ ── CreateIdeaModal/ # Модалка создания
│ │ ├── TeamPage/ # Страница команды (Фаза 2)
│ │ │ ├── TeamPage.tsx # Табы: Участники / Роли
│ │ │ ├── TeamMemberModal.tsx # Модалка участника
│ │ │ └── RolesManager.tsx # Управление ролями
│ │ └── CommentsPanel/ # Комментарии к идеям
│ ├── hooks/
│ │ └── useIdeas.ts # React Query хуки + useReorderIdeas
│ ├── services/
│ │ ├── api.ts # Axios + auth interceptors
│ │ ├── keycloak.ts # Keycloak instance ✅
│ │ ── ideas.ts # API методы + reorder()
│ │ ── ideas.ts # API методы + reorder()
│ │ ├── team.ts # API команды
│ │ ├── roles.ts # API ролей
│ │ └── comments.ts # API комментариев
│ ├── store/
│ │ └── ideas.ts # Zustand store
│ └── types/
@ -166,3 +184,4 @@ team-planner/
- **Keycloak Theme:** Кастомная тема `team-planner` в стиле MUI, образ `registry.vigdorov.ru/library/keycloak-team-planner`
- **Production URL:** https://team-planner.vigdorov.ru (добавлен в Valid redirect URIs и Web origins клиента Keycloak)
- **CI/CD:** Drone CI (.drone.yml) — сборка backend/frontend/keycloak-theme, деплой в K8s namespace `team-planner`
- **E2E тесты:** Все компоненты имеют `data-testid` для стабильных селекторов. Перед написанием тестов читай E2E_TESTING.md!