-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #31 from hackathone-prosept-team2/develop
Develop
- Loading branch information
Showing
42 changed files
with
1,308 additions
and
141 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
.env | ||
venv | ||
*.py[cod] | ||
__pycache__ | ||
presentation/ | ||
htmlcov/ | ||
frontend/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -317,4 +317,5 @@ pip-selfcheck.json | |
|
||
# VS Code | ||
.vscode/ | ||
my_data/ | ||
my_data/ | ||
frontend/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,107 @@ | ||
# backend_django | ||
|
||
#### Запуск для тестирования API: | ||
Скопировать проект | ||
# YANDEX & PROSEPT HACKATHON: Сервис сопоставления товаров Просепт и наименований дилеров. Команда 2. | ||
http://81.31.246.5/ <br> | ||
данные для пробного входа на сайт и в админ-панель | ||
``` | ||
git clone [email protected]:hackathone-prosept-team2/backend_django.git | ||
email: [email protected] | ||
password: Password-123 | ||
``` | ||
## Архивы и фото | ||
Вставить сюда фотки с сайта | ||
|
||
Если ранее уже скопировали и были обновления на бэке, надо подтянуть их из гита (ветка main): | ||
``` | ||
git pull | ||
``` | ||
## FRONTEND: | ||
https://github.com/hackathone-prosept-team2/frontend | ||
|
||
Создать файл .env (можно переименовать .env.example в .env) | ||
## DATA-SCIENCE: | ||
https://github.com/hackathone-prosept-team2/data-science | ||
|
||
Перейти в папку deploy внутри проекта | ||
## BACKEND: | ||
### Инструменты: | ||
![image](https://img.shields.io/badge/Python%203.11-FFD43B?style=for-the-badge&logo=python&logoColor=blue) | ||
![image](https://img.shields.io/badge/Django%204.2-092E20?style=for-the-badge&logo=django&logoColor=green) | ||
![image](https://img.shields.io/badge/django%20rest%203.14-ff1709?style=for-the-badge&logo=django&logoColor=white) | ||
![image](https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge&logo=postgresql&logoColor=white) | ||
![image](https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge&logo=docker&logoColor=white) | ||
![image](https://img.shields.io/badge/Nginx-009639?style=for-the-badge&logo=nginx&logoColor=white) | ||
![image](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white) | ||
![image](https://img.shields.io/badge/GitHub_Actions-2088FF?style=for-the-badge&logo=github-actions&logoColor=white) | ||
![image](https://img.shields.io/badge/Pytest-86D46B?style=for-the-badge&logo=redux%20saga&logoColor=999999) | ||
|
||
### Доступ в админ-панель: | ||
http://81.31.246.5/admin | ||
``` | ||
cd backend_django/deploy/ | ||
email: [email protected] | ||
password: Password-123 | ||
``` | ||
|
||
Запустить сборку контейнеров | ||
### API-документация: | ||
http://81.31.246.5/api/schema/swagger/# | ||
``` | ||
docker-compose up -d --build | ||
Авторизация через headers: | ||
Authorization: Token <access-token> | ||
``` | ||
|
||
После запуска контейнеров: добавить миграции в базу, собрать статику для документации | ||
### Тестирование бэкенда: | ||
![image](https://github.com/hackathone-prosept-team2/backend_django/blob/main/presentation/coverage.png) | ||
|
||
### Описание возможностей | ||
| Метод | 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](https://github.com/hackathone-prosept-team2/backend_django/blob/main/presentation/database.png) | ||
|
||
|
||
## Запуск проекта | ||
### Переменные окружения | ||
Файл .env хранится в корневой папке проекта; пример заполнения в .env.example. | ||
|
||
### Запуск с установленным Docker | ||
Копировать проект в папку целиком (для запуска контейнеров достаточно .env в корне проекта и папки /infra) | ||
``` | ||
docker exec -it prosept_back python manage.py migrate | ||
docker exec -it prosept_back python manage.py collectstatic --noinput | ||
git clone [email protected]:hackathone-prosept-team2/backend_django.git | ||
``` | ||
|
||
Создать суперпользователя для админки: | ||
Перейти в папку deploy и запустить сборку контейнеров | ||
``` | ||
cd backend_django/deploy | ||
docker compose up -d | ||
``` | ||
Сайт доступен по адресу http://127.0.0.1/<br> | ||
В базе данных уже есть Суперпользователь с указанными с .env данными (или данными по умолчанию выше) и загружены файлы: | ||
``` | ||
docker exec -it prosept_back python manage.py migrate | ||
marketing_dealer | ||
marketing_product | ||
marketing_productdealerkey | ||
``` | ||
|
||
Доступные ссылки: | ||
http://127.0.0.1/api/schema/swagger/#/ - документация API | ||
http://127.0.0.1/admin - админ-панель | ||
## Команда | ||
### Backend: | ||
[Руслан Атаров](https://github.com/ratarov) <br> | ||
### Data-Science: | ||
[Кирилл Шулев](https://github.com/Kexxshas)<br> | ||
Павел Барков | ||
### Frontend: | ||
[Максим Таланов](https://github.com/maxtalanov) <br> | ||
[Линда Суховенко](https://github.com/SuhLinda) | ||
### Project Manger | ||
Виктория Мудрова |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.