Разработка канбан доски, для своей CRM системы
Уже две недели я использую свою проприетарную CRM систему. Недавно я все таки решился внести дальнейшие модернизации.
Я постоянно забываю ВСЕ на свете!
Мне постоянно необходимо иметь маленькую записную книжку, что бы делать пометки на день. Но согласитесь, что расходовать ценные лесные ресурсы ради того, чтобы бороться с моей рассеянностью страшно расточительно.
Поэтому первая модернизация напрашивается сама собой. Мне необходимо сделать список задач. Для большего удобства реализовать возможность привязки этого списка к другим сущностям.
1. Разработаем схему моделей Канбан доски
Если вы читали мою предыдущую статью, то примерно знаете как построена моя CRM система. У меня есть несколько важных моделей Customer и Project. Клиент должен существовать независимо от проекта.
Зачем клиенту проект, если ему надо сделать пару мелких задач по дизайну.
Я решил сделать канбан доску с настраиваемыми вкладками. Например, доска задач может содержать вкладки:
- Новые,
- В работе,
- На тестировании,
- Выполнены и тд.
Соответственно приходит в голову такая схема:
Из схемы понятно, что задачи (task) мы будем крепить к вкладкам (tab), а вкладки к доскам (board). А вот уже доски мы можем крепить к клиентам (customer) или проектам (project).
Чаще всего в других CRM системах задачи крепят к проектам. Но как я и говорил, клиент должен жить независимо. Я не хочу создавать проект по поводу и без. А так клиенту можно сделать доску, где будут храниться общие задачи, а проекту отдельную.
2. Дизайн и интерфейс Канбан доски
Интерфейс я сделал с помощью Jquery UI. Использую Drag and Drop, дай господь здоровья автору данной статьи. Она помогла быстро войти в курс дела. В идеале конечно рендерить канбан доску полностью на фронте через Angular или Vue, но я не фронтер. И я не планирую усложнять себе жизнь).
Вот что у меня получилось
Доска достаточно простая, не учитывается очередность задач, ввиду бесполезности и трудоемкости сия действия. Обновление доски асинхронное по вкладкам. То есть после перетаскивания задачи, выполняется AJAX запрос и во вкладке обновляются задачи.
Это быстрее чем обновлять всю доску.
Управление доской
Управление досками задач простое. Есть основные настройки, где можно дать доске имя и назначить сущностям и управление вкладками. Для каждой вкладки ведется подсчет задач.
Окно создание вкладки
Вкладки создаться быстро, я добавил предварительные настройки, что бы быстро заполнять поля вкладок. То есть я добавил самые часто создаваемые вкладки.
В целом это вся модернизация. Спасибо что читали, до новых встреч!