Этапы проекта

# Дорожная карта разработки блоками

Актуальный handoff для нового чата: `docs/PROJECT_HANDOFF_2026-06-23.md`.

## Текущий фокус на 2026-06-23

Первичный дизайн scrapbook-открытки завершен. Дальше проект переводится из локального визуального прототипа в рабочий MVP-flow:

1. рабочие ссылки организатора, участников и получателя;
2. статусы открытки;
3. базовые действия в финале;
4. закрытие сбора поздравлений;
5. актуальная документация;
6. Postgres-режим для VPS;
7. затем деплой, файловое хранение, AI и оплата.

AI, регистрация, оплата и полноценная админка пока не являются ближайшим блоком. Ближайший технический фокус — проверить ручной MVP-flow на PostgreSQL и подготовить VPS-запуск.

## Принцип работы

Проект делаем поэтапно, небольшими блоками. Каждый блок должен:

1. иметь понятную цель;
2. давать законченный промежуточный результат;
3. сопровождаться обновлением документации;
4. включать тесты и логирование там, где уже появляется прикладной код.

## Блок 0 — Подготовка проекта

### Цель

Подготовить рабочую основу, чтобы дальше разработка шла предсказуемо.

### Что входит

1. Документы проекта.
2. Правила работы.
3. Локальный git.
4. Подключение удаленного репозитория.
5. Выбор стека и базового каркаса приложения.

### Результат

Есть управляемый репозиторий и понятная структура начала разработки.

## Блок 1 — Каркас приложения

### С чего начнем

Первым практическим шагом разработки будет именно этот блок.

### Статус

Блок выполнен в базовом объеме:

1. Каркас приложения создан.
2. Тестовая среда поднята.
3. Базовое логирование добавлено.
4. Стартовые страницы-заглушки созданы.

### Что входит

1. Инициализация проекта на выбранном стеке.
2. Базовая структура директорий.
3. Настройка линтера и форматирования.
4. Настройка тестовой среды.
5. Настройка базового логирования.
6. Базовый layout и технические страницы-заглушки.

### Результат

Есть рабочее приложение, которое запускается, тестируется и готово к дальнейшему наращиванию.

## Блок 2 — Лендинг и сценарий создания открытки

### Что делаем следом

После каркаса сразу делаем первый пользовательский путь.

### Статус

Блок выполнен в базовом объеме:

1. Страница создания открытки собрана.
2. Форма, выбор шаблона и серверная валидация работают.
3. Черновик сохраняется локально.
4. Организатор получает ссылку участника, ссылку управления и текст для чата.

### Что входит

1. Главная страница.
2. Оффер и описание сценариев.
3. Форма создания открытки.
4. Выбор одного из 4 шаблонов.
5. Базовая валидация формы.
6. Создание сущности открытки в системе.

### Результат

Пользователь может создать черновик открытки без регистрации.

## Блок 3 — Страница участника и добавление поздравления

### Что входит

1. Публичная ссылка участника.
2. Экран с данными открытки.
3. Форма добавления поздравления.
4. Валидация, антиспам и базовые ограничения.
5. Сохранение поздравления.
6. Событийное логирование ключевых действий.

### Результат

Организатор уже может реально собирать поздравления по ссылке.

### Статус

Блок выполнен в базовом объеме:

1. Публичная ссылка участника работает.
2. Форма поздравления и серверная валидация работают.
3. Поздравления сохраняются локально и отображаются на странице участника.

## Блок 4 — AI-помощник поздравлений

### Что входит

1. Короткий сценарий опроса для участника.
2. Генерация 3 вариантов поздравления.
3. Ограничения по количеству генераций.
4. Логирование AI-вызовов.
5. Обработка ошибок AI.
6. Тесты на прикладную логику AI-слоя.

### Результат

Участник может быстро получить текст поздравления, даже если сам не знает, что написать.

### Статус

Блок выполнен в базовом объеме:

1. AI-помощник на странице участника работает.
2. Генерируются 3 варианта черновика.
3. Есть лимит генераций на открытку.
4. AI-сценарий логируется.
5. Внутренний генератор позже можно заменить на внешнюю модель.

## Блок 5 — Панель организатора и предпросмотр

### Что входит

1. Страница управления по секретной ссылке.
2. Список поздравлений.
3. Скрытие и удаление поздравлений.
4. Копирование ссылки участника.
5. Копирование текста напоминания.
6. Предпросмотр финальной открытки.

### Результат

Организатор получает реальный контроль над открыткой и видит ценность до оплаты.

### Статус

Блок выполнен в базовом объеме:

1. Секретная страница организатора работает.
2. Список поздравлений и статусы доступны.
3. Можно скрыть, вернуть и удалить поздравление.
4. Есть базовый предпросмотр и текст напоминания.

## Блок 6 — Оплата и публикация

### Что входит

1. Один тариф.
2. Интеграция платежной системы.
3. Статусы оплаты.
4. Webhook.
5. Публикация финальной открытки после оплаты.
6. Логирование платежных событий.
7. Тесты критической платежной логики.

### Результат

Появляется первая проверяемая монетизация.

## Блок 7 — Финальная открытка и вау-эффект

### Что входит

1. Обложка.
2. Анимация открытия.
3. Красивые карточки поздравлений.
4. Подстройка 4 шаблонов под финальный экран.
5. Мобильная полировка.

### Результат

Продукт начинает ощущаться как подарок, а не просто как страница с текстом.

## Блок 8 — Полировка MVP

### Что входит

1. Базовая аналитика.
2. Юридические страницы.
3. Админские минимальные инструменты.
4. Проверка мобильных сценариев.
5. Добивка тестов и логирования.
6. Ручное QA по ключевой воронке.

### Результат

MVP готов к первому аккуратному запуску и проверке спроса.

## Что не делаем до подтверждения спроса

1. Несколько тарифов.
2. Широкую SEO-сетку.
3. Фото в каждом поздравлении.
4. Видео и голос.
5. Telegram/VK интеграции.
6. Корпоративные кабинеты.
7. Большую платформенность.
## Update 2026-06-14

### Current baseline

1. Landing is a showcase, not the final place where configuration happens.
2. A new draft opens straight into the manage experience.
3. `Оформление открытки` now owns basics, structure, and template choice.
4. `Поздравления и фото` stays separate as the content moderation area.

### Next likely step

1. Improve the self-explanatory hints inside each block card for blank and semi-empty drafts.
2. Remove the remaining legacy `occasion` dependency from draft creation and storage over time.
 
## Current Focus After 2026-06-15 Editor Pass

The organizer editor is now usable enough to continue with product polish instead of restructuring.

Recommended next work:

1. Improve the right-side previews in both manage tabs:
   - show closer-to-final visual cards;
   - reduce admin-like helper copy;
   - make empty states feel guided and premium.
2. Implement `AI-общее поздравление`:
   - generate one common team greeting from visible contributions;
   - explain that it appears only when the corresponding block is enabled in `Оформление открытки`;
   - keep it editable by the organizer.
3. Strengthen empty states:
   - no contributions yet;
   - no photos yet;
   - selected layout needs photo but photo is missing.
4. Only after that return to publish/payment flow.

Lower priority for now:

1. Reactions to contributions.
2. Per-contribution photos.
3. PDF/export.
4. Complex analytics or external database migration.

## Current Focus After 2026-06-23 MVP-flow Pass

The visual scrapbook card has a fixed first design baseline. The next useful block is participant conversion polish:

1. Improve `/join/[slug]` where a participant writes a greeting.
2. Make the form feel clear, friendly, and complete on desktop and mobile.
3. Keep the final card visual mostly stable unless a new explicit design task appears.
4. Use `make-interfaces-feel-better` principles for typography, surfaces, animation, hit areas, and interaction states.
5. After participant UX, return to Postgres/VPS manual flow and production launch checklist.