Appearance
DRevent — обзор продукта
Последняя сверка с кодом: 2026-06-14
Аудитория: новые участники команды, QA, аналитики, дизайнеры
В двух словах
DRevent (в коде — EventPass) — веб-сервис для общего фото/видео-альбома на мероприятии.
- Гость открывает ссылку или QR — без приложения и без регистрации — смотрит альбом, загружает фото/видео, ставит лайки.
- Организатор регистрируется, создаёт событие, настраивает доступ, модерацию, брендинг, скачивает архив.
- На проекторе — отдельный URL wall: слайдшоу с автообновлением (SSE).
Прод: drevent.app. Локально: frontend :3000, API :3002.
Персоны
| Персона | Аккаунт | Типичный вход | Главная цель |
|---|---|---|---|
| Гость | не нужен | QR / ссылка /:eventId | Посмотреть и загрузить медиа |
| Организатор (OWNER) | email + пароль | лендинг → регистрация → /account | Создать событие, управлять альбомом |
| Модератор | есть | приглашение OWNER | Модерация загрузок, админка события |
| Участник (MEMBER) | есть | инвайт /:id/join?token=… | Загружать в закрытое событие, удалять своё |
| SUPER_ADMIN | есть (seed/ручная выдача) | /admin | Пользователи, события, тарифы платформы |
Принцип: гостей никогда не заставляем регистрироваться. Аккаунт — для организаторов и команды события.
Карта разделов (верхний уровень)
mermaid
flowchart TB
subgraph marketing [Маркетинг]
Landing["/ — лендинг"]
Pricing["/pricing"]
Legal["/terms, /privacy"]
end
subgraph guest [Гость — без логина]
Album["/:id — альбом"]
Share["/:id/share — QR и ссылки"]
Wall["/:id/wall — слайдшоу"]
Join["/:id/join — вход MEMBER"]
end
subgraph organizer [Организатор — с логином]
Cabinet["/account — дашборд"]
MyEvents["/my-events — список"]
Profile["/profile — аккаунт"]
EventAdmin["/:id/manage"]
Settings["/:id/settings"]
Members["/:id/members"]
Moderate["/:id/moderate"]
end
subgraph platform [Платформа SUPER_ADMIN]
AdminUsers["/admin/users"]
AdminEvents["/admin/events"]
AdminPlans["/admin/plans"]
end
Landing --> Album
Album --> Share
Album --> Wall
Cabinet --> MyEvents
Cabinet --> EventAdminТри «мира» приложения
1. Публичная зона (маркетинг)
- Лендинг с формой создания события (нужен логин → модалка auth).
- Тарифы, FAQ, legal.
- Layout:
landing, сквозной AppSiteHeader.
2. Событие (гость + медиа)
- ID события в URL:
svadba-anna-x7k2(slug + короткий суффикс). - Доступ по знанию ссылки + опциональные ограничения в EventSettings (QR, альбом, ZIP).
- Загрузка через TUS (докачка при обрыве сети).
- Live-обновления альбома и wall через SSE.
3. Аккаунт (организатор и команда)
- После входа:
/account,/my-events,/profile. - Админка конкретного события — sidebar + header (
layout: account). - Платформа
/admin/*— только SUPER_ADMIN.
Ключевые пользовательские сценарии
| # | Сценарий | Кто | Кратко |
|---|---|---|---|
| S1 | Открыть альбом по QR | Гость | /:id → сетка фото → лайтбокс |
| S2 | Загрузить фото с телефона | Гость / MEMBER | Upload → TUS → превью в сетке |
| S3 | Слайдшоу на экране | Гость / организатор | /:id/wall, авто-новые кадры |
| S4 | Создать событие | OWNER | Лендинг → auth → POST event → /share |
| S5 | Скачать всё ZIP | Кто разрешено settings | Admin или альбом |
| S6 | Модерация | MODERATOR / OWNER | /:id/moderate approve/reject |
| S7 | Пригласить модератора | OWNER | /:id/members |
| S8 | Закрытое событие | MEMBER | join link → upload |
| S9 | Управление аккаунтом | Любой залогиненный | /profile, сессии, пароль |
Подробные диаграммы — в 05-user-flows.md (фаза C).
Конкуренты (кратко)
| Сервис | Рынок | Заметка |
|---|---|---|
| Tamadoba | RU | Главный ориентир: свадьбы/праздники, тарифы, legal, guest UX |
| GuestPix, Kululu, POV | global | QR-альбомы, wedding flow, settings |
Детальное сравнение и референсы для дизайна — 11-design-brief.md §8.
Технический контекст (одним абзацем)
Monorepo: Express + Prisma + Postgres + Better Auth (backend), Nuxt 4 с гибридным SSR на Cloudflare Pages (frontend). API — Swagger /api/docs. Медиа — R2 (prod). План фич — PLAN.md. SSR/OG — 26-ssr-migration.md.
Что дальше читать
| Вопрос | Документ |
|---|---|
| Что значит «wall», «TUS», «qrAccess»? | 01-glossary.md |
| Какие страницы и layouts? | 02-frontend-map.md |
| Какие API и сервисы? | 03-backend-map.md |
| Кто что может? | 04-roles-and-access.md |
| Как тестировать? | 06-qa-scenarios.md |
| Запуск локально? | 10-developer-setup.md |
| Как устроен SSR / OG? | 26-ssr-migration.md |
| Auth UI (модалка) | 21-auth-frontend.md |
Локальная проверка
bash
npm run dev # :3000 + :3002Seed: dev@local.test / dev123456, событие demo-event → http://localhost:3000/demo-event