Skip to content

hackathone-prosept-team2/backend_django

Repository files navigation

YANDEX & PROSEPT HACKATHON: БСрвис сопоставлСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠŸΡ€ΠΎΡΠ΅ΠΏΡ‚ ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π΄ΠΈΠ»Π΅Ρ€ΠΎΠ². Команда 2.

http://81.31.246.5/
http://81.31.246.5/backup/ - ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° Django-templates, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ основной Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄
Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΡ€ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° Π½Π° сайт ΠΈ Π² Π°Π΄ΠΌΠΈΠ½-панСль

email: admin@admin.admin
password: Password-123

ОписаниС

Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ прСдоставил Ρ„Π°ΠΉΠ»Ρ‹ csv: список своих Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², список Π΄ΠΈΠ»Π΅Ρ€ΠΎΠ² ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠ³ΠΎ парсинга сайтов Π΄ΠΈΠ»Π΅Ρ€ΠΎΠ² с Ρ†Π΅Π½Π°ΠΌΠΈ.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°:
Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρ‹ Π½Π° свою ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡŽ Π½Π° сайтах Π΄ΠΈΠ»Π΅Ρ€ΠΎΠ², Π½ΠΎ наимСнования Π½Π° сайтах Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π»ΡŒΠ½Ρ‹Ρ…, ΠΈ ΠΈΡ… приходится ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎ. НСобходимо Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сСрвис сопоставлСния Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² - Π²Ρ‹Π²ΠΎΠ΄ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятных подходящих Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ.
РСшСниС:
БэкСнд Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π΅Π½; составляСт список ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡(Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»)-Π΄ΠΈΠ»Π΅Ρ€; провСряСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹; ΠΊΠ»ΡŽΡ‡ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² ML-сСрвис Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠΏ-10 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятных совпадСний.
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ/наимСнованию, статусу ΠΈ Π΄ΠΈΠ»Π΅Ρ€Ρƒ; ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий Ρ‚ΠΎΠ²Π°Ρ€ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ связь ΠΊΠ»ΡŽΡ‡-Ρ‚ΠΎΠ²Π°Ρ€, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΊΠ°ΠΊ нСподходящиС.
ДоступСн ΠΎΡ‚Ρ‡Π΅Ρ‚ Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ Π΄ΠΈΠ»Π΅Ρ€ΠΎΠ² со статистикой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ†Π΅Π½, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, с ΠΊΠΎΠ»-Π²ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈ количСством принятых Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (подошло/Π½Π΅ подошло).
API позволяСт Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ всС ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Ρ‚ΠΎΠ²Π°Ρ€ с опциями "всС Π½ΠΎΠ²Ρ‹Π΅"/"Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄"/"Π² Π΄Π°Ρ‚Ρƒ".

Π€ΠΎΡ‚ΠΎ прилоТСния

Π€ΠΎΡ‚ΠΎ основных страниц

FRONTEND:

https://github.com/hackathone-prosept-team2/frontend

DATA-SCIENCE:

https://github.com/hackathone-prosept-team2/data-science

BACKEND:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

image image image image image image image image image image image
DS-сСрвис Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ (являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ бэкСнд-прилоТСния):
image image image

Доступ Π² Π°Π΄ΠΌΠΈΠ½-панСль:

http://81.31.246.5/admin

email: admin@admin.admin
password: Password-123

API-докумСнтация:

http://81.31.246.5/api/schema/swagger/#

Авторизация Ρ‡Π΅Ρ€Π΅Π· headers:
Authorization: Token <access-token>

ВСстированиС бэкСнда:

image

ОписаниС возмоТностСй

ΠœΠ΅Ρ‚ΠΎΠ΄ 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}

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ связи сущностСй прилоТСния

image

Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния

НСобходимо ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .env - хранится Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°; ΠΏΡ€ΠΈΠΌΠ΅Ρ€ заполнСния Π² .env.example (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π² .env).

Запуск с установлСнным Docker

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΏΠ°ΠΏΠΊΡƒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ (для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² достаточно .env Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠ°ΠΏΠΊΠΈ /deploy)

git clone git@github.com: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 

Команда

Project Manger

Виктория ΠœΡƒΠ΄Ρ€ΠΎΠ²Π°

Backend:

Руслан Атаров

Frontend:

Максим Валанов
Π›ΠΈΠ½Π΄Π° Π‘ΡƒΡ…ΠΎΠ²Π΅Π½ΠΊΠΎ

Data-Science:

ΠšΠΈΡ€ΠΈΠ»Π» Π¨ΡƒΠ»Π΅Π²
ПавСл Π‘Π°Ρ€ΠΊΠΎΠ²