Свой Трекер с преферансом и поэтессами

  • tracker
  • bpmn

С 1 июля Yandex Tracker стал чересчур платным: теперь даже за одного пользователя нужно платить. Для маленьких проектов и личного использования он резко перестал быть привлекательным.

А мы уже некоторое время разрабатываем CRM-систему с BPMN-флоу под бизнес-процессы. В ней уже есть пользователи, роли и разрешения, история и аудит, комментарии, аттачи. Очень подходящий набор для трекера.

Первый MVP собрался буквально за сутки. Базовые потребности закрылись сразу: есть заголовок и описание задачи, типы задач, у каждого типа свой флоу в BPMN, списки, сохраняемые фильтры, аттачи, история изменений, уведомления через n8n и комментарии. К комментариям тоже есть аттачи.

Список задач трекера с фильтрами, типами, статусами, резолюциями и датами обновления
Список задач трекера с фильтрами, типами, статусами, резолюциями и датами обновления

Реализация оказалась достаточно удачной и сразу рабочей.

Упрощения

Я принял несколько упрощающих правил для MVP.

Статусы задач - это просто строки, которые из BPMN приезжают в интерфейс. На кнопках переходов выводится имя текущего элемента BPMN, который ждет действий: UserTask, Event или Message, которые еще не случились.

Резолюция - тоже просто строка. Если она не пустая, задача считается закрытой, это влияет только на фильтр и отображение.

Для workflow достаточно небольшого набора service tasks: SetStatus, SetResolution, ClearResolution, Notify, Assign. Потом их можно будет расширить для более сложных действий, если понадобится.

BPMN-флоу обычной задачи в SpiffArena: старт, работа, завершение и отмена
BPMN-флоу обычной задачи в SpiffArena: старт, работа, завершение и отмена

Из-за этих упрощений в сочетании с BPMN, конечно, можно создавать разные экзотические состояния, зато не нужно нигде держать отдельные списки статусов и резолюций. Достаточно аккуратно поддерживать BPMN и все будет ок. Пока проект маленький, этого хватает.

Проекты и доступ

Еще сразу прикрутил проекты с правилом, что задача всегда принадлежит одному проекту. Поэтому дефолтный проект есть всегда, остальные можно добавлять и удалять.

Трекер закрыт отдельной ролью. Он не должен смешиваться с правами автомобильных заявок, клиентских экранов или админских функций. Пермишены пока в домен не добавлял, но в будущем это не сложно будет сделать, вся инфраструктура уже есть.

Что получилось

Получился упрощенный трекер задач для нескольких проектов, который мы уже используем для работы над CRM и самим трекером:

  • задачи живут в проектах;
  • у задач есть типы;
  • у каждого типа свой BPMN-флоу;
  • есть списки и сохраняемые фильтры;
  • есть комментарии и вложения;
  • вложения есть и у комментариев;
  • есть история изменений;
  • есть уведомления через n8n;
  • есть роли и ограничения доступа.
Карточка задачи с описанием, участниками, проектом, workflow, аттачами, комментариями и историей
Карточка задачи с описанием, участниками, проектом, workflow, аттачами, комментариями и историей

Для маленького проекта этого оказалось достаточно, задел на расширение и усложнение функционала большой.