diff --git a/💡 Идеи/💡 Проекты/ERP для малых производств/MVP-План.md b/💡 Идеи/💡 Проекты/ERP для малых производств/MVP-План.md index 6365399..f31cd9d 100644 --- a/💡 Идеи/💡 Проекты/ERP для малых производств/MVP-План.md +++ b/💡 Идеи/💡 Проекты/ERP для малых производств/MVP-План.md @@ -40,10 +40,10 @@ ## 🛠️ Технологический стек -**Backend:** Go + PostgreSQL + JWT auth -**Frontend:** React PWA (мобильный) -**Печать:** PDF генерация -**Инфраструктура:** Docker + HTTPS +**Core Service:** Go (Gin) + PostgreSQL + JWT auth + gRPC +**Document Service:** Python (FastAPI) + Redis + Document libraries +**Frontend:** Angular PWA (мобильный) + Material UI +**Инфраструктура:** Docker + gRPC + Redis + HTTPS --- @@ -53,12 +53,44 @@ **Команда:** 2 разработчика + 1 дизайнер **Бюджет:** $30,000-50,000 -### Этапы: -1. **Фундамент** (2 недели) - инфраструктура, аутентификация -2. **Шаблоны + QR** (3 недели) - генерация мест и кодов -3. **Мобильное приложение** (2 недели) - PWA и сканирование -4. **Базовые операции** (2 недели) - управление товарами -5. **Тестирование** (1 неделя) - пилот с реальными пользователями +### Этапы разработки + +```mermaid +gantt + title MVP План разработки + dateFormat YYYY-MM-DD + section Фундамент + Инфраструктура :fund, 2024-01-01, 7d + Аутентификация :auth, after fund, 7d + gRPC настройка :grpc, after auth, 7d + + section Document Service + Python сервис :python, after grpc, 7d + PDF генерация :pdf, after python, 7d + + section Шаблоны + QR + Шаблоны помещений :templates, after pdf, 7d + QR генерация :qr, after templates, 7d + + section Angular PWA + Фронтенд :frontend, after qr, 7d + QR сканер :scanner, after frontend, 7d + + section Операции + Управление товарами :items, after scanner, 7d + Поиск и размещение :operations, after items, 7d + + section Тестирование + Пилот :pilot, after operations, 7d +``` + +### Детализация этапов: +1. **Фундамент** (2 недели) - инфраструктура, аутентификация, gRPC +2. **Document Service** (2 недели) - Python сервис, PDF генерация +3. **Шаблоны + QR** (2 недели) - генерация мест и кодов +4. **Angular PWA** (2 недели) - фронтенд и сканирование +5. **Базовые операции** (2 недели) - управление товарами +6. **Тестирование** (1 неделя) - пилот с реальными пользователями --- diff --git a/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Computer-Vision.md b/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Computer-Vision.md index 186128e..23c60dc 100644 --- a/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Computer-Vision.md +++ b/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Computer-Vision.md @@ -62,17 +62,39 @@ Computer Vision функции будут добавлены после успе ## 🎯 Приоритеты реализации -### Этап 1: Распознавание чеков +```mermaid +gantt + title Computer Vision Roadmap + dateFormat YYYY-MM-DD + section Распознавание чеков + OCR интеграция :ocr, 2024-03-01, 14d + ML модели :ml1, after ocr, 14d + API интеграция :api1, after ml1, 14d + + section Распознавание товаров + Computer Vision API :cv, after api1, 21d + Обучение моделей :train, after cv, 21d + Классификация :classify, after train, 14d + + section Анализ пространства + Object Detection :detect, after classify, 28d + 3D reconstruction :3d, after detect, 21d + Интеграция с UI :ui, after 3d, 14d +``` + +### Детализация этапов: + +#### Этап 1: Распознавание чеков - **Время:** 4-6 недель - **Команда:** 1 ML инженер + 1 разработчик - **Сложность:** Средняя -### Этап 2: Распознавание товаров +#### Этап 2: Распознавание товаров - **Время:** 6-8 недель - **Команда:** 1 ML инженер + 1 разработчик - **Сложность:** Высокая -### Этап 3: Анализ пространства +#### Этап 3: Анализ пространства - **Время:** 8-10 недель - **Команда:** 1 ML инженер + 1 разработчик + 1 дизайнер - **Сложность:** Очень высокая diff --git a/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Аналитика.md b/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Аналитика.md index c7bef93..736e7d2 100644 --- a/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Аналитика.md +++ b/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Аналитика.md @@ -8,19 +8,66 @@ ## 📊 Основные аналитические модули -### 1. Анализ движения товаров +```mermaid +graph TB + subgraph "Аналитические модули" + A[Анализ движения товаров] + B[Анализ складского пространства] + C[Финансовая аналитика] + end + + subgraph "Компоненты" + A1[Оборот товаров] + A2[Популярные товары] + A3[Сезонность спроса] + A4[Прогнозирование] + + B1[Загруженность мест] + B2[Эффективность использования] + B3[Горячие зоны] + B4[Рекомендации] + + C1[Стоимость запасов] + C2[Оборачиваемость] + C3[Прибыльность] + C4[Анализ поставщиков] + end + + A --> A1 + A --> A2 + A --> A3 + A --> A4 + + B --> B1 + B --> B2 + B --> B3 + B --> B4 + + C --> C1 + C --> C2 + C --> C3 + C --> C4 + + style A fill:#e3f2fd + style B fill:#f3e5f5 + style C fill:#e8f5e8 +``` + +### Детализация модулей: + +#### 1. Анализ движения товаров - **Оборот товаров** по периодам - **Популярные товары** и категории - **Сезонность** спроса - **Прогнозирование** потребности -### 2. Анализ складского пространства +#### 2. Анализ складского пространства - **Загруженность** мест хранения - **Эффективность** использования пространства - **Горячие зоны** и узкие места - **Рекомендации** по оптимизации -### 3. Финансовая аналитика +#### 3. Финансовая аналитика - **Стоимость** товарных запасов - **Оборачиваемость** товаров - **Прибыльность** по категориям diff --git a/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Расширенные-функции.md b/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Расширенные-функции.md index 97f9358..a7d8584 100644 --- a/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Расширенные-функции.md +++ b/💡 Идеи/💡 Проекты/ERP для малых производств/Post-MVP/Расширенные-функции.md @@ -140,22 +140,49 @@ ## 📅 План реализации -### Этап 1: Интеграции (6-8 недель) +```mermaid +gantt + title Расширенные функции - Roadmap + dateFormat YYYY-MM-DD + section Интеграции + API поставщиков :suppliers, 2024-06-01, 21d + Бухгалтерия :accounting, after suppliers, 21d + Маркетплейсы :marketplaces, after accounting, 14d + + section Офлайн режим + Офлайн функциональность :offline, after marketplaces, 21d + Синхронизация :sync, after offline, 14d + Конфликт-менеджмент :conflict, after sync, 7d + + section AI функции + Умные подсказки :ai1, after conflict, 28d + Автоматизация :ai2, after ai1, 28d + Чат-бот :ai3, after ai2, 14d + + section Аналитика + Предиктивная :analytics1, after ai3, 21d + Бизнес-аналитика :analytics2, after analytics1, 21d + Операционная :analytics3, after analytics2, 14d +``` + +### Детализация этапов: + +#### Этап 1: Интеграции (6-8 недель) - API интеграции с поставщиками - Экспорт в бухгалтерские системы - Базовые интеграции с маркетплейсами -### Этап 2: Офлайн режим (4-6 недель) +#### Этап 2: Офлайн режим (4-6 недель) - Полная офлайн функциональность - Синхронизация данных - Конфликт-менеджмент -### Этап 3: AI функции (8-12 недель) +#### Этап 3: AI функции (8-12 недель) - Умные подсказки - Автоматизация процессов - Чат-бот поддержка -### Этап 4: Расширенная аналитика (6-8 недель) +#### Этап 4: Расширенная аналитика (6-8 недель) - Предиктивная аналитика - Бизнес-аналитика - Операционная аналитика diff --git a/💡 Идеи/💡 Проекты/ERP для малых производств/index.md b/💡 Идеи/💡 Проекты/ERP для малых производств/index.md index b6fdadb..0d7f7ea 100644 --- a/💡 Идеи/💡 Проекты/ERP для малых производств/index.md +++ b/💡 Идеи/💡 Проекты/ERP для малых производств/index.md @@ -62,15 +62,29 @@ - **Кэширование:** Redis - **Аутентификация:** JWT +### Core Service +- **Язык:** Go (Gin) +- **База данных:** PostgreSQL +- **Аутентификация:** JWT +- **Межсервисная коммуникация:** gRPC + +### Document Service +- **Язык:** Python (FastAPI) +- **Кэширование:** Redis +- **Документы:** PDF, Excel, Word +- **Шаблоны:** Jinja2 + ### Frontend -- **Фреймворк:** React PWA -- **Дизайн:** Мобильно-ориентированный -- **Печать:** PDF генерация +- **Фреймворк:** Angular PWA +- **Дизайн:** Material UI + Tailwind CSS +- **QR Scanner:** @zxing/ngx-scanner +- **State Management:** NgRx ### Инфраструктура -- **Контейнеризация:** Docker -- **Безопасность:** HTTPS, шифрование данных -- **Мониторинг:** Структурированное логирование +- **Контейнеризация:** Docker + Docker Compose +- **Межсервисная коммуникация:** gRPC + Protocol Buffers +- **Безопасность:** HTTPS, CORS, JWT +- **Мониторинг:** Prometheus + Grafana --- diff --git a/💡 Идеи/💡 Проекты/ERP для малых производств/Архитектура-MVP.md b/💡 Идеи/💡 Проекты/ERP для малых производств/Архитектура-MVP.md index 67f0e4b..ab9fc46 100644 --- a/💡 Идеи/💡 Проекты/ERP для малых производств/Архитектура-MVP.md +++ b/💡 Идеи/💡 Проекты/ERP для малых производств/Архитектура-MVP.md @@ -2,18 +2,34 @@ ## 🏗️ Общая архитектура -``` -┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ -│ React PWA │ │ Go Backend │ │ PostgreSQL │ -│ (Frontend) │◄──►│ (API) │◄──►│ (Database) │ -└─────────────────┘ └─────────────────┘ └─────────────────┘ - │ │ - │ │ - ▼ ▼ -┌─────────────────┐ ┌─────────────────┐ -│ QR Scanner │ │ PDF Generator │ -│ (Camera) │ │ (Labels) │ -└─────────────────┘ └─────────────────┘ +```mermaid +graph TB + subgraph "Frontend" + A[Angular PWA] + B[QR Scanner] + end + + subgraph "Backend Services" + C[Go Core Service] + D[Python Document Service] + end + + subgraph "Infrastructure" + E[PostgreSQL] + F[Redis Cache] + end + + A <--> C + B --> A + C <--> E + C <--> D + D <--> F + + style A fill:#ff9999 + style C fill:#99ccff + style D fill:#99ff99 + style E fill:#ffcc99 + style F fill:#cc99ff ``` --- @@ -21,29 +37,102 @@ ## 🛠️ Технологический стек ### Backend (Go) -- **Framework:** Gin или Echo +- **Framework:** Gin (легкий и быстрый) - **Database:** PostgreSQL - **Authentication:** JWT - **Validation:** validator -- **PDF Generation:** wkhtmltopdf или gofpdf +- **Inter-service Communication:** gRPC + Protocol Buffers +- **API Documentation:** Swagger/OpenAPI -### Frontend (React PWA) -- **Framework:** React 18 -- **Build Tool:** Vite -- **PWA:** Workbox -- **QR Scanner:** react-qr-reader -- **UI:** Tailwind CSS или Material-UI +### Frontend (Angular PWA) +- **Framework:** Angular 17+ +- **Build Tool:** Angular CLI +- **PWA:** @angular/service-worker +- **QR Scanner:** @zxing/ngx-scanner +- **UI:** Angular Material + Tailwind CSS +- **State Management:** NgRx (для сложной логики) + +### Document Service (Python) +- **Framework:** FastAPI (быстрый, автоматическая документация) +- **PDF Generation:** reportlab + weasyprint +- **Office Documents:** python-docx, openpyxl +- **Templates:** Jinja2 +- **Caching:** Redis +- **Inter-service Communication:** gRPC ### Infrastructure - **Containerization:** Docker -- **Deployment:** Docker Compose -- **Security:** HTTPS, CORS -- **Monitoring:** Structured logging +- **Orchestration:** Docker Compose +- **Inter-service Communication:** gRPC + Protocol Buffers +- **API Gateway:** Traefik (опционально) +- **Security:** HTTPS, CORS, JWT +- **Monitoring:** Structured logging + Prometheus --- ## 📊 Структура базы данных +### ER-диаграмма + +```mermaid +erDiagram + organizations { + uuid id PK + varchar name + varchar type + jsonb settings + timestamp created_at + } + + users { + uuid id PK + uuid organization_id FK + varchar email + varchar role + timestamp created_at + } + + storage_locations { + uuid id PK + uuid organization_id FK + uuid parent_id FK + varchar name + varchar address + varchar type + jsonb coordinates + varchar qr_code + timestamp created_at + } + + items { + uuid id PK + uuid organization_id FK + varchar name + text description + varchar category + timestamp created_at + } + + item_placements { + uuid id PK + uuid organization_id FK + uuid item_id FK + uuid location_id FK + integer quantity + timestamp created_at + } + + organizations ||--o{ users : "has" + organizations ||--o{ storage_locations : "has" + organizations ||--o{ items : "has" + organizations ||--o{ item_placements : "has" + + storage_locations ||--o{ storage_locations : "parent-child" + storage_locations ||--o{ item_placements : "contains" + + items ||--o{ item_placements : "placed_in" +``` + ### Основные таблицы ```sql @@ -103,51 +192,156 @@ CREATE TABLE item_placements ( ## 🔌 API Endpoints -### Аутентификация +### Core Service (Go) - REST API ``` +# Аутентификация POST /api/auth/login POST /api/auth/register POST /api/auth/refresh -``` -### Организации -``` +# Организации GET /api/organizations/:id PUT /api/organizations/:id -``` -### Места хранения -``` +# Места хранения GET /api/locations POST /api/locations GET /api/locations/:id PUT /api/locations/:id DELETE /api/locations/:id -POST /api/locations/:id/qr-code -``` -### Товары -``` +# Товары GET /api/items POST /api/items GET /api/items/:id PUT /api/items/:id DELETE /api/items/:id -``` -### Операции -``` +# Операции POST /api/operations/place-item POST /api/operations/move-item GET /api/operations/search -``` -### Шаблоны -``` +# Шаблоны GET /api/templates POST /api/templates/:id/apply ``` +### Document Service (Python) - REST API +``` +# Документы +POST /api/documents/generate-pdf +POST /api/documents/generate-excel +GET /api/documents/:id/status +GET /api/documents/:id/download + +# Шаблоны документов +GET /api/templates +POST /api/templates +PUT /api/templates/:id +DELETE /api/templates/:id +``` + +## 🔄 Межсервисная коммуникация + +### gRPC Services + +#### Core Service → Document Service +```protobuf +service DocumentService { + rpc GenerateQRCode(QRCodeRequest) returns (QRCodeResponse); + rpc GenerateReport(ReportRequest) returns (ReportResponse); + rpc GetDocumentStatus(StatusRequest) returns (StatusResponse); +} +``` + +#### Document Service → Core Service +```protobuf +service CoreService { + rpc GetLocationData(LocationRequest) returns (LocationResponse); + rpc GetItemData(ItemRequest) returns (ItemResponse); + rpc ValidateTemplate(TemplateRequest) returns (TemplateResponse); +} +``` + +### События (Event-Driven) +```protobuf +message DocumentEvent { + string event_type; // "qr_generated", "report_ready" + string document_id; + string organization_id; + google.protobuf.Timestamp timestamp; +} +``` + +## 🔄 Диаграммы последовательности + +### Генерация QR-кода + +```mermaid +sequenceDiagram + participant F as Frontend + participant C as Core Service + participant D as Document Service + participant R as Redis + + F->>C: POST /api/locations/:id/qr-code + C->>D: gRPC GenerateQRCode() + D->>D: Generate QR code + D->>R: Cache document + D->>C: Return document URL + C->>F: Return QR code data +``` + +### Размещение товара + +```mermaid +sequenceDiagram + participant U as User + participant F as Frontend + participant C as Core Service + participant DB as Database + + U->>F: Scan QR code + F->>F: Decode location ID + F->>C: GET /api/locations/:id + C->>DB: Query location + DB->>C: Return location data + C->>F: Return location info + F->>U: Show location details + + U->>F: Select item & quantity + F->>C: POST /api/operations/place-item + C->>DB: Create placement + DB->>C: Confirm placement + C->>F: Return success + F->>U: Show confirmation +``` + +### Поиск товара + +```mermaid +sequenceDiagram + participant U as User + participant F as Frontend + participant C as Core Service + participant R as Redis + participant DB as Database + + U->>F: Search query + F->>C: GET /api/operations/search?q=query + C->>R: Check cache + alt Cache hit + R->>C: Return cached results + else Cache miss + C->>DB: Search items & locations + DB->>C: Return results + C->>R: Cache results + end + C->>F: Return search results + F->>U: Display results +``` + --- ## 🔐 Безопасность @@ -194,23 +388,39 @@ POST /api/templates/:id/apply ```yaml version: '3.8' services: - backend: - build: ./backend + # Core Service (Go) + core-service: + build: ./core-service ports: - "8080:8080" environment: - DB_HOST=postgres - JWT_SECRET=your-secret + - DOC_SERVICE_URL=http://doc-service:8000 depends_on: - postgres + - redis + # Document Service (Python) + doc-service: + build: ./doc-service + ports: + - "8000:8000" + environment: + - REDIS_URL=redis://redis:6379 + - CORE_SERVICE_URL=http://core-service:8080 + depends_on: + - redis + + # Frontend (Angular) frontend: build: ./frontend ports: - "3000:80" depends_on: - - backend + - core-service + # Database postgres: image: postgres:15 environment: @@ -220,26 +430,134 @@ services: volumes: - postgres_data:/var/lib/postgresql/data + # Cache + redis: + image: redis:7-alpine + ports: + - "6379:6379" + volumes: + - redis_data:/data + + # API Gateway (опционально) + traefik: + image: traefik:v2.10 + command: + - --api.insecure=true + - --providers.docker=true + ports: + - "80:80" + - "8081:8080" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + volumes: postgres_data: + redis_data: +``` + +### Структура проекта + +```mermaid +graph TD + A[erp-mvp/] --> B[core-service/] + A --> C[doc-service/] + A --> D[frontend/] + A --> E[proto/] + A --> F[docker-compose.yml] + + B --> B1[cmd/] + B --> B2[internal/] + B --> B3[pkg/] + B --> B4[proto/] + B --> B5[Dockerfile] + + C --> C1[app/] + C --> C2[templates/] + C --> C3[proto/] + C --> C4[Dockerfile] + + D --> D1[src/] + D --> D2[angular.json] + D --> D3[Dockerfile] + + E --> E1[core.proto] + E --> E2[document.proto] + E --> E3[events.proto] + + style A fill:#e1f5fe + style B fill:#f3e5f5 + style C fill:#e8f5e8 + style D fill:#fff3e0 + style E fill:#fce4ec ``` --- +## 📚 Конкретные библиотеки и фреймворки + +### Core Service (Go) +```go +// Основные зависимости +go.mod: +- github.com/gin-gonic/gin v1.9.1 // HTTP framework +- github.com/golang-jwt/jwt/v5 v5.0.0 // JWT authentication +- github.com/lib/pq v1.10.9 // PostgreSQL driver +- github.com/go-playground/validator/v10 // Validation +- google.golang.org/grpc v1.58.0 // gRPC client/server +- github.com/swaggo/gin-swagger v1.6.0 // API documentation +- github.com/redis/go-redis/v9 v9.2.1 // Redis client +``` + +### Document Service (Python) +```python +# requirements.txt +fastapi==0.104.1 # Web framework +uvicorn==0.24.0 # ASGI server +reportlab==4.0.4 # PDF generation +weasyprint==60.1 # HTML to PDF +python-docx==1.1.0 # Word documents +openpyxl==3.1.2 # Excel files +jinja2==3.1.2 # Templates +redis==5.0.1 # Redis client +grpcio==1.59.0 # gRPC +protobuf==4.24.4 # Protocol Buffers +pydantic==2.4.2 # Data validation +``` + +### Frontend (Angular) +```json +// package.json +{ + "dependencies": { + "@angular/core": "^17.0.0", + "@angular/material": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "@zxing/ngx-scanner": "^3.0.0", + "@ngrx/store": "^17.0.0", + "@ngrx/effects": "^17.0.0", + "tailwindcss": "^3.3.0", + "rxjs": "^7.8.0" + } +} +``` + ## 📊 Мониторинг ### Логирование -- Structured JSON логи -- Уровни: DEBUG, INFO, WARN, ERROR -- Correlation ID для отслеживания запросов +- **Go:** logrus или zerolog для structured logging +- **Python:** structlog для structured logging +- **Frontend:** Angular logging service +- Correlation ID для отслеживания запросов через все сервисы ### Метрики -- Время отклика API -- Количество ошибок -- Активные пользователи -- Операции в день +- **Prometheus** для сбора метрик +- **Grafana** для визуализации +- Время отклика API по сервисам +- Количество ошибок и их типы +- Активные пользователи и операции ### Алерты - Высокое время отклика (>500ms) - Высокий процент ошибок (>5%) -- Недоступность сервиса +- Недоступность сервисов +- Проблемы с генерацией документов diff --git a/💡 Идеи/💡 Проекты/ERP для малых производств/Техническое-задание-MVP.md b/💡 Идеи/💡 Проекты/ERP для малых производств/Техническое-задание-MVP.md index d42bc9c..8772f56 100644 --- a/💡 Идеи/💡 Проекты/ERP для малых производств/Техническое-задание-MVP.md +++ b/💡 Идеи/💡 Проекты/ERP для малых производств/Техническое-задание-MVP.md @@ -15,6 +15,24 @@ - Кондитерские/пекарни - Мастерские по ремонту +### 1.3 Пользовательские сценарии + +```mermaid +journey + title Пользовательский сценарий: Организация склада + section Настройка + Создание организации: 5: Мастер + Выбор шаблона помещения: 4: Мастер + Настройка размеров: 3: Мастер + Генерация QR-кодов: 5: Система + Печать этикеток: 4: Мастер + section Использование + Сканирование QR-кода: 5: Мастер + Размещение товара: 4: Мастер + Поиск товара: 5: Мастер + Перемещение товара: 3: Мастер +``` + --- ## 2. Функциональные требования MVP @@ -37,8 +55,9 @@ **Требования:** - Генерация уникальных QR-кодов для каждого места - Кодирование в QR: ID места, адрес, координаты -- Печать этикеток на обычном принтере (A4) +- Печать этикеток на обычном принтере (A4) через Document Service - Сетка этикеток на лист с предварительным просмотром +- Кэширование сгенерированных QR-кодов в Redis #### 2.1.3 Виртуальная карта **Требования:** @@ -49,20 +68,22 @@ - Красный: переполнено - Интерактивность: клик на место → список товаров -### 2.2 Мобильное приложение (PWA) +### 2.2 Мобильное приложение (Angular PWA) #### 2.2.1 Сканирование QR-кодов **Требования:** -- Сканирование камерой телефона +- Сканирование камерой телефона через @zxing/ngx-scanner - Распознавание QR-кодов в реальном времени - Автоматический переход к операции с местом - Обработка ошибок сканирования +- Offline поддержка через Service Worker #### 2.2.2 Быстрые операции **Требования:** - Размещение товара: сканирование места → выбор товара → подтверждение - Поиск товара: сканирование места → показ списка товаров - Перемещение: сканирование места откуда → сканирование места куда → выбор товара +- State management через NgRx для сложных операций ### 2.3 Справочники @@ -87,6 +108,7 @@ - Выбор места размещения - Указание количества - Автоматическое обновление статуса места +- Валидация через gRPC между сервисами #### 2.4.2 Поиск товаров **Требования:** @@ -94,6 +116,24 @@ - Поиск по адресу места - Поиск по категории - Результат: список мест с товарами +- Кэширование результатов поиска в Redis + +### 2.5 Document Service + +#### 2.5.1 Генерация документов +**Требования:** +- Генерация PDF этикеток с QR-кодами +- Создание Excel отчетов по товарам +- Экспорт данных в Word документы +- Шаблонизация через Jinja2 +- Асинхронная обработка через Redis + +#### 2.5.2 Кэширование +**Требования:** +- Кэширование сгенерированных документов +- TTL для документов: 24 часа +- Автоматическая очистка старых документов +- Статистика использования кэша ---