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
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions