Рейтинг: 1 411
не верифицирован
Всего отзывов: 1 0
Профессионализм: 10 Коммуникация: 10
  • Работ в портфолио: 2
  • Типовых услуг: 0
  • Работ на продажу: 0
Был на сайте:

Бэкенд сайта по продаже Б/У машин из Южной Кореи

Описание

Нужно было импортировать данные с корейского сайта Б/У машин через стороннее API и сохранять в БД. Изначально нужно было сделать полный импорт объявлений, а затем обновлять базу, получая из апи изменения. Так же нужно было переводить цену из корейских вон в рубли, посчитав для машины все таможенные пошлины и сборы, которые зависят от её характеристик. Так же нужно было реализован поиск машин по фильтрам. При оставлении заявки на сайте, бот компании должен присылать в определённый чат уведомление с данными клиента и нужной машины.

Решение

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

Результат

Результат подтвердил все ожидания, импорт и обновление объявлений работают быстро и не дают сильной нагрузки, из-за чего появилась возможность сэкономить на VPS. Пересчёт цен и подсчёт пошлин работает корректно, детально отображаются расходы на странице машины. Страницы грузятся быстро, получаем 99+ на десктопе в PageSpeed Insights.

Ссылки на примеры реализации

 mdmgroupmsk.ru/catalog

Презентация проекта

Снимок экрана 2025-11-12 в 00.56.28.png
Снимок экрана 2025-11-12 в 00.57.30.png
Снимок экрана 2025-11-12 в 00.58.48.png

Оценили проект:

0