№2 Разработка канбан доски, для своей CRM системы

№2 Разработка канбан доски, для своей CRM системы

Опубликовано:
10.06.2021 в 00:30
Категория:
Предисловие: Это вторая часть статьи по самописной CRM системе, внедрил некоторые новшества и решил рассказать о них.

Уже две недели я использую свою проприетарную CRM систему. Недавно я все таки решился внести дальнейшие модернизации.

Я постоянно забываю ВСЕ на свете!

Мне постоянно необходимо иметь маленькую записную книжку, что бы делать пометки на день. Но согласитесь, что расходовать ценные лесные ресурсы ради того, чтобы бороться с моей рассеянностью страшно расточительно.

Поэтому первая модернизация напрашивается сама собой. Мне необходимо сделать список задач. Для большего удобства реализовать возможность привязки этого списка к другим сущностям.

1. Разработаем схему моделей Канбан доски

Если вы читали мою предыдущую статью, то примерно знаете как построена моя CRM система. У меня есть несколько важных моделей Customer и Project. Клиент должен существовать независимо от проекта. 

Зачем клиенту проект, если ему надо сделать пару мелких задач по дизайну.

Я решил сделать канбан доску с настраиваемыми вкладками. Например, доска задач может содержать вкладки: 

  • Новые, 
  • В работе, 
  • На тестировании, 
  • Выполнены и тд.

Соответственно приходит в голову такая схема:

Из схемы понятно, что задачи (task) мы будем крепить к вкладкам (tab), а вкладки к доскам (board). А вот уже доски мы можем крепить к клиентам (customer) или проектам (project).

Чаще всего в других CRM системах задачи крепят к проектам. Но как я и говорил, клиент должен жить независимо. Я не хочу создавать проект по поводу и без. А так клиенту можно сделать доску, где будут храниться общие задачи, а проекту отдельную.

2. Дизайн и интерфейс Канбан доски

Интерфейс я сделал с помощью Jquery UI. Использую Drag and Drop, дай господь здоровья автору данной статьи. Она помогла быстро войти в курс дела. В идеале конечно рендерить канбан доску полностью на фронте через Angular или Vue, но я не фронтер. И я не планирую усложнять себе жизнь).

Вот что у меня получилось

Доска достаточно простая, не учитывается очередность задач, ввиду бесполезности и трудоемкости сия действия. Обновление доски асинхронное по вкладкам. То есть после перетаскивания задачи, выполняется AJAX запрос и во вкладке обновляются задачи.

Это быстрее чем обновлять всю доску.

Управление доской

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

Окно создание вкладки

Вкладки создаться быстро, я добавил предварительные настройки, что бы быстро заполнять поля вкладок. То есть я добавил самые часто создаваемые вкладки.

В целом это вся модернизация. Спасибо что читали, до новых встреч!


Оцените данный материал

На еду автору

Буду крайне благодарен за любую копеечку :)