stanislav_dubich@dev:~$ cat b2b-crm/README.md

B2B CRM System

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

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

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

Архитектура

┌─────────────────┐         HTTP/REST         ┌─────────────────┐
│    Frontend     │◀─────────────────────────▶│  Spring Boot    │
│   (отдельная    │                           │   (Backend)     │
│    команда)     │◀────WebSocket/STOMP──────▶│                 │
└─────────────────┘   (double booking         └────────┬────────┘
                       prevention)                     │
        ┌──────────────────────────────────────────────┼─────────────────┐
        │                        │                     │                 │
        ▼                        ▼                     ▼                 ▼
┌───────────────┐       ┌───────────────┐     ┌───────────────┐  ┌───────────────┐
│  PostgreSQL   │       │  Audit Log    │     │   Amazon S3   │  │   Telegram    │
│               │       │ (immutable)   │     │   (files)     │  │   Bot API     │
└───────────────┘       └───────────────┘     └───────────────┘  └───────────────┘
                

Ключевые модули

Расписание тренировок:

Учёт активов:

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

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

Гранулярный доступ (полный → редактирование → просмотр → нет доступа) по модулям:

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

Стек

Backend

Java 21 Spring Boot 3.4 Spring Security Spring WebSocket + STOMP Spring Data JPA

Data

PostgreSQL 16 Liquibase JPA Specifications Audit Log (immutable)

Integrations

Amazon S3 Telegram Bot API iTextPDF Apache POI

Моя роль