Все проекты

B2B CRM System

CRM для сети филиалов B2B-компании. Расписание в реальном времени, строгий учёт материальных ценностей, медицинский допуск персонала, генерация PDF/Excel.

Сеть филиаловWebSocket real-timeПриказ МЗ РФ № 1144н

Бизнес-задача

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

Ключевая задача

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

Расписание

WebSocket + STOMP для предотвращения двойного бронирования при одновременной работе нескольких администраторов.
  • Машина состояний: Черновик → Ожидание → Подтверждено → В процессе → Завершено
  • Черновики для незавершённых бронирований

Учёт активов

Учёт материальных ценностей по категориям.
  • Стоп-лист неисправных единиц
  • Выдача по заявке к мероприятию
  • Журнал операций: неизменяемый лог (кто, когда, что выдал/принял)

Медицинский допуск

Форма осмотра с автоматической PDF-генерацией.
  • Соответствие приказу МЗ РФ № 1144н
  • Статусы: Допущен / Не допущен / Опасность

Ролевая модель

Гранулярный доступ (полный → редактирование → просмотр → нет доступа) по модулям.
  • Владелец сети: управление всеми филиалами
  • Администратор: полный доступ к CRM
  • Специалист: работа с мероприятиями
  • Врач: медицинский допуск
  • Кладовщик: выдача активов

Генерация документов

  • PDF: медицинские заключения (iTextPDF)
  • Excel: расписание, статистика (Apache POI)
  • Email: автоматическая рассылка отчётов

Технологии

Backend

Java 21Spring Boot 3.4Spring SecuritySpring WebSocket + STOMPSpring Data JPA

Data

PostgreSQL 16LiquibaseJPA SpecificationsAudit Log (immutable)

Integrations

Amazon S3Telegram Bot APIiTextPDFApache POI

Моя роль

  • Архитектура backend с нуля: нормализованная схема БД для строгого учёта материальных ценностей
  • WebSocket + STOMP для предотвращения конфликтов при одновременном редактировании
  • Гранулярная ролевая модель с динамическими правами по модулям
  • Неизменяемый журнал операций с активами