Свой Трекер с преферансом и поэтессами
С 1 июля Yandex Tracker стал чересчур платным: теперь даже за одного пользователя нужно платить. Для маленьких проектов и личного использования он резко перестал быть привлекательным.
А мы уже некоторое время разрабатываем CRM-систему с BPMN-флоу под бизнес-процессы. В ней уже есть пользователи, роли и разрешения, история и аудит, комментарии, аттачи. Очень подходящий набор для трекера.
Первый MVP собрался буквально за сутки. Базовые потребности закрылись сразу: есть заголовок и описание задачи, типы задач, у каждого типа свой флоу в BPMN, списки, сохраняемые фильтры, аттачи, история изменений, уведомления через n8n и комментарии. К комментариям тоже есть аттачи.

Реализация оказалась достаточно удачной и сразу рабочей.
Упрощения
Я принял несколько упрощающих правил для MVP.
Статусы задач - это просто строки, которые из BPMN приезжают в интерфейс. На кнопках переходов выводится имя текущего элемента BPMN, который ждет действий: UserTask, Event или Message, которые еще не случились.
Резолюция - тоже просто строка. Если она не пустая, задача считается закрытой, это влияет только на фильтр и отображение.
Для workflow достаточно небольшого набора service tasks: SetStatus, SetResolution, ClearResolution, Notify, Assign. Потом их можно будет расширить для более сложных действий, если понадобится.

Из-за этих упрощений в сочетании с BPMN, конечно, можно создавать разные экзотические состояния, зато не нужно нигде держать отдельные списки статусов и резолюций. Достаточно аккуратно поддерживать BPMN и все будет ок. Пока проект маленький, этого хватает.
Проекты и доступ
Еще сразу прикрутил проекты с правилом, что задача всегда принадлежит одному проекту. Поэтому дефолтный проект есть всегда, остальные можно добавлять и удалять.
Трекер закрыт отдельной ролью. Он не должен смешиваться с правами автомобильных заявок, клиентских экранов или админских функций. Пермишены пока в домен не добавлял, но в будущем это не сложно будет сделать, вся инфраструктура уже есть.
Что получилось
Получился упрощенный трекер задач для нескольких проектов, который мы уже используем для работы над CRM и самим трекером:
- задачи живут в проектах;
- у задач есть типы;
- у каждого типа свой BPMN-флоу;
- есть списки и сохраняемые фильтры;
- есть комментарии и вложения;
- вложения есть и у комментариев;
- есть история изменений;
- есть уведомления через n8n;
- есть роли и ограничения доступа.

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