http://81.31.246.5/
http://81.31.246.5/backup/ - прототип на Django-templates, пока не закончен основной фронтенд
данные для пробного входа на сайт и в админ-панель
email: [email protected]
password: Password-123
Заказчик предоставил файлы csv: список своих товаров, список дилеров и результаты ежедневного парсинга сайтов дилеров с ценами.
Проблема:
Заказчику необходимо контролировать цены на свою продукцию на сайтах дилеров, но наименования на сайтах значительно отличаются от оригиналльных, и их приходится сопоставлять вручную, что очень трудоемко. Необходимо разработать сервис сопоставления наименований и подбора рекомендаций для операторов - вывод наиболее вероятных подходящих наименований.
Решение:
Бэкенд загружает данных цен; составляет список уникальных пар ключ(артикул)-дилер; проверяет, есть ли уже подтвержденные оператором товары; ключи без продукта отправляются на обработку в ML-сервис рекомендаций, который возвращает топ-10 наиболее вероятных совпадений.
Оператор может просмотреть список ключей, отфильтровать их по артикулу/наименованию, статусу и дилеру; открыть нужный ключ, выбрать подходящий товар и создать связь ключ-товар, либо пометить все товары как неподходящие.
Доступен отчет в разрезе дилеров со статистикой загрузки цен, уникальных ключей, с кол-вом ключей, которые надо проверить и количеством принятых решений (подошло/не подошло).
API позволяет выгрузить все пары ключ-товар с опциями "все новые"/"за период"/"в дату".
https://github.com/hackathone-prosept-team2/frontend
https://github.com/hackathone-prosept-team2/data-science
DS-сервис рекомендаций (является частью бэкенд-приложения):
email: [email protected]
password: Password-123
http://81.31.246.5/api/schema/swagger/#
Авторизация через headers:
Authorization: Token <access-token>
Метод | Endpoint | Назначение |
---|---|---|
POST | /api/v1/auth/token/login/ | Получение токена для пользователя (вход) |
POST | /api/v1/auth/token/login/ | Уничтожение токена для пользователя (выход) |
GET | /api/v1/users/ | Получение списка пользователей |
POST | /api/v1/users/ | Создание нового пользователя |
GET | /api/v1/users/{id}/ | Просмотр информации о пользователе с id {id} |
GET | /api/v1/users/me/ | Просмотр информации о текущем пользователе |
GET | /api/v1/attributes/ | Полный список словарей моделей-атрибутов |
GET | /api/v1/dealers/ | Получение списка дилеров |
GET | /api/v1/dealers/{id}/ | Просмотр информации о дилере с id {id} |
GET | /api/v1/dealers/report/ | Отчет по дилерам и их ключам |
GET | /api/v1/keys/ | Список ключей дилеров с возможностью фильтрации по параметрам |
GET | /api/v1/keys/{id}/ | Информация о ключе дилера с id {id} |
GET | /api/v1/keys/{id}/matches/ | Список подобранных возможных продуктов к этому ключу |
POST | /api/v1/keys/{id}/choose_match/ | Выбор 1 продукта для сопоставления с ключем дилера |
POST | /api/v1/keys/{id}/decline_matches/ | Пометка всех предложенных продуктов как неподходящие |
GET | /api/v1/keys/{id}/prices/ | Список цен к ключу дилера |
GET | /api/v1/keys/export/ | Выгрузка сопоставленных ключей и продуктов с фильтром по новым/дате/периоду |
POST | /api/v1/prices/ | Загрузка в базу данных цен из предоставленного Просепт файла и запуск системы подбора |
DELETE | /api/v1/prices/ | Удаление из базы данных всех цен, связанных рекомендаций и установленных связей |
GET | /api/v1/products/ | Список продуктов компании |
GET | /api/v1/products/{id}/ | Просмотр информации о продукте компании с id {id} |
Необходимо создать файл .env - хранится в корневой папке проекта; пример заполнения в .env.example (можно переименовать в .env).
Копировать проект в папку целиком (для запуска контейнеров достаточно .env в корне проекта и папки /deploy)
git clone [email protected]:hackathone-prosept-team2/backend_django.git
Перейти в папку deploy и запустить сборку контейнеров
cd backend_django/deploy
docker compose up -d --build
Сайт доступен по адресу http://127.0.0.1/
В базе данных уже есть Суперпользователь с указанными в .env данными (или данными по умолчанию выше) и загружены файлы:
marketing_dealer
marketing_product
marketing_productdealerkey
Виктория Мудрова
Максим Таланов
Линда Суховенко
Кирилл Шулев
Павел Барков