Мини-пайплайн для обработки заказов:
RetailCRM → Supabase → Дашборд → Telegram-уведомления
Проект реализует полный цикл:
- импорт заказов в RetailCRM
- синхронизацию данных в Supabase
- визуализацию данных
- уведомления о заказах с высокой суммой
Решение собрано как MVP с фокусом на скорость разработки и простоту интеграций.
- Python — интеграция с API и ETL
- Supabase — база данных (PostgreSQL + REST API)
- HTML + Chart.js — дашборд
- Telegram Bot API — уведомления
- RetailCRM API — источник данных
RetailCRM → Python scripts → Supabase → Dashboard (Vercel) ↓ Telegram alerts (>50k)
- Импорт тестовых заказов из
mock_orders.jsonв RetailCRM - Синхронизация заказов из RetailCRM в Supabase (upsert)
- Веб-дашборд с графиком заказов
- Telegram-уведомления при заказах > 50 000 ₸
- Деплой на Vercel
Основной фокус был на:
- быстром создании рабочего MVP
- минимизации сложности
- прозрачности потока данных
Решение реализовано без избыточной архитектуры (например, без полноценного backend-приложения), так как это не требовалось для задачи.
Рассматривались варианты:
- использование no-code инструментов (Make / n8n)
- использование Next.js с API routes
- реализация real-time через вебхуки
Выбран текущий подход как наиболее простой, быстрый и достаточный для MVP.
- нет real-time синхронизации (используется скрипт)
- минимальная обработка ошибок
- упрощённый UI
Это сознательный выбор в пользу скорости разработки.
AI (Codex CLI) использовался как основной инструмент разработки.
- "The repo contains a file named mock_orders.json with 50 test orders. Import them into your RetailCRM via the API. Use python."
- "Create a web page with an order chart (using data from Supabase)."
- "Set up a notification in Telegram whenever an order totaling more than 50,000 ₸ appears in RetailCRM."
- "make script automatically create tables"
- "can you make script automatically create ordertypes?"
Работа велась итеративно:
- Разбиение задачи на этапы
- Генерация базового решения через AI
- Проверка вручную
- Уточнение промптов при ошибках
-
Заказы не принимались из-за отсутствующего
orderType
→ добавлено автоматическое создание через API -
Ошибка при использовании некорректного
limit
→ исправлено на допустимые значения
-
Неверный формат
SUPABASE_URL
→ добавлена нормализация -
Bootstrap через API не работал (403)
→ реализован через прямое подключение к Postgres -
Проблемы с подключением к БД
→ использован pooler-host вместо direct
-
Несовместимость Python 3.15
→ использован Python 3.12 -
Ошибка SSL
→ добавленSSL_CERT_FILE
- Страница не работала через
file://
→ запуск через HTTP-сервер
- Проблема с дедупликацией уведомлений
→ реализован флаг отправки (частично)
- Нельзя хранить конфиг в репозитории
→ реализована генерация config из env
- реализация real-time через вебхуки
- улучшение обработки ошибок
- добавление фильтров на дашборде
- полноценная дедупликация уведомлений
Дашборд (Vercel):
https://gbc-analytics-dashboard-alpha.vercel.app/
Проект демонстрирует:
- способность быстро разбираться в новых API
- построение интеграций между сервисами
- использование AI в процессе разработки
- доведение задачи до рабочего MVP (end-to-end)