Как я писал свою crm

Данный сказ о том, как я потратил кучу времени на разработку своей crm, которая до сих пор не приносит ни малейшего выхлопа. Не повторяйте моих ошибок.

В закладки

Как то раз, в одной компании, в которой я работал, появилась необходимость в системе обработки заявок от клиентов (штатный персонал ~1к человек). Почему-то руководством не рассматривался вариант использования готового решения. Нам нужны были те же яйца, только в профиль.

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

Скажу так: данная система была сделана за год и она отлично работает по сей день. Надо сказать, что на данный момент там около 80к заявок.

Но не в этом суть.

Все, что я умею - это программировать. Даже идеи генерировать не могу. Потому для себя и в целях практики решил сделать именно систему для решения заявок. С базой клиентов, различными правами доступа, какие-то, может, расчетные дела и т.д.

Так родилась система Jet Desk

На данном этапе, а это уже спустя год, я зациклился на улучшении архитектуры и практически не наращиваю функционал. Есть система заявок, роли участников, история действий над заявкой для отслеживания времени реакции, теги и поиск по ним, статусы заявок и различные изменения этих статусов (назначение, отказ, утверждение...). Так же есть база клиентов с контактными данными.

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

Натянул покрасивее дизайн (bootstrap), добавил pure json, перекинул все на MVC, сделал базовый функционал на Android (java) и застрял. То ли желание пропало, то творческие силы иссякли.

Подразумевалось сие творение для продажи в компании, но вот думаю перевести на open source. Если у кого-то есть свои мысли - буду рад.

Позже, думаю буду ещё писать про это творение, но пока данный пост - как бы крик души и поиск советов для дальнейшего развития системы.

Спасибо, что дочитали.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Юрий Козин", "author_type": "self", "tags": [], "comments": 2, "likes": -1, "favorites": 0, "is_advertisement": false, "subsite_label": "tribuna", "id": 91290, "is_wide": false, "is_ugc": true, "date": "Wed, 06 Nov 2019 08:42:22 +0300", "is_special": false }
0
{ "id": 91290, "author_id": 362907, "diff_limit": 1000, "urls": {"diff":"\/comments\/91290\/get","add":"\/comments\/91290\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/91290"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116, "last_count_and_date": null }
2 комментария
Популярные
По порядку
–1

Как то не хорошо получилось, статью то я не дописал....
Ждите тогда продолжения!

Ответить
0

Отредактировал-таки, дополнив недописанное.

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }