Skip to content

Hqzdev/Operon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

127 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Operon

AI-слой принятия решений для Shopify и DTC-продавцов.

Operon анализирует метрики рекламы и продуктов и выдаёт конкретный вывод: масштабировать, убить, тестировать снова или починить. Вместо дашбордов с числами — готовое следующее действие.


Для кого

  • Shopify-продавцы — быстро понять, что заслуживает бюджета, а что нужно остановить
  • DTC-бренды — чистые решения по продуктам, офферам и кампаниям
  • Дропшиппинг-магазины — отрезать слабые тесты раньше, до потери денег
  • Агентства — единый поток решений по нескольким аккаунтам клиентов

Что делает

Анализ рекламной кампании

Вводишь метрики теста — CTR, CPC, CPM, показы, клики, корзины, покупки, выручку, цену продукта и себестоимость. Получаешь:

Блок Что внутри
Решение SCALE / KILL / TEST AGAIN / FIX + уверенность (low / medium / high)
Диагноз Главная проблема: креатив, таргетинг, воронка, продукт или оффер
План действий 3 конкретных следующих шага
Валидация Потенциал продукта (high / unclear / low)
Прибыльность Break-even CPA, break-even ROAS, текущий CPA
Слабое место воронки Где теряются деньги: показы→клики, клики→корзина, корзина→покупка
Углы для креативов 3 идеи для новых объявлений под диагноз

Анализ делает GigaChat (GigaChat-2-Pro), при недоступности — встроенный rule-based движок.

Аллокатор бюджета (план Pro)

Вводишь несколько рекламных групп и общий бюджет — получаешь распределение с рекомендацией SCALE / HOLD / CUT по каждой на основе эффективности.

Симулятор сценариев (план Pro)

Задаёшь изменения (+20% CTR, −10% CPC, новый бюджет) — видишь спроецированные метрики и изменение прибыли/ROAS до того, как потратить деньги.


Тарифы

Тариф Цена Лимит анализов Аллокатор / Симулятор
Starter Бесплатно 10 / месяц
Basic 1 090 ₽ / мес Без лимита
Pro 2 190 ₽ / мес Без лимита

Оплата через YooKassa (карты, СБП, другие методы). Доступ открывается сразу после оплаты.


Технологии

Слой Стек
Фронтенд Next.js 16 (App Router), React 19, Tailwind CSS, shadcn/ui
API Next.js Route Handlers (serverless)
База данных PostgreSQL + Prisma ORM (@prisma/adapter-pg)
AI GigaChat API (Сбер), rule-based fallback
Интеграции Meta Marketing API, TikTok Marketing API, Shopify Admin API (read-only OAuth)
Аутентификация JWT (jsonwebtoken), пароли через bcryptjs
Платежи YooKassa REST API
Язык TypeScript (строгий режим)

Запуск локально

# Зависимости
npm install

# Настроить .env.local (DATABASE_URL, JWT_SECRET, GIGACHAT_AUTH_KEY, YOOKASSA_*)
cp .env.local.example .env.local

# Применить миграции
npx prisma migrate dev

# Запустить Next.js
npm run dev

Приложение будет доступно на http://localhost:3000.


Деплой на Vercel

Обязательные переменные окружения в Vercel → Settings → Environment Variables:

DATABASE_URL          # строка подключения к облачной PostgreSQL (Neon, Supabase и т.п.)
JWT_SECRET            # случайная строка ≥ 16 символов
GIGACHAT_AUTH_KEY     # ключ GigaChat API
YOOKASSA_SHOP_ID      # ID магазина YooKassa
YOOKASSA_SECRET_KEY   # секретный ключ YooKassa
YOOKASSA_RETURN_URL   # https://ваш-домен.vercel.app/dashboard
NEXT_PUBLIC_APP_URL   # https://ваш-домен.vercel.app

Для read-only интеграций добавьте OAuth-ключи нужных провайдеров:

META_APP_ID
META_APP_SECRET
TIKTOK_APP_ID
TIKTOK_APP_SECRET
SHOPIFY_API_KEY
SHOPIFY_API_SECRET
INTEGRATION_TOKEN_SECRET  # рекомендуется: отдельная случайная строка для шифрования токенов
INTEGRATION_SYNC_SECRET   # опционально: секрет для /api/integrations/sync

OAuth callback URL:

https://ваш-домен.vercel.app/api/integrations/oauth/meta/callback
https://ваш-домен.vercel.app/api/integrations/oauth/tiktok/callback
https://ваш-домен.vercel.app/api/integrations/oauth/shopify/callback

NEXT_PUBLIC_API_BASE_URL для Vercel обычно не нужен: фронтенд использует встроенные Next.js API-роуты по /api. Если переменная уже добавлена в Vercel, не ставьте туда http://localhost:4000/api — удалите её или укажите реальный внешний backend URL.

После подключения production-базы примените миграции:

pnpm prisma:deploy

Ошибка вида The table public.User does not exist означает, что DATABASE_URL указывает на базу без таблиц Prisma или миграции ещё не были применены.


Структура проекта

app/                  # Next.js страницы и API-роуты
  api/
    auth/             # login, register
    users/me/         # профиль, смена пароля, удаление
    analysis/         # история и создание анализов
    payments/         # создание платежа, вебхук, синхронизация
    integrations/     # OAuth, sync и synced analysis inputs
    budget/allocate/  # аллокатор бюджета
    scenario/simulate/ # симулятор сценариев
components/mvp/       # основные UI-компоненты (дашборд, форма анализа)
src/services/         # бизнес-логика (authService, analysisService, ...)
src/models/           # Prisma-клиент
prisma/               # схема базы данных
lib/                  # утилиты Next.js (storage, gigachat, decision-engine)

Releases

Packages

Contributors

Languages