Мини-дашборд аналитики заказов. RetailCRM + Supabase + Next.js + Telegram Bot.
RetailCRM (заказы) --> скрипт синхронизации --> Supabase (база данных)
|
Next.js Дашборд (Vercel)
|
Telegram Бот (алерты > 50K KZT)
- Python 3.10+
- Node.js 18+
- Аккаунты: RetailCRM (демо), Supabase, Vercel, Telegram Bot
- Скопируйте
.env.exampleв.env - Заполните все значения в
.env
- Зайдите в Supabase проект > SQL Editor
- Вставьте и выполните содержимое
supabase_schema.sql
cd scripts
pip install -r requirements.txt
python upload_to_retailcrm.pypython sync_retailcrm_to_supabase.pyИли для быстрого тестирования (напрямую в Supabase):
python load_mock_to_supabase.pycd dashboard
npm install
npm run devДля Vercel: запушить на GitHub, импортировать в Vercel, добавить env vars, задеплоить.
cd scripts
python telegram_bot.py"Построй полный проект мини-дашборда: Python-скрипты для загрузки mock_orders.json в RetailCRM API, синхронизация в Supabase, Next.js дашборд с Recharts, Telegram бот для заказов > 50K KZT. TypeScript, темная тема, деплой на Vercel."
"Создай SQL-схему для таблицы orders в Supabase: retailcrm_id, поля клиента, total_amount, items JSONB, utm_source. Добавь RLS-политики для публичного чтения и записи через service role."
"Сделай страницу дашборда с KPI-карточками, area-графиком заказов по датам, donut-диаграммой городов, bar-графиками выручки и UTM-источников, горизонтальным баром топ-товаров. Recharts, темная тема."
"Улучши дизайн: glassmorphism-карточки, градиентные заливки, лучшая типографика, профессиональный вид без эмодзи."
"Переведи все надписи на русский язык, т.к. задание на русском."
"Создай Telegram бота, который мониторит Supabase на заказы > 50 000 KZT, отправляет HTML-алерты с данными клиента, автоопределение chat_id."
-
DNS/Сетевые проблемы: Рабочая машина не резолвила домены supabase.co и retailcrm.ru. Решение: загрузил данные через SQL Editor в браузере, Telegram-сообщения отправлял через прямые API-вызовы.
-
Формат ключей Supabase: Новый формат
sb_publishable_/sb_secret_вместо JWTeyJ.... Клиент supabase-js принял их, но REST root endpoint требовал secret key. Решение: использовал publishable key для дашборда (работает для запросов к таблицам). -
Опечатка в URL Supabase: Неправильно извлек project ref из URL дашборда (
quiqmhntwotmslcqwgtvвместо правильногоqusjmhntwotmslcgwgtv). Потратил значительное время на дебаг. Решение: nslookup подтвердил правильный hostname. -
Ошибка prerender в Next.js: Билд падал из-за пустого URL Supabase на этапе сборки. Решение: добавил placeholder URL в инициализацию клиента.
-
Обрезка путей файлов: Рабочая директория с кириллицей вызывала обрезку длинных путей при создании файлов. Решение: использовал Python-скрипты для генерации файлов.
Python, Next.js 14, TypeScript, Recharts, Supabase, RetailCRM API v5, Telegram Bot API, Vercel