# ТЗ: Evrone Charity — маркетплейс помощи

Демонстрационная версия документа · категория «Благотворительность» · №31

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

## 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. Fund

```
legal_name: string
verified_at: datetime, nullable
documents: has_many_attached
reports: has_many
```

### 4.2. Campaign

```
fund_id: references
goal_amount: integer
collected_amount: integer
state: enum
deadline: date
```

### 4.3. Donation

```
campaign_id: references
donor_id: references, nullable
amount: integer
recurring: boolean
```

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

1. Фонд проходит верификацию с проверкой документов
2. Заявка нуждающегося проходит модерацию и матчится с подходящими фондами
3. Донор жертвует разово или подписывается на регулярные платежи
4. Фонд отчитывается перед донорами, донор получает справку для вычета

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

- Платёжный провайдер с рекуррентными платежами
- Проверка организаций
- Email-отчёты

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

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

## 8. Состав MVP

Каталог + сбор + платёж + отчёт.

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

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