Нужно было импортировать данные с корейского сайта Б/У машин через стороннее API и сохранять в БД. Изначально нужно было сделать полный импорт объявлений, а затем обновлять базу, получая из апи изменения. Так же нужно было переводить цену из корейских вон в рубли, посчитав для машины все таможенные пошлины и сборы, которые зависят от её характеристик. Так же нужно было реализован поиск машин по фильтрам. При оставлении заявки на сайте, бот компании должен присылать в определённый чат уведомление с данными клиента и нужной машины.
Бэкенд написан на FastAPI, базу данных использовал PostgreSQL. Сложной задачей стал импорт и синхронизация объявлений из-за большого объёма данных. Нужно было хранить и обновлять более 100000 объявлений, для каждого около 10 ссылок на картинки. Для импотра использовалась вставка в staging-таблицу по батчам, а затем распределение в конечные через JOIN-ы. Синхронизацию данных настроил каждые 3 часа. Апи отдаёт изменения пакетами по 10. Чтобы не тратить время на последовательные запросы, запрашивал параллельно несколько пакетов, а затем батчами вставлял в БД. Для перевода цен использовал АПИ ЦБ, ежедневный пересчёт под курс (батчами). Для отправки заявки в телеграм использован aiogram. Для удобства работы написан CI/CD: при пуше в main собирается docker образ, и на сервере подтягивается из GHCR.
Результат подтвердил все ожидания, импорт и обновление объявлений работают быстро и не дают сильной нагрузки, из-за чего появилась возможность сэкономить на VPS. Пересчёт цен и подсчёт пошлин работает корректно, детально отображаются расходы на странице машины. Страницы грузятся быстро, получаем 99+ на десктопе в PageSpeed Insights.