Skip to content

[Angular+Nestjs] MVP сервиса генерации поздравлений (AI Greeting Generator) #11

@EndyKaufman

Description

@EndyKaufman

Окей, давай сделаем нормально — полное ТЗ уровня “можно отдать команде и они сделают 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:

  • localStorage + cookie

Позже:

  • регистрация

4.4. Paywall

После первой генерации:

UI:

Чтобы получить ещё варианты:
— 200₽ за генерацию

4.5. Оплата

Минимально:

  • ручная (перевод + подтверждение)
    или

  • подключить:

    • Stripe / YooKassa (по региону)

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

{
  "amount": 200
}

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. Стек

  • React / Next.js

6.2. Страницы


Главная

  • форма
  • CTA
  • описание

Результат

  • текст
  • кнопки
  • paywall

6.3. UX требования

  • генерация ≤ 10 сек
  • минимализм
  • 1 экран = 1 действие

7. 🚀 MVP ограничения (важно)

НЕ делать:

  • регистрацию
  • сложную оплату
  • роли
  • админку

8. 📊 Метрики

Отслеживать:

  • количество генераций
  • конверсия free → paid
  • среднее время

9. 🔄 План развития


V2:

  • голос (интеграция с ElevenLabs)
  • картинки (DALL·E)
  • аккаунты

V3:

  • шаблоны
  • подписка
  • API

10. ⏱️ Оценка


MVP:

  • Backend: 1–2 дня
  • Frontend: 1–2 дня
  • Интеграция: 1 день

👉 итого: 3–5 дней


Итог

Ты строишь не “сайт поздравлений”, а:

микро-SaaS генерации эмоций


Если хочешь следующий шаг

Могу:

  • ⚙️ дать готовый skeleton под NestJS
  • 🧠 прописать промпты под разные стили
  • 💰 сделать механику оплаты без Stripe

Скажи:
👉 “дай backend скелет”
или
👉 “дай промпты v2”

и двинем дальше в реализацию 🚀

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions