CRM «ЭнергоПульс»
Мультиарендная CRM для учёта энергопоказаний. Роли и их совмещение, тикеты поддержки, PWA. Каждый день работает в компании.
Задача
Самый сложный из моих проектов. Это не сайт, а рабочая система, в которой сотрудники компании проводят весь день.
Как это работает
Мультиарендность: несколько организаций в одной базе, данные строго разделены. Гибкие роли с возможностью совмещения — один человек может быть и оператором, и контролёром, и система это корректно учитывает. Встроенные тикеты поддержки. PWA, чтобы работать с телефона на выезде.
Развёрнута в Docker, база PostgreSQL, покрытие тестами 99% при 266 тестах — для системы, от которой зависит работа компании, это не роскошь, а необходимость.
Система закрыта логином, поэтому публичной ссылки нет.
Какие решения приняты
Изоляция организаций проверяется на каждом запросе к API, а не только в интерфейсе: пользователь без организации получает отказ, чужие данные не отдаются даже по прямой ссылке.
Субподрядчик заведён бригадой внутри организации, а не отдельной организацией: организации изолированы полностью, и директор перестал бы видеть его работы и общую нумерацию.
Совмещение должностей сделано второй ролью, права которой складываются с основной, — в реальной работе один сотрудник ведёт две цепочки документов одним логином.
Каждое действие пишется в журнал аудита: кто, что, когда и с какого адреса. Файлы и фото хранятся в S3-совместимом хранилище, а не на диске приложения.
На чём сделано
Список для тех, кому важно, что внутри. Рядом — что каждое из этого означает для владельца сайта.
- Django
- Каркас, на котором держится сайт: админка, права доступа и защита форм в нём есть изначально, а не дописаны на коленке.
- Docker
- Проект собран в готовый образ — переносится на другой сервер целиком, без «а у меня работало».
- PostgreSQL
- База для нагрузки посерьёзнее: много одновременных пользователей и сложные выборки.
- PWA
- Сайт ставится на домашний экран телефона и работает как приложение, включая уведомления, — но без магазинов приложений.
Нужно похожее?
Здесь написано, что входит в работу, сколько это стоит и сколько занимает.
Похожие работы
доступ по логину
Панель мониторинга
ИнфраструктураСобственный дашборд состояния серверов: занятость дисков, сроки SSL, логи nginx. Инструмент, которым я слежу за всеми проектами.
доступ по логину
Учёт заявок мастерской по ремонту телефонов
Ремонт техникиВнутренняя система учёта для мастерской по ремонту телефонов: статусы заявок, мастера, автоматический расчёт стоимости, печать документов.
доступ по логину
Платформа онлайн-тестирования EduQuest
EdTech Учебный проектПлатформа для онлайн-тестов и курсов с уровнями сложности, голосовыми и видео-ответами и трекингом прогресса ученика.