- Создать модель участников. У участника должна быть аватарка, пол, имя и фамилия, почта.
- Создать эндпоинт регистрации нового участника: /api/clients/create.
- При регистрации нового участника необходимо обработать его аватарку: наложить на него водяной знак.
- Создать эндпоинт оценивания участником другого участника: /api/clients/{id}/match. В случае, если возникает взаимная симпатия, то ответом выдаем почту клиенту и отправляем на почты участников: «Вы понравились <имя>! Почта участника: <почта>».
- Создать эндпоинт списка участников: /api/list. Должна быть возможность фильтрации списка по полу, имени, фамилии.
- Реализовать определение дистанции между участниками. Добавить поля долготы и широты. В api списка добавить дополнительный фильтр, который показывает участников в пределах заданной дистанции относительно авторизованного пользователя.
- Python 3
- Django 3.2
- Django ORM
- DRF (Django REST framework)
- GIT
Адрес http://127.0.0.1:8000/api/clients/create/
Метод POST
Для регистрации необходимы следующие данные:
profile_picture 'Аватарка'
sex 'Пол'
first_name 'Имя'
last_name 'Фамилия'
email
username 'Никнейм'
password
При регистрации нового участника на аватарку накладывается водяной знак
Также для каждого пользователя нужно созадть "текущие координаты" Широту и долготу: http://127.0.0.1:8000/api/clients/create/coordinates/ Метод POST Работает только для авторизованного пользователя. Данные: longitude latitude
Адрес http://127.0.0.1:8000/api/clients/auth/login/ Метод POST Данные: email password
Получаем токен. Этот токен надо будет передавать в заголовке каждого запроса, в поле Authorization. Перед самим токеном должно стоять ключевое слово Token
Адрес http://127.0.0.1:8000/api/clients/auth/logout/ Метод POST
Удаляет токен авторизации. Работает только для авторизованного пользователя.
Работает только для авторизованного пользователя. Адрес http://127.0.0.1:8000/api/clients/{id}/ (http://158.160.49.4/api/clients/3/) Метод GET
Работает только для авторизованного пользователя. Адрес http://127.0.0.1:8000/api/clients/{id}/match Метод POST
В случае, если возникает взаимная симпатия, то отправляются письма на почты участников: «Вы понравились <имя>! Почта участника: <почта>».
Адрес http://127.0.0.1:8000/api/list Метод GET
Реализована возможность фильтрации списка по полу, имени, фамилии и расстоянии до участника.
Фильтрация по расстоянию реализована 2-мя методами distance и distance2
Доступные значения:
sex=(F,M) Фильтр по полу - Female, Male
distance=<число>.
first_name=<Имя>
last_name=<Фамилия>
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/usdocs/online_dating
cd online_dating
Cоздать и активировать виртуальное окружение:
python -m venv venv
source venv/Scripts/activate
Обновить менеджер пакетов pip:
python -m pip install --upgrade pip
Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
Перейти в каталог с manage.py
cd dating_online
Выполнить миграции:
python manage.py migrate
Запустить проект:
python manage.py runserver
Автор: Andrey Balakin
E-mail: usdocs@ya.ru