Skip to content

A Python-based application designed to automate the process of matching and comparing product listings across different platforms.

Notifications You must be signed in to change notification settings

kaschenkkko/MatchingProducts

 
 

Repository files navigation

Matching «Prosept» products

Документация API

Matching «Prosept» products - API redoc

Описание проекта

«Просепт» производит несколько сотен различных товаров бытовой и промышленной химии, а затем продаёт эти товары через дилеров. Дилеры, в свою очередь, занимаются розничной продажей товаров в крупных сетях магазинов и на онлайн площадках.

Для оценки ситуации, управления ценами и бизнесом в целом, «Просепт» периодически собирает информацию о том, как дилеры продают их товар. Для этого они парсят сайты дилеров, а затем сопоставляют товары и цены. Зачастую описание товаров на сайтах дилеров отличаются от того описания, что даёт «Просепт». Например, могут добавляться новый слова ("универсальный", "эффективный"), объём (0.6 л -> 600 мл). Поэтому сопоставление товаров дилеров с товарами «Просепт» делается вручную.

Цель этого проекта - разработка решения, которое отчасти автоматизирует процесс сопоставления товаров. Основная идея - предлагать несколько товаров «Просепт», которые с наибольшей вероятностью соответствуют размечаемому товару дилера. Выбор наиболее вероятных подсказок делается методами машинного обучения.

Запуск проекта без докера

  • Клонируйте репозиторий и перейдите в него.

  • Установите и активируйте виртуальное окружение.

  • Установите зависимости из файла requirements.txt

    python -m pip install --upgrade pip
    pip install -r requirements.txt
    
  • Создайте файл .env, в корневой папке проекта, с переменными окружения.

    DB_NAME=postgres
    POSTGRES_USER=postgres
    DB_HOST=localhost
    DB_PORT=5432
    POSTGRES_PASSWORD=password
    CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
    
  • Находясь в корневой папке проекта выполните миграции.

    alembic revision --autogenerate -m "Initial migration"
    alembic upgrade head
    
  • Загрузите в базу данных подготовленные данные.

    P.S. Выполнение скрипта может занять продолжительное время(~10 минут)

    python load_data.py
    
  • Для запуска сервера используйте данную команду:

    uvicorn app.main:app --reload
    
  • Документация к API будет доступна по url-адресу 127.0.0.1:8000/redoc

  • Админка, с некоторыми таблицами БД, будет доступна по url-адресу 127.0.0.1:8000/admin

Запуск проекта через докер

  • Клонируйте репозиторий.

  • Перейдите в папку infra и создайте в ней файл .env с переменными окружения:

    DB_NAME=postgres
    POSTGRES_USER=postgres
    DB_HOST=db
    DB_PORT=5432
    POSTGRES_PASSWORD=password
    CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
    PGADMIN_DEFAULT_EMAIL=user@gmail.ru
    PGADMIN_DEFAULT_PASSWORD=user_password
    
  • Из папки infra запустите docker-compose:

    ~$ docker-compose up -d --build
    
  • В контейнере backend выполните миграции:

    ~$ docker-compose exec backend alembic revision --autogenerate -m "Initial migration"
    
    ~$ docker-compose exec backend alembic upgrade head
    
  • Загрузите в базу данных подготовленные данные.

    P.S. Выполнение скрипта может занять продолжительное время(~10 минут)

    ~$ docker-compose exec backend python load_data.py
    

Проект будет доступен по url-адресу 127.0.0.1

Документация к API будет доступна по url-адресу 127.0.0.1/redoc

Админка, с некоторыми таблицами БД, будет доступна по url-адресу 127.0.0.1/admin

WEB-PgAdmin будет доступен по url-адресу 127.0.0.1:5050

Авторы:

About

A Python-based application designed to automate the process of matching and comparing product listings across different platforms.

Topics

Resources

Stars

Watchers

Forks

Languages

  • Python 98.8%
  • Other 1.2%