Skip to content

[Feature] Модуль управления командами, ресурсного планирования и визуализации активности #68

@soorq

Description

@soorq

Контекст

Для эффективного управления разработкой необходимо расширить систему от простых задач до управления ресурсами команд. Внедрение логики команд позволит группировать пользователей, отслеживать их доступность (отпуска, больничные) и текущую нагрузку. Добавление визуализации активности (Activity Graph), аналогичного GitHub, обеспечит прозрачность рабочего процесса и поможет в выявлении «бутылочного горлышка» в распределении задач.


Технические требования

  • Локация логики: src/teams, src/analytics
  • Инструменты: PostgreSQL (TimeScaleDB или агрегатные таблицы), CASL (для прав внутри команды), библиотеки графиков (для фронтенда).
  • Логика работы:
    1. Реализовать сущность Team и таблицу связей TeamMembers с ролями (Leader, Member).
    2. Разработать модуль Presence: поля vacation_start, vacation_end, is_unavailable в профиле пользователя или отдельной таблице.
    3. Создать агрегатор нагрузки (Workload): расчет соотношения активных задач (в статусе IN_PROGRESS) к общему числу Story Points пользователя.
    4. Реализовать сервис ActivityLog: запись событий (commit-like events) при каждом изменении статуса задачи или создании комментария.
    5. Подготовить API для отдачи данных в формате date: count для построения графика активности (Heatmap).

Цель и критерии приемки (Definition of Done)

  • База: Миграции для таблиц teams, team_members, user_presence и activity_logs.
  • Функционал: Эндпоинты получения состава команды с вложенными данными о статусе присутствия и проценте загрузки каждого участника.
  • Функционал: API для графика активности, возвращающее данные за последние 365 дней.
  • Лимиты/SLA: Запрос на получение графика активности должен быть оптимизирован через материализованные представления (Materialized Views) или кеширование (Redis), время ответа < 200мс.
  • Интеграция: Связать ActivityLog с существующими сервисами задач через Domain Events или Hooks.

Важные указания

  • Производительность: Лог активности может быстро расти; необходимо предусмотреть партиционирование таблицы activity_logs по датам.
  • Ошибки: При попытке назначить задачу на пользователя в отпуске возвращать Warning в теле ответа или блокировать операцию (в зависимости от настроек команды).
  • Безопасность: Данные об отпусках и личной активности должны быть доступны только внутри команды или администраторам согласно правилам CASL.

Metadata

Metadata

Assignees

No one assigned

    Labels

    api-designEndpoint and CRUD'sdocumentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions