CRMDANCER — Простая и бесплатная CRM на Flask и интеграцией с Asterisk

Все началось с того, что мои друзья попросили подобрать CRM-систему для менеджеров оптовой компании. Мы потратили уйму времени на поиски, но ничего подходящего не нашли. В итоге я предложил написать написать свою CRM. Удивительно, но готовый продукт внедрили сразу, без долгой «раскачки». Система работает и выложена в открытом доступе. В этой статье я расскажу, как ее сделал, — возможно, кому-нибудь пригодится.

Видео с демонстрацией возможностей

Для начала посмотрите ролик, мы сняли его для менеджеров. Показали, как работает CRM и какие функции в ней реализованы.

Под катом технические подробности

[Перевод] Чистая архитектура в Python: пошаговая демонстрация. Часть 3
Содержание

Сценарии (часть 2)

Git tag: Step06

Теперь, когда мы реализовали объекты запроса и ответа, добавляем их. Помещаем в файл tests/use_cases/test_storageroom_list_use_case.py следующий код:

Читать дальше →

[Перевод] Чистая архитектура в Python: пошаговая демонстрация. Часть 2
Содержание

Доменные модели

Git tag: Step02

Начнем с простого определения модели StorageRoom. Как было сказано ранее, модели в чистой архитектуре очень легкие, по крайней мере, легче, чем их ORM-аналоги в фреймворках.

Раз мы следуем методологии TDD, то первое, что мы напишем, это тесты. Создадим файл tests/domain/test_storageroom.py и поместим внутри него этот код:
Читать дальше →

Чистая архитектура в Python: пошаговая демонстрация (часть 1)
Примечание переводчика

Данная статья является переводом. Дословный перевод занял 35 страниц А4 в ворде. Планирую разбить её на 5-6 частей. Думаю, данная тема должна быть полезна многим программистам, желающим писать свои web-приложения лучше и чище. Так же статья полезна тем, кто хочет научиться писать web-приложения с методологией TDD с применением именно модульных тестов, а не интеграционных, как это обычно делалось в тех статьях, что попадались мне на глаза. Если где-то использованы неверные термины или перевод кажется слишком машинным — напишите мне в личку, вряд ли это гугл-транслятор, скорее всего дело в моей косноязычности и посредственном знанием английского языка.

Год назад мой друг Roberto Ciatti познакомил меня с концепцией, которую Роберт Мартиным называет чистой архитектуры. Дядя Боб много говорит об этой концепции на конференциях и написал о ней очень интересные статьи. «Чистая архитектура» представляет собой способ структурирования системы программного обеспечения, набор соглашений (нечто большее чем строгие правила) о различных слоях и ролях их участников.

Как он ясно выражается в посте, метко названным «Чистая архитектура» (перевод на хабре), идея этого подхода не нова, строится на множестве концепций, которые проталкивались многими разработчиками программного обеспечения в течение последних 3-х десяти лет.

Читать дальше →