# ТЗ: Evrone Conference — движок конференций и фестивалей

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

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

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

Регистрация и билеты, программа по трекам, Telegram-бот участника, чекин.

Регистрация и билеты (типы, промокоды), программа по трекам и залам, страницы спикеров, Telegram-бот участника (расписание, вопросы спикерам, оценка докладов), нетворкинг-матчинг участников, рассылки, бейджи и чекин.

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

```
kind: enum
price: integer
promo_code: string, nullable
state: enum # оплачен, отменён, использован
```

### 4.2. Talk

```
speaker_id: references
track_id: references
hall: string
starts_at: datetime
ratings: has_many
```

### 4.3. Attendee

```
user_id: references
ticket_id: references
checked_in_at: datetime, nullable
interests: jsonb
```

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

1. Участник покупает билет по промокоду и получает бейдж
2. Программа собирается по трекам и залам, у каждого доклада своя страница
3. Telegram-бот показывает расписание, собирает вопросы и оценки докладов
4. Нетворкинг подбирает участников по интересам

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

- Эквайринг
- Telegram-бот
- Печать бейджей и чекин
- Рассылки

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

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

## 8. Состав MVP

Регистрация + программа + бот участника.

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

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