Бюджет:
50 000 руб
Техническое задание: платформа загрузки и хранения данных
1. Цель проекта
Разработать автономное приложение для автоматической загрузки данных из API Wildberries и Google Sheets в базу данных PostgreSQL на выделенном сервере. Приложение должно требовать минимального обслуживания, хранить исторические данные, автоматически адаптироваться к изменениям структуры данных и иметь простой веб-интерфейс для управления источниками.
2. Функциональные требования
2.1 Поддерживаемые источники данных
1. API Wildberries:
- /api/v1/supplier/incomes
- /api/v1/supplier/orders
- /api/v1/supplier/sales
- /api/v5/supplier/reportDetailByPeriod
- /api/v1/warehouse_remains
- /api/v1/warehouse_remains/tasks/{task_id}/download
- /adv/v2/fullstats
- /api/v2/nm-report/detail
2. Google Sheets:
- Возможность указать ссылку на таблицу и ключ доступа (OAuth или сервисный аккаунт).
- Таблица должна загружаться полностью один раз в день.
- Данные сохраняются в отдельной таблице PostgreSQL.
2.2 Сбор данных
- Встроенное расписание (по умолчанию 1 раз в сутки, возможно до 2–3 раз).
- Все данные сохраняются исторически.
- Автоматическая адаптация структуры таблиц (новые поля добавляются автоматически).
- Уведомления при исчезновении или изменении типа полей.
2.3 Веб-интерфейс
- Просмотр списка подключенных источников.
- Добавление нового источника (API или Google Sheets).
- Настройка расписания для каждого источника.
- Просмотр логов (успешные и ошибочные операции).
2.4 Уведомления (Telegram-бот)
- Отправка текстовых уведомлений при:
• сбое загрузки данных
• изменении структуры данных
• ошибках записи в базу данных
- Ответные команды бота не требуются.
3. Нефункциональные требования
- ОС: Linux (Ubuntu Server 22.04 LTS).
- СУБД: PostgreSQL.
- Рекомендуемый язык разработки: Python.
- Установка: автоматический скрипт (install.sh).
- Конфигурации хранятся в JSON/YAML и редактируются через веб-интерфейс.
- API-ключи и токены Google хранятся в защищенном виде.
4. Мониторинг и контроль
- Логирование в файл (дата, источник, статус, количество строк, ошибки).
- Просмотр логов через веб-интерфейс.
- Telegram-уведомления для критических событий.
5. Документация
- Инструкция по установке и настройке.
- Инструкция по добавлению нового источника через веб-интерфейс.
- Описание структуры базы данных.
6. Результаты проекта
- Исходный код приложения.
- Скрипт автоматической установки.
- Конфигурационные файлы.
- Документация (установка, администрирование, структура БД).
7. Дополнительно (по согласованию)
- Экспорт данных в CSV через веб-интерфейс.
- Импорт данных из CSV через веб-интерфейс.