Пришел сентябрь. И быстро ушел. Но осталось полностью работающее приложение Errands.
Интересное решение, которое здесь реализовали:
- Любая заявка - это задача. Каждая задача - это бизнес-процесс. Потому что у него есть начало (документ-триггер). Есть исполнитель. У исполнителя есть набор компетенций (декларативный стиль управления) или инструкций (императивный стиль управления). Есть окончание (документ на выходе).
- Если процедура выполнения задачи в процессе исполнения подразумевает передачу части своего выполнения другому исполнителю - задача должна дробиться. Для этого реализованы вертикальные и горизонтальные связи между задачами.
- При вертикальной связи: есть суперзадача, у нее может быть много подзадач. Суперзадача не может получить статус "выполнена" пока не выполнены все подзадачи. У суперзадачи может быть одна или много подзадач. У подзадачи может быть только одна суперзадача.
- При горизонтальной связи: есть задача-до, у нее может быть много задач-после. Задача-после не может получить статус выполнена, пока не выполнена задача-до. У задачи-до может быть одна или много задач-после. У задачи-после может быть только одна задача-до.
- Каждая задача может иметь сразу много связей и много ролей.
Для реализации этих принципов была создана структура БД, в которой связи один-ко-многим применяются внутри одной таблицы.
В каждой задаче можно делать комментарии. Их увидят все участники задачи.
Задача может иметь неограниченное число меток. Эти метки служат для фильтра задач на канбан-доске.
Канбан-доска разбита на зоны. Каждая зона - это статус задачи:
- Получено
- Принято
- Не принято
- Выполнено
- Проверено
- Отказано
- Утверждено
- Провалено
Изменить статус задачи можно простым перетаскиванием карточки из одной зоны в другую. (Это мне особенно нравится))). У каждого участника своя роль и ограничения, связанные с этой ролью. Например, исполнитель не может утвердить задачу.
В общем, классное получилось приложение. В нем мы реализовали еще очень много фишек. Но рассказывать про них - это нужно отдельное видео снять))).
Теперь мы с фулстеком задачи ставим уже в Errands. Планирование стало прозрачнее. Появилось понимание - на какой стадии выполнения сейчас находится проект/задача.
Errands не решает задачи, он лишь инструмент, с которым приятно выполнять задачи. А ведь, если приятно - то и настроение лучше, и производительность выше.
"В конце концов, ведь всё ради лайков" ⓒЯндекс.Практикум
Продолжение...