Тестовая задача

Задача: создать сервис, выполняющий 2 задачи:
регулярное получение информации о тарифах wb и сохранение их в БД на каждый день;
регулярное обновление информации о актуальных тарифах в google-таблицах.
Входные данные
- СУБД - PostgreSQL.
- Библиотека для работы с СУБД knex.js
- Описание типов - typescript или jsDoc.
- Endpoint: https://common-api.wildberries.ru/api/v1/tariffs/box
(Тарифы для коробов )
- Обращение к google-таблицам для выгрузки данных из PostgreSQL должно производится по их идентификатору. Количество таблиц - N.
- Приложение запускается и работает в docker контейнерах.
Тезисный план решения задачи:
- Настроить Docker и подготовить compose файл.
- Разобрать структуру данных api “Тарифы коробов”, выбрать разумную форму хранения данных в БД.
- Подготовить миграции для базы данных.
- Написать логику для получения данных по API WB
- Ежечасное получение данных по api “Тарифы коробов” .
- Данные о тарифах накапливать в БД для каждого дня.
- Информация, получаемая ежечасно в течение одного дня, должна обновлять уже имеющиеся на этот день данные.
- Создать механизм доставки данных из БД в произвольное количество google-таблиц.
- Данные о тарифах в google таблицах должны регулярно обновляться (тестовые таблицы создать самостоятельно, лист для тарифов - stocks_coefs).
- Данные отсортировать по возрастанию коэффициента.
- Код необходимо разместить на GitHub.
- Репозиторий должен содержать код приложения, compose конфигурацию для docker и readme с исчерпывающей инструкцией для запуска.
- В репозиторий сразу добавить файлы конфигурации в которых будут отсутствовать чувствительные данные.
- Само приложение должно запускаться в контейнерах, для запуска должно быть достаточно выполнить команду docker compose up.
Токен WB API будет выдан на сайте hh.ru после подтверждения готовности выполнить задачу в указанный дедлайн.
Результат
Готовая задача - это репозиторий на GitHub, который содержит:
1) код приложения.
2) compose файл для docker
3) readme с исчерпывающей инструкцией для запуска.
Если необходимо, то описать способ проверки функционирования приложения.
В репозиторий сразу добавить заготовки файлов конфигурации, в которых будут отсутствовать чувствительные данные.
В конфигурации DB пользователя, пароль и название БД прописать - postgres, не нужно ничего придумывать т.к это тестовое задание 🙂.
Само приложение должно запускаться одной командной docker compose up и не требовать никаких дополнительных манипуляций.
Для подключения к db предпочтительнее использовать knex или pg
Для уменьшения трудоемкости выполнения задачи и ускорения процесса её проверки, предлагаем воспользоваться шаблоном проекта btlz-wb-test. Тестовые задания, выполненные на его основе, проверим в приоритетном порядке.
По готовности - необходимо прислать ссылку на Git в сообщении на HH 👍