# ТЗ: Evrone Procurement — закупочная система

Демонстрационная версия документа · категория «Торги» · №04

> Это демонстрационное техническое задание: оно показывает структуру и глубину
> документа, который передаётся вместе с прототипом. Боевое ТЗ по этому солюшену
> готовится и заменит этот файл.

## 1. Суть решения

Кабинеты заказчика и поставщика, процедуры от котировок до редукциона.

Корпоративные закупки: кабинет заказчика (создание процедуры — запрос котировок, запрос предложений, редукцион), кабинет поставщика (поиск процедур, подача заявки с документами), квалификация поставщиков, протоколы, итоги, уведомления по этапам.

## 2. Технологический стек

| Слой | Решение |
|---|---|
| Backend | Ruby on Rails 8, PostgreSQL |
| Frontend | Hotwire (Turbo + Stimulus), Tailwind CSS |
| Фоновые задачи | Solid Queue |
| Файлы | Active Storage, S3-совместимое хранилище |
| Деплой | Docker, Kamal, production + staging |

## 3. Роли

- Заказчик
- Поставщик
- Организатор процедуры
- Наблюдатель

## 4. Модель данных

### 4.1. Procedure

```
kind: enum # запрос котировок, запрос предложений, редукцион
state: enum
published_at: datetime
deadline_at: datetime
lots: has_many
```

### 4.2. Bid

```
procedure_id: references
supplier_id: references
price: integer
documents: has_many_attached
state: enum
```

### 4.3. Protocol

```
procedure_id: references
kind: enum # вскрытие, рассмотрение, итоги
signed_at: datetime, nullable
```

## 5. Ключевые сценарии

1. Заказчик создаёт процедуру, описывает лоты и требования к квалификации
2. Поставщик находит процедуру, подаёт заявку с документами до дедлайна
3. Система формирует протоколы по этапам и рассылает уведомления участникам
4. Организатор подводит итоги и публикует победителя

## 6. Интеграции

- Электронная подпись
- Реестры проверки поставщиков
- Уведомления по email и SMS

## 7. Нефункциональные требования

- Серверный рендеринг, работоспособность ключевых страниц без JavaScript
- Мобильная адаптивность обязательна
- Роли и права проверяются на уровне сервера, а не интерфейса
- Логирование действий пользователей по значимым операциям
- Покрытие тестами моделей и ключевых сценариев
- Развёртывание одной командой, окружения production и staging

## 8. Состав MVP

Одна процедура end-to-end; ЭЦП закладывается архитектурно, подключается на фазе внедрения.

## 9. Критерии приёмки

1. Все сценарии из раздела 5 проходят end-to-end на тестовом стенде
2. Роли из раздела 3 видят только то, что им положено
3. Интеграции из раздела 6 работают через слой адаптеров и переключаются конфигурацией
4. Прототип разворачивается из репозитория одной командой
5. Документация по запуску и переменным окружения лежит в README
