Skip to content

usdocs/online_dating

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Сервис знакомств

Python Django

Постановка задачи

  • Создать модель участников. У участника должна быть аватарка, пол, имя и фамилия, почта.
  • Создать эндпоинт регистрации нового участника: /api/clients/create.
  • При регистрации нового участника необходимо обработать его аватарку: наложить на него водяной знак.
  • Создать эндпоинт оценивания участником другого участника: /api/clients/{id}/match. В случае, если возникает взаимная симпатия, то ответом выдаем почту клиенту и отправляем на почты участников: «Вы понравились <имя>! Почта участника: <почта>».
  • Создать эндпоинт списка участников: /api/list. Должна быть возможность фильтрации списка по полу, имени, фамилии.
  • Реализовать определение дистанции между участниками. Добавить поля долготы и широты. В api списка добавить дополнительный фильтр, который показывает участников в пределах заданной дистанции относительно авторизованного пользователя.

Стек технологий:

  • Python 3
  • Django 3.2
  • Django ORM
  • DRF (Django REST framework)
  • GIT

Эндпоинты:

1. Создание пользователя

Адрес 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

2. Авторизация и разлогинивание

Адрес 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

Удаляет токен авторизации. Работает только для авторизованного пользователя.

3. Получение данных об участнике

Работает только для авторизованного пользователя. Адрес http://127.0.0.1:8000/api/clients/{id}/ (http://158.160.49.4/api/clients/3/) Метод GET

4. Оценивание участником другого участника:

Работает только для авторизованного пользователя. Адрес http://127.0.0.1:8000/api/clients/{id}/match Метод POST

В случае, если возникает взаимная симпатия, то отправляются письма на почты участников: «Вы понравились <имя>! Почта участника: <почта>».

5. Cписок участников:

Адрес http://127.0.0.1:8000/api/list Метод GET

Реализована возможность фильтрации списка по полу, имени, фамилии и расстоянии до участника.

Фильтрация по расстоянию реализована 2-мя методами distance и distance2

Доступные значения:
sex=(F,M) Фильтр по полу - Female, Male
distance=<число>.
first_name=<Имя>
last_name=<Фамилия>

Как запустить проект (на Windows):

Клонировать репозиторий и перейти в него в командной строке:

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

Releases

No releases published

Packages

No packages published

Languages