Язык программирования для crm + видео обзор

Как я начал разрабатывать CRM-систему

С 2008 года я занимаюсь программированием, изначально я разрабатывал сайты. Но мое мнение о сайтах сейчас не лучшее, с точки зрения разработки, обязательно напишу об этом статью. А пока вернусь к тому, как я начал разрабатывать CRM.

Это был уютный вечер 19 августа 2017 года, когда ко мне обратились в третий раз за неделю по поводу разработки индивидуальной CRM-системы. И тут я понял, что разрабатывать с нуля несколько проектов одновременно я просто не смогу. Поэтому я сел и решил написать собственную базу для разработки CRM-систем.

Началось все с выбора оформления, так как сам я больше люблю разработку и максимально предпочитаю не открывать Фотошоп и ни в коем случае не верстать (благо 8 лет опыта разработки позволяет отойти от верстки), то я выбрал уже готовый шаблон админки, и начал разрабатывать свой модуль CRM на базе фреимворка Yii2.

Первым делом была реализована система авторизации: вход, регистрация, восстановление пароля, уведомления и подтверждения на почту, учет количества попыток входа, reCaptcha и бан на полчаса, если слишком много попыток. В общем, получилась приятная и удобная авторизация, которую я теперь использую в проектах.

Язык программирования для crm

Язык программирования для crm

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

Язык программирования для crm

В данный момент ведется работа над стандартными модулями каталога и заявок. В одном из проектов, над которыми я сейчас тружусь для заказчиков, реализуется связка CRM-системы с IP-телефонией. Заказчик использует onlinePBX. И я обязательно расскажу, как прошла интеграция, когда все будет закончено. Об обновлениях и новинках с удовольствием буду сообщать. Также в планах реализовать пакетные решения для нескольких сфер деятельности, чтобы помочь автоматизировать процессы и сосредоточиться на заработке денег, а не на поиске doc или excel файлов по всему компьютеру, или стикеров с номером клиента.

Язык программирования для crm

Язык программирования для crm

По техническим характеристикам скажу кратко: nginx + php-frm, PHP7.1, PostgreSQL.

С огромным удовольствием помогу и отвечу на вопросы всех желающих. И буду рад новым знакомствам и сотрудничеству.

Источник

На чём лучше писать CRM-систему?

Время пришло, понадобилась CRM-система. Готовые ненужны.

Для бэкенда два варианта:

1. Python/Django. Здесь я спокоен. Куча проверенных временем батареек. Всё работает в промышленных масштабах.

И так, что же выбрать? Вот только не надо шуточек за 300, что нода только для чатиков.

P.S.: Может у кого-то был опыт, делать что-то подобное на node.js. Стоит оно того или нет? Или не заниматься фигнёй, бросать все эти модные штуки и брать проверенный временем инструмент.

UPD: Создатель Node.js: «Это далеко не лучшая система(node.js) для серверного софта.». В общем, если уж создатель на неё плюнул, то и мне нестоит это трогать. А свой выбор я уже сделал и это Rust. Да, я люблю приключения 😉 Python/Django.

Язык программирования для crm

Язык программирования для crm

Пиши на Java, Go или другом языке промышленном языке. Иначе ты уйдешь с проекта и что с ним дальше будет? Где они найдут человека на Django и Node.js?

Язык программирования для crm

Язык программирования для crm

понадобилась CRM-система. Готовые ненужны.

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

Язык программирования для crm

Шутка удалась. Он даже в версионирование зависимостей не может.

Язык программирования для crm

шо ты так быстро реинкарнируешься )

Язык программирования для crm

Стало ну очень интересно. Поделишься страшным юзкейсом?

Язык программирования для crm

Производительность особо неважна. Возможно в будущем понадобиться делать различные расчёты, а может даже и data mining. Вот тут то js и сольёт.

Язык программирования для crm

Сплошное УГ на php. Везде свои велосипеды. Да ещё плати за каждый чих. Уж лучше пилить свой.

Язык программирования для crm

Go или другом языке промышленном языке

Язык программирования для crm

C#/ASP весьма пригодны

Язык программирования для crm

И так, что же выбрать? Вот только не надо шуточек за 300, что нода только для чатиков.

Язык программирования для crm

Язык программирования для crm

Видно крутого профи.

Язык программирования для crm

Он даже в версионирование зависимостей не может.

Язык программирования для crm

Язык программирования для crm

Но ведь я не пишу на го =)

Язык программирования для crm

А подход типично гоферовский.

Язык программирования для crm

По теме топика. Django отлично подходит для написания CRM. Все ее возможности, как Class Based Views + для API взяли Django REST Framework. Для UI используем Vue.JS. В этой связке разработка идет очень быстро.

Первую версию своей CRM написали примерно за 1.5 месяца. Главное не забывать про тесты 🙂

Язык программирования для crm

Наконец нормальный ответ 🙂 Для фронта, тоже Vue.js планирую.

Язык программирования для crm

Руби — гражданин пхп, я не узнаю вас в гриме?

Язык программирования для crm

Лол. На чём же ты предлагаешь писать? На ассемблере?)

Язык программирования для crm

Если ты задаёшься вопросом на чём писать CRM, то её надо купить.

Язык программирования для crm

Возможно в будущем понадобиться делать различные расчёты, а может даже и data mining. Вот тут то js и сольёт.

Ты это будешь делать не в CRM, а сторонней тулзой\сервисом, которая будет подкачивать данные из БД в себя и писать результат обратно в БД. ЯП вьюшки тебе вообще побоку будет.

Язык программирования для crm

Возможно, не так понят вопрос. Понятно, что Django идеально подходит.

Меня больше интересует опыт написания CRM на node.js. В связи с тем, что хотелось бы перейти полностью на js. Хотелось услышать мнения людей, кто пробовал реализовывать подобное на node.js.

Язык программирования для crm

Ну а джанго это проверенная временем технология, которая просто работает.

Язык программирования для crm

А сколько конкретно лет с рождения инструмента должно пройти, чтобы вы, клоуны, перестали считать его «хипстерским» и срать об этом на каждое упоминание на форуме?

Язык программирования для crm

Что тебя останавливает то? В мире жс для чего только не сделали либ, возможностей сделать свою особенную CRM миллион. Это ничем не отличается от любого другого проекта.

Язык программирования для crm

Чтобы считаться не хипстерской, технология должна быть серьёзной, чего не скажешь о ноде. ИМХО.

Язык программирования для crm

А почему она несерьёзная? 😀 (Ничего ни про что не знаю, просто в посте субъективизм без обоснования)

Честно говоря, глянул на первый попавшийся орм-фреймворк на ноде-жс: http://docs.sequelizejs.com/ Честного говоря, это капец. Про описание моделей молчу. Гребучие промисы, вездесущие замыкания. Чтобы вытащить что-то из базы, сериализировать в жсон и отдать, надо будет штук 50 вложенных коллбеков.

Язык программирования для crm

не применяется в серьёзных проектах

Где-то пару лет назад, IBM выкатила заявление, что нода готова к промышленному использованию.

Язык программирования для crm

Язык программирования для crm

Не, думаю COBOL идеально подойдёт 🙂

Язык программирования для crm

Язык программирования для crm

А ты достаточно серьёзный, чтобы такие заявления делать?

Язык программирования для crm

Вроде слышал, что кто то пилит подобное дело на лиспе

Язык программирования для crm

Язык программирования для crm

А сколько конкретно лет с рождения инструмента должно пройти, чтобы вы, клоуны, перестали считать его «хипстерским» и срать об этом на каждое упоминание на форуме?

Как минимум 20. А NodeJS сейчас всего 8 лет, за которые уже прошел один раскол сообщества (IO.JS vs NodeJS) и сейчас идет 2 (Ayo vs NodeJS). Это как бы стабильностью назвать никак нельзя.

На протяжении последних 5 лет я довольно плотно работаю с NodeJS. Знаю ее плюсы и минусы, но писать CRM на ней я не советую. Нода хороша для очень небольших проектов или микросервисов. Но даже при этом я не рекомендую писать на чистом JS, берите TypeScript хотябы. Дабы избежать детских ошибок вида

А если прямо, то берите Python / PHP / Ruby (и если есть много времени то конечно Java) и пишите свою CRM. Ведь CRM по большей части это CRUD операции. Да в современном мире CRM сейчас это SPA приложение, но это как бы не жесткое требование. У нас какие-то страницы построены как SPA, какие-то как и раньше рендерим на сервере. Тут не надо фанатеть, надо смотреть как решить задачу эффективно.

Если конечно у вас там лютый стартап и через 2 недели вы выкинете ваш проект, то пишите на чем угодно.

Язык программирования для crm

HTML + CSS + JS + PHP + *SQL.

Если нужно кататься на самокатах с бородой и смузями – то очевидно, что нужно быть Node.JS. Если быть ненормальным – то Python/Django. А нормальные пацаны берут и не грузят Веб питонами да нодами, а все делают по запросно-ориентированной методологии.

Чтобы вытащить что-то из базы, сериализировать в жсон и отдать, надо будет штук 50 вложенных коллбеков.

Язык программирования для crm

если нужна будет производительность

Источник

Знакомство с языком программирования Deluge. Создание произвольной функции в системе Zoho CRM

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

Доработки системы Zoho CRM производятся на языке Deluge, разработанном самой компанией Zoho. Deluge интегрирован также в продукт Zoho Creator, но в данной статье мы рассмотрим использование языка именно в Zoho CRM.

Что такое Deluge?

Deluge (Data Enriched Language for the Universal Grid Environment ) — это online язык программирования, который помогает добавлять различные типы бизнес-логики в произвольные функции и делать их более мощными.

Deluge и ZOHO CRM

Custom function — это произвольная функция, которая позволяет дорабатывать поведение системы в соответствии с пожеланиями пользователей, не завязываясь на какие-то предустановленные настройки.

Язык программирования для crmС чего я предлагаю начать знакомство с этим языком? На сайте компании Zoho есть много примеров его использования, но я решил привести реальный пример из своей практики. Очень простой и наглядный пример, в котором будут видны основные моменты работы с языком и демонстрация его возможностей.

Описание примера

Мы рассмотри, как создается функция, которая была реализована на одном из проектов. Функция называется Contacts Phone Validate. Задача функции состоит в том, чтобы проверять правильность заполнения пользователями номера телефона контактного лица в Zoho CRM.

Функция должна работать следующим образом:

Настройка функции производится непосредственно в учетной записи пользователя Zoho CRM и доступна пользователям с правами управления рабочим процессом Workflow.

Сразу хочу обратить ваше внимание на то, что ввиду неидеальной локализации системы Zoho CRM мы будем рассматривать настройку функции на английском языке.

Добавление произвольной функции

Добавление произвольной функции включает в себя этапы:

1. Программирование функции

Для того, чтобы запрограммировать произвольную функцию выполните следующие действия:

1. Зайдите в Setup > Automation > Workflow > Custom Function
2. На странице Custom Functions нажмите Configure Custom Function
3. Далее нажмите Write your own

Язык программирования для crm

4. В открывшемся окне выполните следующие действия:

В нашем примере функция выглядела следующим образом. Объявляем переменные:

Проверяем корректность формата ввода и территориальную принадлежность:

Проверяем на наличие ошибок:

Если с номером все в порядке, то проверяем на наличие дубликатов:

6. После написания функции необходимо проверить код. Нажмите Save and Execute Script желаете проверить работу скрипта введя значения аргументов в всплывающем окне. Если ошибок нет, ваш скрипт готов к ассоциированию с правилом рабочего процесса Workflow.

Язык программирования для crm

7. Нажмите Save для сохранения скрипта.

Язык программирования для crm

2. Связывание функции с правилом рабочего процесса Workflow Rules

Чтобы связать пользовательскую функцию с правилом рабочего процесса зайдите в Setup > Automation > Workflow Rules, далее нажмите Create Rule.

Выполните следующие действия:

1. Выберите необходимый модуль из раскрывающегося списка (в нашем случае это модуль Contacts), задайте название и описание правила.

Язык программирования для crm

2. В разделе Rule Trigger выберите пункт Create or Edit

Язык программирования для crm

3. В разделе Rule Criteria устанавливаем критерии
4. В разделе Actions выберите Call Custom Function

Теперь наша функция связана с правилом рабочего процесса Workflow, и при вводе неверного формата телефона, или при дублировании номера пользователь получает сообщение об ошибке.

Заключение

Мы увидели, как с помощью языка Deluge создать в Zoho CRM функцию и как эта функция работает внутри системы. Создание функции на языке Deluge — не сложная вещь, которая позволяет дорабатывать поведение системы Zoho CRM в соответствии с вашими пожеланиями и значительно расширяет возможности программы.

Об использовании Deluge в другом продукте компании Zoho — Zoho Creator я расскажу уже в следующей статье.

Источник

На чём писать CRM?

Привет друзья!
Я изучаю этот вопрос, интересно мнение сообщества.

Предполагается создание модульной системы, набор модулей выбирается под задачи, телефония, почта. В общем-то стандартный набор. Готовые решения изучаем, но наш случай, когда специфика очень большая, в основе логики.

В общем, нужно на ёлку залезть и не поцарапаться.

Язык программирования для crm

Язык программирования для crm

Язык программирования для crm

Язык программирования для crm

Язык программирования для crm

Пишите на том, что лучше всего знайте. Это первое и единственное что нужно учитывать.

Уровень вхождения. Специалисты не должны быть на «вес золота».

Открываем hh.ru по Вашему региону и ищем резюме с ключевыми словами C#, Java, PHP и т.д. Исходя из количества потенциальных кандидатов и их запросов понимаем будут ли они на «вес золота» или нет.

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

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

Разрабатывая любое десктопное приложение рано или поздно Вы столкнетесь с проблемой его корректной работы на разных машинах. К примеру, создали Вы програмку под Windows. На одной машине с Win 7 она работает прекрасно, а на Win 7 SP 1 уже выдает какую-то ошибку. Еще пример, на 5 машинах стоит одинаковая ОС. На 4-х из них Ваша программа работает прекрасно, а на 5-й какое-то там окно не отображается. Почему так? Надо садиться и разбираться, копаясь конкретно в настройках этой машины, выесняя что там не так, чего там не стои или стоит лишнего.

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

Источник

Знакомство с Oracle Siebel CRM

Эта статья пишется для того, чтобы дать представление о довольно специфическом программном комплексе, который используется во многих крупных предприятиях по всему миру, но при этом остается малоизвестным широкому кругу IT-специалистов, даже в сравнении с подобными ему продуктами, как, например, SAP.
Доступной литературы по ней довольно немного, или она настолька туманна и запутанна, что человеку «с улицы» может быть нелегко понять, что это вообще такое. Здесь мы попробуем прояснить этот вопрос.

Весь этот комплекс я буду называть просто Siebel, официально он называется Oracle Siebel CRM. Название Siebel представляет собой фамилию основателя компании (Thomas Siebel). В 2006 году компания была продана корпорации Oracle.

Siebel в первую очередь представляет собой систему управления взаимоотношениями с клиентами (Customer Relationship Manаgement — CRM). Эта система может быть установлена во множестве уже готовых «из коробки» конфигураций, как-то Siebel Call Center, Siebel Finance, Siebel Loyalty (с движком для системы программ лояльности клиентов), Siebel Hospitality (для гостиничного бизнеса) и многих других. Тем не менее, потребители продуктов Siebel (обычно это достаточно крупные компании, работающие по крайней мере с десятками тысяч клиентов), как правило, требуют «заточки» системы под нужды не только отрасли, но и конкретного предприятия. Поэтому создатели системы старались обеспечить максимальную гибкость настройки и разработки.

С точки зрения пользователя (сотрудника компании-заказчика) Siebel, как декларируется, представляет собой практически zero-footprint application, т.е для работы не требуется установка какого-то специального клиента. Работа с Siebel осуществляется просто в окне Internet Explorer. На самом деле при первом обращении к серверу устанавливаются соответствующие ActiveX компоненты, обеспечивающие действия с элементами управления.
К сожалению, на данный момент другие броузеры (кроме IE) не поддерживаются. Как легко понять, это привязывает пользователей к Windows (что касается серверов Siebel, то они могут работать как под Windows, так и под Linux, а также Solaris, HP-UX и т.д.).
Графический интерфейс пользователя выглядит примерно так:Язык программирования для crm

Разумеется, доступны модули поддержки множества языков, включая русский.

Основной объект GUI Siebel — так называемый апплет. Это часть экрана, отображающая таблицу (list-applet) или данные из одной записи в виде формы (form-applet). Апплет обычно содержит меню и элементы управления в виде кнопок на экране. С их помощью пользователь добавляет или удаляет записи, совершает запросы (query) и другие действия, например, запуск какого-либо бизнес-процесса. Как уже говорилось, Siebel представляет огромные возможности для кастомизации, ограниченные разве что фантазией заказчика/разработчика. На картинке мы можем видеть один лист-апплет и один форм-апплет.
Язык программирования для crm

Здесь мы не можем вдаваться в тонкости работы с GUI, лучше опишем, как все это реализовано технически.

Как уже стало понятно, Siebel в первом приближении представляет собой некую графическую надстройку над БД, работающую, как веб-приложение. Базой может быть не только Oracle, но и, например, MS SQL Server или что-то еще. При установке системы автоматически создается огромное количество таблиц — создатели старались включить в комплект все, что кому-то может понадобиться. Тем не менее, всегда можно добавить и кастомные таблицы и колонки. Подавляющая часть информации о конфигурации самого Siebel (списки элементов GUI, кастомные скрипты, взаимосвязи между объектами) также хранится в той же базе, причем там может находиться множество репозиториев (версий конфигурации Siebel) сразу. Тем не менее, та конфигурация, которая реально используется сервером в данный момент, должна быть скомпилирована в специальный файл с расширением SRF. Без этого файла сервер работать не может.

Серверы Siebel объединяются в логические группировки (Enterprises). Работой энтерпрайза управляет служба под названием Siebel Gateway Name Server. К этому серверу обращается веб-сервер (Оracle, IIS..), снабженный специальными «расширениями» (SWSE — Siebel Web Server Extensions). Таковы основные элементы среды Siebel.

Основной инструмент разработчика Siebel — программа под названием Siebel Tools, которая и осуществляет компиляцию.
Язык программирования для crm

Язык программирования для crm

В простых случаях разработка осуществляется декларативно, посредством «перетаскивания мышкой» ЭУ GUI на форму и заполнения соответствующих полей данными, наподобие того, как создается приложение Windows Forms в Visual Studio. Для программирования более сложного поведения системы обычно используется либо встроенный язык (фактически это JScript или VBScript, на выбор разработчика), либо графический Workflow Designer.
Язык программирования для crm
Основной инструмент отладки — Siebel Dedicated Web Client (на жаргоне его называют «толстым клиентом», в отличие от «тонкого клиента», с которым работают пользователи работающей системы). Несмотря на название, «толстый клиент» представляет собой некий мини-сервер Siebel, запускаемый, как и Siebel Tools, на машине разработчика. Обычно работа разработчика представляет собой последовательность следующих действий:

Источник

Видео

С чего начать разработку CRM-системы?

С чего начать разработку CRM-системы?

Разработка CRM системы на python, django - 03 Базовая структура, первая вьюха, первые модели

Разработка CRM системы на python, django - 03 Базовая структура, первая вьюха, первые модели

Разработка CRM-системы на заказ

Разработка CRM-системы на заказ

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 1

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 1

Бесплатная CRM навсегда (про Bitrix24)

Бесплатная CRM навсегда (про Bitrix24)

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 5

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 5

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 2

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 2

Что такое CRM? Простое объяснение как работает CRM система

Что такое CRM? Простое объяснение как работает CRM система

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 4

Программирование. Практика C#. Компьютерное моделирование и CRM система. День 4

Обзор CRM-системы LP-CRM ver 3.0

Обзор CRM-системы LP-CRM ver 3.0
Поделиться или сохранить к себе:
Добавить комментарий

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