Перейти к содержимому
← Все проекты

// коммерческий проект · 6 месяцев

Аналитика Wildberries

Веб-сервис для управления рекламой на маркетплейсе Wildberries. Собирает данные через официальный API, показывает статистику по кампаниям, рассчитывает метрики. Проект разрабатывался как онлайн-сервис для продавцов, но заказчик сменил направление бизнеса до запуска.

Период ноябрь 2025 - апрель 2026
Роль Единственный разработчик
Стек React, Next.js, FastAPI, PostgreSQL, Redis, Docker
Инструмент разработки Claude Code (субагенты, цепочки задач)
25 минут полное ночное обновление
11 API-доменов интеграция с Wildberries
37 задач автоматическое обновление данных
50 таблиц PostgreSQL

// процесс разработки

Я проектирую, Claude Code реализует

Архитектура, выбор технологий, решение нетривиальных проблем - моя зона. Claude Code берёт на себя рутину: написание кода по спецификации, тесты, рефакторинг. По сути это следующий уровень абстракции - вместо написания каждой строки я фокусируюсь на системе в целом.

Мой пайплайн

Настроил систему из 8 субагентов со строгими правилами: TDD-кодер, QA-валидатор, документатор, SRE-монитор. Каждый работает по инструкциям, которые я задал.

Контроль на каждом этапе

Код проходит обязательные фазы: тесты → реализация → QA → документация. Я проверяю результат и принимаю решение о деплое.

Фокус на архитектуре

Рутинная реализация делегирована - время уходит на проектирование системы, интеграции, отладку сложных сценариев.

Актуальная документация

Агенты подтягивают документацию библиотек через MCP-сервер, не полагаясь на устаревшие знания из обучающих данных.

// задача

От таблиц к веб-сервису

Аналитика работала через n8n и Google Sheets - для старта это было достаточно, но бизнес вырос и потребовался полноценный сервис. Я написал его с нуля: фронтенд на React, бэкенд на FastAPI, данные в PostgreSQL. Полное ночное обновление всех данных занимает 25 минут, внутридневные обновления - менее 4 минут.

Дашборд рекламных кампаний

Дашборд: кампании с метриками, фильтры, сортировка

Детальная статистика кампании

Статистика кампании: разбивка по дням

Загрузка данных из Wildberries

Подключение: загрузка данных из WB API

// интерфейс

Дашборд с 17 рекламными метриками

Основной экран - таблица рекламных кампаний. Для каждой кампании показываются расход, показы, клики, конверсии, стоимость заказа и ещё десяток метрик. Можно фильтровать по датам, статусу, типу кампании. Каждую строку можно раскрыть и увидеть разбивку по товарам.

Управление кампаниями

Запуск, пауза, пополнение бюджета - прямо из интерфейса, без захода в кабинет WB.

Статистика по дням

Детальная страница кампании: агрегированные данные за период и разбивка по каждому дню.

Гибкая фильтрация

По датам (пресеты + произвольный период), статусу, типу кампании, конкретному товару.

Настройка колонок

Можно выбрать какие метрики показывать и в каком порядке. Настройки сохраняются.

// под капотом

37 фоновых задач и умный сборщик данных

Данные обновляются автоматически: ночью - полная синхронизация за 90 дней (22 задачи, ~25 минут), днём - обновления каждые 30–60 минут (13 задач, ~4 минуты). Подключение нового продавца с загрузкой всей истории - ~43 минуты. Ни одной ошибки ограничения частоты запросов за всё время работы.

Ограничения API

Встроенный контроль частоты запросов: от 1 до 300 запросов в минуту в зависимости от типа данных. Автоматические повторы при ошибках.

Шифрование токенов

API-ключи продавцов хранятся в зашифрованном виде. Расшифровываются только в момент запроса.

База данных

50 таблиц в PostgreSQL, 43 миграции. Заказы, продажи, рекламные кампании, остатки, отзывы, поставки.

Уведомления

Telegram-бот для алертов: ошибки API, статус синхронизации, проблемы с токенами продавцов.

// инфраструктура

5 контейнеров, автодеплой

Сервис работал на VPS в пяти Docker-контейнерах: фронтенд (Next.js), бэкенд (FastAPI), обработчик фоновых задач, PostgreSQL и Redis. Деплой автоматический - при каждом обновлении кода через Coolify. SSL-сертификаты обновляются автоматически.