Окей, давай сделаем нормально — полное ТЗ уровня “можно отдать команде и они сделают MVP без вопросов”, но без переинжиниринга.
Я буду писать как техлид под быстрый запуск.
ТЗ: MVP сервиса генерации поздравлений (AI Greeting Generator)
1. 🎯 Цель продукта
Создать веб-приложение для генерации персональных поздравлений:
- 1 генерация бесплатно
- далее платные генерации (~200₽)
- быстрый результат (≤10 сек)
2. 👤 Целевая аудитория
- люди 18–40
- “не знаю что написать”
- “нужно срочно поздравление”
3. 🧩 Основной сценарий (User Flow)
Пользователь → открывает сайт
→ вводит данные (кому, повод, стиль)
→ нажимает "Сгенерировать"
→ получает результат
Если:
- первый раз → бесплатно
- дальше → показать paywall
4. 🖥️ Функционал (MVP)
4.1. Форма генерации
Поля:
{
"name": "string", // имя получателя
"occasion": "string", // повод
"style": "enum", // romantic | funny | formal
"details": "string?" // необязательно
}
Кнопка:
4.2. Генерация текста
Интеграция с LLM (через агрегатор или напрямую):
- ChatGPT
- или агрегатор типа Synthex
Промпт (базовый)
Напиши поздравление.
Имя: {{name}}
Повод: {{occasion}}
Стиль: {{style}}
Дополнительно: {{details}}
Требования:
- 5–7 предложений
- живой язык
- эмоционально
- без клише
4.3. Ограничение бесплатных генераций
Логика:
- 1 бесплатная генерация на пользователя
- дальше — платно
Идентификация пользователя:
MVP:
Позже:
4.4. Paywall
После первой генерации:
UI:
Чтобы получить ещё варианты:
— 200₽ за генерацию
4.5. Оплата
Минимально:
4.6. История генераций
Минимум:
- список последних 3 результатов
- хранение на backend
4.7. Кнопки действий
После генерации:
- “Скопировать”
- “Сгенерировать ещё”
- “Скачать”
- “Переделать”
5. ⚙️ Архитектура
5.1. Backend
Рекомендуется:
- Node.js + NestJS (под твой стек)
Модули:
- AuthModule (упрощенный)
- GenerationModule
- PaymentModule
- UserModule
5.2. API
POST /generate
Request:
{
"name": "Аня",
"occasion": "день рождения",
"style": "romantic",
"details": "любит котов"
}
Response:
{
"text": "Поздравление...",
"isFree": true
}
GET /me
{
"freeUsed": true,
"generationsLeft": 0
}
POST /pay
5.3. База данных (PostgreSQL)
Минимум:
Users
"id" uuid
"createdAt" timestamp
"updatedAt" timestamp
"freeUsed" boolean
"generationsLeft" integer
Generations
"id" uuid
"userId" uuid
"input" jsonb
"output" varchar(5000)
"createdAt" timestamp
6. 🎨 Frontend
6.1. Стек
6.2. Страницы
Главная
Результат
6.3. UX требования
- генерация ≤ 10 сек
- минимализм
- 1 экран = 1 действие
7. 🚀 MVP ограничения (важно)
НЕ делать:
- регистрацию
- сложную оплату
- роли
- админку
8. 📊 Метрики
Отслеживать:
- количество генераций
- конверсия free → paid
- среднее время
9. 🔄 План развития
V2:
- голос (интеграция с ElevenLabs)
- картинки (DALL·E)
- аккаунты
V3:
10. ⏱️ Оценка
MVP:
- Backend: 1–2 дня
- Frontend: 1–2 дня
- Интеграция: 1 день
👉 итого: 3–5 дней
Итог
Ты строишь не “сайт поздравлений”, а:
микро-SaaS генерации эмоций
Если хочешь следующий шаг
Могу:
- ⚙️ дать готовый skeleton под NestJS
- 🧠 прописать промпты под разные стили
- 💰 сделать механику оплаты без Stripe
Скажи:
👉 “дай backend скелет”
или
👉 “дай промпты v2”
и двинем дальше в реализацию 🚀
Окей, давай сделаем нормально — полное ТЗ уровня “можно отдать команде и они сделают MVP без вопросов”, но без переинжиниринга.
Я буду писать как техлид под быстрый запуск.
ТЗ: MVP сервиса генерации поздравлений (AI Greeting Generator)
1. 🎯 Цель продукта
Создать веб-приложение для генерации персональных поздравлений:
2. 👤 Целевая аудитория
3. 🧩 Основной сценарий (User Flow)
4. 🖥️ Функционал (MVP)
4.1. Форма генерации
Поля:
{ "name": "string", // имя получателя "occasion": "string", // повод "style": "enum", // romantic | funny | formal "details": "string?" // необязательно }Кнопка:
4.2. Генерация текста
Интеграция с LLM (через агрегатор или напрямую):
Промпт (базовый)
4.3. Ограничение бесплатных генераций
Логика:
Идентификация пользователя:
MVP:
Позже:
4.4. Paywall
После первой генерации:
UI:
4.5. Оплата
Минимально:
ручная (перевод + подтверждение)
или
подключить:
4.6. История генераций
Минимум:
4.7. Кнопки действий
После генерации:
5. ⚙️ Архитектура
5.1. Backend
Рекомендуется:
Модули:
5.2. API
POST /generate
GET /me
{ "freeUsed": true, "generationsLeft": 0 }POST /pay
{ "amount": 200 }5.3. База данных (PostgreSQL)
Минимум:
Users
Generations
6. 🎨 Frontend
6.1. Стек
6.2. Страницы
Главная
Результат
6.3. UX требования
7. 🚀 MVP ограничения (важно)
НЕ делать:
8. 📊 Метрики
Отслеживать:
9. 🔄 План развития
V2:
V3:
10. ⏱️ Оценка
MVP:
👉 итого: 3–5 дней
Итог
Ты строишь не “сайт поздравлений”, а:
Если хочешь следующий шаг
Могу:
Скажи:
👉 “дай backend скелет”
или
👉 “дай промпты v2”
и двинем дальше в реализацию 🚀