Задание: Node. MVP - копия сервиса создания AI-персонажа (Дистанционная работа)
## Техническое задание: MVP создания AI-персонажа (копия существующего сервиса) (сайт отправлю в лс)
### 1. Цель проекта
* Быстро проверить спрос и юнит-экономику сервиса «создания AI-персонажа» без реализации генератора изображений и сложной базы данных.
* Собрать данные о конверсии landing → оплата и оценить CPL/CPA при рекламном трафике.
* Обеспечить простой механизм возврата средств вручную.
* Обеспечение архитектурного фундамента для дальнейшего усложнения проекта: интеграция реального генератора персонажей, реализация чата с персонажем и добавление галереи готовых персонажей.
### 2. Общий сценарий пользователя
1. Пользователь переходит на лендинг и заполняет опросник, полностью повторяющий структуру и содержание на xxxx.ai (шаги: выбор стиля персонажа, описание внешности и характера и т.д.).
2. После завершения опроса пользователь нажимает «Запустить генерацию» и оплачивает услугу.
3. Система показывает страницу прогресса «Ваш персонаж создаётся…» (имитация).
4. Администратор вручную инициирует возврат средств в панели оплаты.
5. Пользователь получает email с подтверждением возврата.
### 3. Страницы и интерфейсы
> Внимание: дизайн всех страниц и компонентов должен быть точь-в-точь как на xxxx.ai, включая адаптивные версии для мобильных и десктопных устройств.
1. Landing Page
* Описание сервиса, базовые разделы, как на xxxx.ai (сайт отправлю в лс)
* Призыв к действию: кнопка «Создать моего AI-персонажа».
3. Опросник (дизайн и порядок полей точь-в-точь как на xxxx.ai):
4. Страница оплаты
* Интеграция со Stripe/PayPal.
* Отображение суммы и кнопка «Подтвердить платеж».
5. Страница прогресса
* Анимация прогресс-бара.
* Сообщение: «Ваш персонаж создаётся, пожалуйста, ждите».
6. Email-уведомления
* О завершении опросника и начале генерации.
* О выполненном возврате средств.
### 4. Функциональные требования
#### 4.1. Опросник
* Валидация ответов на клиенте и сервере.
* Сохранение ответов в БД (таблица `questionnaire_responses`).
#### 4.2. Платёжная интеграция
* Подключение Stripe (или PayPal) с вебхуками.
* Создание платежа и ожидание события payment_intent.succeeded.
* Сохранение заказа в БД (таблица orders`): статус `paid.
#### 4.3. Имитация генерации
* После оплаты перенаправление на /progress/{order_id}.
* На фронте автоматический переход в «ожидание» (без реальных запросов к AI).
#### 4.4. Возврат средств
* В через Stripe Dashboard оператор вручную инициирует refund.
#### 4.5. Админ-панель (минимум)
* Просмотр списка заказов с фильтрами по статусам paid, refunded.
* Кнопка «Отметить как возвращено» (для записи локального статуса в БД) с отправкой уведомления.
#### 4.6. Аналитика
* Внедрить Mixpanel для подробного трекинга пользовательских событий и воронок.
* Отслеживать события: StartQuestionnaire, CompleteQuestionnaire, PaymentSuccess, RefundIssued.
### 5. Нефункциональные требования
* Адаптивность: мобильный-first.
* Время загрузки страниц не более 2 с.
* Безопасность: HTTPS, защита CSRF, валидация входящих данных.
* Соответствие GDPR: чекбокс согласия на обработку данных в форме опросника.
### 7. Технический стек
* Front-end: React + Next.js, Tailwind CSS
* Back-end: Node.js (Express или NestJS), PostgreSQL.
* Платежи: Stripe SDK + вебхуки.
* Аналитика: mixpanel
### 9. Дальнейшие шаги после MVP
* Интеграция реального генератора персонажей.
* Реализация чата с персонажем.
* Добавление галереи готовых персонажей