Этапы проекта
# Дорожная карта разработки блоками
Актуальный 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.