Skip to content

aivv73/gbc_analytics_dashboard

Repository files navigation

GBC Analytics Dashboard

Описание проекта

Мини-пайплайн для обработки заказов:

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

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

Работа велась итеративно:

  1. Разбиение задачи на этапы
  2. Генерация базового решения через AI
  3. Проверка вручную
  4. Уточнение промптов при ошибках

Основные сложности и решения

RetailCRM

  • Заказы не принимались из-за отсутствующего orderType
    → добавлено автоматическое создание через API

  • Ошибка при использовании некорректного limit
    → исправлено на допустимые значения


Supabase

  • Неверный формат SUPABASE_URL
    → добавлена нормализация

  • Bootstrap через API не работал (403)
    → реализован через прямое подключение к Postgres

  • Проблемы с подключением к БД
    → использован pooler-host вместо direct


Python / окружение

  • Несовместимость Python 3.15
    → использован Python 3.12

  • Ошибка SSL
    → добавлен SSL_CERT_FILE


Frontend

  • Страница не работала через file://
    → запуск через HTTP-сервер

Telegram

  • Проблема с дедупликацией уведомлений
    → реализован флаг отправки (частично)

Деплой

  • Нельзя хранить конфиг в репозитории
    → реализована генерация config из env

Возможные улучшения

  • реализация real-time через вебхуки
  • улучшение обработки ошибок
  • добавление фильтров на дашборде
  • полноценная дедупликация уведомлений

Демо

Дашборд (Vercel):
https://gbc-analytics-dashboard-alpha.vercel.app/


Итог

Проект демонстрирует:

  • способность быстро разбираться в новых API
  • построение интеграций между сервисами
  • использование AI в процессе разработки
  • доведение задачи до рабочего MVP (end-to-end)

Releases

No releases published

Packages

 
 
 

Contributors