Как правильно разработать CRM-систему с нуля с архитектурной точки зрения?

Друзья, привет :) Некому бизнесу нужна полностью кастомная CRM-система, которая включает в себя некие базовые вещи(бухгалтерский учет, информация по ЛИДам, статистика прихода по ссылкам на сайт, заказы с сайта и процесс их реализации, расчеты заработной платы работников), а также специальные штуки(трекинг автомобилей доставки, авторизация менеджера занимающегося заказом). Клиент хочет хранить все в облаке, а в качестве средства реализации планируем использовать node.js / python(flask). БД - mongo. Сложилась масса вопросов в виду неопытности :
1) На сколько верным было решением использовать node.js и mongo?
2) Если мы храним данные в облаке, то где мы храним само приложения? Как мы получаем доступ к нему(по url?) ?
3) Сайтов у компании - масса, большая часть которых - лэндинги на чистых html с php-скриптом на почту. Все заказы ссылаются на единый gmail-ящик. Можно ли грабить эти данные из ящика, чтобы отправлять их в облако?
4) Какие существуют удобные облачные сервисы, которые предоставляют API для node.js?
5) Какова примерная стоимость подобного проекта в $ ?

Заранее очень благодарен! Всем хорошего дня.
  • Вопрос задан
  • 8666 просмотров
Пригласить эксперта
Ответы на вопрос 7
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
1) На сколько верным было решением использовать node.js и mongo?

Вопрос во многом холиварный. CRM это по определению много-много реляционных данных. Хранить это в любом nosql - я лично считаю очень плохой идеей. Особенно когда через полгодика пойдут change request`ы и выяснится что вещи которые в реляционке делаются за пару минут в nosql могут потребовать изменения архитектуры хранения и занять человеко-недели.

3) Сайтов у компании - масса, большая часть которых - лэндинги на чистых html с php-скриптом на почту. Все заказы ссылаются на единый gmail-ящик. Можно ли грабить эти данные из ящика, чтобы отправлять их в облако?

Можно. Но с учетом того что доставка email вообще говоря не гарантирована - завязывать один из ключевых бизнес процессов на это выглядит мягко говоря странно. По хорошему - сделать в вашей CRM, API наружу для формирования заказов и переписать все сайты для работы с ним.
* Странно что Ваш программист не может ответить на этот вопрос с закрытыми глазами

4) Какие существуют удобные облачные сервисы, которые предоставляют API для node.js?

Я рискну предположить что ЛПР где то услышал про облака и ему понравилось. На полном серьезе отдавать весь бизнес контент во внешний сервис - это надо или полным идеалистом быть, или просто не понимать о чем речь идет. Только свои железные сервера, только физическое резервирование.

5) Какова примерная стоимость подобного проекта в $ ?

Смотря где вы находитесь, насколько легально все это оформляете
В Мск приличного разработчика сейчас можно найти за 100-120 т.р. net, в регионах на 40-60 net (от региона зависит).
Сколько их нужно - без ТЗ сказать нереально, но думаю что оценка снизу это 3-4 разработчика
+тимлид 100% +project manager 100% +аналитик на старте +дизайнер по желанию +devops на аутсорсе итд

PS Без обид, но ищите грамотного CTO который это все организует. Это в любом случае длинный проект, так что можно и в штат найти человека.
Ответ написан
@GeraldIstar
Frontend
Не могу ответить на все вопросы, но на мой взгляд если используете python - берите django. Он более предназначен для крупных проектов.
Node.js - более ориентирован на микросервисную архитектуру. Если умеете ее готовить - то ради бога, но целиком на ноде делать думаю не стоит. Монгу стоит использовать только в случае если вы действительно понимаете отличия РСУБД от mongo.
3) Думаю это не проблема.
4) API для облачных серверов - а там какая разница, что за язык будет? Разве что наличие уже подготовленной либы.
5) Больше 1 миллиона точно.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Прежде, чем выбирать "на чём", нужно понимать "как"!
Нужны зависимости ролей и их различных параметров между собой.
Т.е. схема взаимодействия потоков бизнес-объектов и потом - схема базы данных (на её основе).
Каналы, компании, клиенты, активности, линки, переходы и т.д. вот всё это - объектные роли.
Ответ написан
Комментировать
@Gizmothron
1) На сколько верным было решением использовать node.js и mongo?

Настолько, насколько вы их знаете.

2) Если мы храним данные в облаке, то где мы храним само приложения? Как мы получаем доступ к нему(по url?) ?

В облаке хранятся и данные и сами сервисы для доступа к данным.
Доступ - как обычно - или через веб-интерфейс или через RESTful API.

3) Сайтов у компании - масса, большая часть которых - лэндинги на чистых html с php-скриптом на почту. Все заказы ссылаются на единый gmail-ящик. Можно ли грабить эти данные из ящика, чтобы отправлять их в облако?

Да.
Включите там доступ по IMAP.

4) Какие существуют удобные облачные сервисы, которые предоставляют API для node.js?

Heroku.
https://habrahabr.ru/sandbox/69602/

5) Какова примерная стоимость подобного проекта в $ ?


Оно же разное бывает. Бывает заточенное узко. Бывает универсальное. Бывает много возможностей, бывает мало возможностей. Бывает по разному понимают слово "облачная" (вроде и используют облако, но зажимают деньги на дополнительные инстансы).

Я участвовал в разработке подобной системы. Как раз облачная.

10 разработчиков * 6 месяцев * 4000 долларов на человека - альфа-версия.
Еще 3 месяца - бета-версия.
Еще месяц - пре-релиз.
Итого 10*(6+3+1)*4000 = 400 000 долларов США и 10 месяцев только чтобы выйти на пре-релиз

Разработчики я имею ввиду - бекэнд, фронтенд, руководитель проекта, devops.
Чисто разработчиков 8 человек.
Ответ написан
Комментировать
@asperin2
PHP разработчик
Брать БД без транзакций при работе с финансами - грозит жутким гемороем (эмуляция в монго их, все равно не торт)
Ответ написан
AntonKravchenko
@AntonKravchenko
3) сделайте на стороне CRM php обработчик заявок с сайта. Заявки сразу в CRM будут "падать"
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
разрабатывать самим - глупо

БД - только RDBMs

основные геморрои в CRM - итоговый учет денег - их совпадение с реальными, логирование всех действий по балансам и т.д.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы