Энергосбыт Разработка

CRM «ЭнергоПульс»

Мультиарендная CRM для учёта энергопоказаний. Роли и их совмещение, тикеты поддержки, PWA. Каждый день работает в компании.

Задача

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

Как это работает

Мультиарендность: несколько организаций в одной базе, данные строго разделены. Гибкие роли с возможностью совмещения — один человек может быть и оператором, и контролёром, и система это корректно учитывает. Встроенные тикеты поддержки. PWA, чтобы работать с телефона на выезде.

Развёрнута в Docker, база PostgreSQL, покрытие тестами 99% при 266 тестах — для системы, от которой зависит работа компании, это не роскошь, а необходимость.

Система закрыта логином, поэтому публичной ссылки нет.

Какие решения приняты

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

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

Совмещение должностей сделано второй ролью, права которой складываются с основной, — в реальной работе один сотрудник ведёт две цепочки документов одним логином.

Каждое действие пишется в журнал аудита: кто, что, когда и с какого адреса. Файлы и фото хранятся в S3-совместимом хранилище, а не на диске приложения.

На чём сделано

Список для тех, кому важно, что внутри. Рядом — что каждое из этого означает для владельца сайта.

Django
Каркас, на котором держится сайт: админка, права доступа и защита форм в нём есть изначально, а не дописаны на коленке.
Docker
Проект собран в готовый образ — переносится на другой сервер целиком, без «а у меня работало».
PostgreSQL
База для нагрузки посерьёзнее: много одновременных пользователей и сложные выборки.
PWA
Сайт ставится на домашний экран телефона и работает как приложение, включая уведомления, — но без магазинов приложений.

Нужно похожее?

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

Похожие работы

Хочу похожий проект Все работы