Поработав 2-3 месяца со своей, самописной CRM системой я понял, что мне чего-то не хватает. В первую очередь меня удручал дизайн. Он не так уж и плох, но ночью белый фон режет глаз.
Далее я понял что табличное представление не всегда удобно. Если для модуля клиентов все норм, там много информации, то в проекте это не очень удобно. Далее опишу на скринах что изменилось.
1. Добавил темы оформления
Темная тема
Темная тема автоматически применяется в темное время суток. Это позволяет снизить нагрузку на глаза. Автоматическая смена тем доступна в настройках аккаунта пользователя.
Светлая тема
Светлая тема подходит для дневного использования. Мне лично нравится темное исполнение. Но каждый пользователь может иметь своё мнение на этот счет.
2. Изменена структура системы
Первая версия CRM была больше пилотной. Там проверялось целесообразность разработки подобного ПО. Когда я убедился, что она нужна, то пришло время модернизации.
Я изменил структуру системы. Вместо сайтбара с меню модулей, я поставил классическое меню. Его вполне хватает и им проще пользоваться. Дополнительное меню в сайтбаре я разместил в настройках модулей. Там оно весьма кстати.
Структура форм и списков тоже поменялась. Все показывать не буду, так как очень много скринов получиться, но основные типы страниц, пожалуйста:
Список (таблица) для отображения сущностей модуля
Это пример на основе модуля клиенты. В данный модуль я добавил аватар. Можно его загрузить, но я планирую сделать получение по URL, так например можно вытянуть аватарку из веб-версии Whatsapp, Telegram или с любого другого ресурса указав ссылку.
Добавил пару полей с адресом, что бы анализировать данные кто с какого города и из какого источника пришел. Так можно узнать продуктивность рекламных кампаний. Например, понять в каком городе лучше увеличить бюджет на рекламу.
По клике на почту откроется окно почтового клиента, если жмакнуть на телефон, то в телефоне откроется звонилка. Тут все стандартно. В листинге добавилось две зоны виджетов.
Верхняя зона виджетов для списка сущностей
Первая зона это ссылки. Я вывожу ссылку на создание create и ссылку на настройки модуля. Вторая зона отвечает за тип отображения. Типы могут быть заданы любые для каждого модуля. Каждый тип отвечает за partial (макет) списка.
Переключение вида листинга
Пока кастомный вид я сделал для проектов. Опять же сделан он для теста. Какие мне нужны виды и сколько я узнаю только в процессе эксплуатации данной CRM системы.
3. Более информативное ценообразование
В прошлой версии CRM системы я собирал смету просто добавляя услуги, остальное считала система. При этом изменения стоимости услуг не влияли на конечную стоимость в последствии. Так как расчет выполнялся после сохранения сметы и записывался в pivot таблицу. Помимо общей стоимости я вел запись стоимости каждой услуги на момент расчета.
Такая концепция позволяет сохранить данные в девственном виде. Согласитесь было бы неприятно поменять цену услуги с 500 на 800 руб, а потом увидеть что во всех сметах прошел перерасчет. В новой версии системы, я расширил статистику.
Листинг модуля сметы
Теперь я считаю не только общие доходы, платежи и остатки. Я добавил учет расходов, так как на каждой смете я оплачиваю услуги, например того же дизайнера. В связи с этим появилась возможность определять валовый доход и чистую прибыль. Дополнительно я поставил плитки с доходами прошлого и предыдущего месяца.
Но я подумал не только о себе любимом, но и о своих дорогих клиентах. Часто бывало, что, сбросив, смету с почасовыми расчетами меня постоянно спрашивали, а что сюда входит?
Вопрос разумный, но создавать новую услугу для каждого клиента со своим описание дело крайне неприятное. В итоге немного почесав репу я подумал - ведь все гениальное просто.
Я просто закреплю доску задач за сметой. Вернее канбан досок можно закрепить сколько угодно. В итоге я так и сделал.
Печать задач сметы
Теперь все довольны. Мне не нужно создавать кучу услуг, а клиент не задает лишние вопросы. Данный документ я печатаю вместе со сметой. Они идут комплектом.
4. Доработаны формы модулей
Для меня это была самая щепетильная тема. Первая версия системы хоть и была удобна, ей явно не хватало некого стандарта.
Я разработал отдельные виды форм, они достаточно абстрактны и могут быть внедрены в любой модуль. По сути вызываем фрагмент, задаем параметры и получаем готовую форму. Вот некоторые из них:
4.1 Форма выбора тега
Позволяет наглядно выбрать нужную сущность.
Есть быстрый переход на редактирование этих сущностей.
4.2 Форма для крепления связей
Данная форма позволяет закрепить или открепить связанный объект. Выпадающий список сверху позволяет помимо выбора искать сущности.
Так же возможен переход на редактирование через кнопку управление.
4.3 Select 2
Данную select2 форму можно использовать для крепления связей или вместо стандартного select
4.4 Форма для создания и крепления связей
Формально это копия формы 4.2 только она немного обрезана в функционале. Я ее использую для управления сущностями из других сущностей.
Например, это платежи, которые добавляются или удаляются в форме редактирования сметы. Платежи не имеют своего интерфейса в системе.
4.5 Richeditor
Тут я вселенную не изобрел, взял бесплатную версию TinyMce. Мне достаточно базового функционала. Он нужен, что бы более читаемо описать клиенту содержимое того или иного документа.
Скриншоты страниц форм
Клиенты - редактирование основных данных
Клиенты - крепление смет
Управление задачами
Итоги
Я потратил немного времени на модернизацию CRM системы. Теперь её использование стало более удобным и приятным. Конечно, есть еще много идей по модернизации.
За все время разработки этого проекта я приобрел немалый опыт. По-хорошему бы переписать бекенд с нуля, но данная система будет еще жить достаточно долго, так как в тираж я ее запускать не буду.
Это ПО для внутреннего использования.
А сама суть зачем я вам это рассказываю достаточно проста! Не бойтесь экспериментировать. Программирование - это автоматизация всех рутинных процессов. Используйте его по прямому назначению - не ссыте)
Всем спасибо, что читали, до новых встреч!