Find and Go - это бэкенд-приложение, разработанное выпускниками Яндекс Практикума под руководством наставников. Проект, созданный на основе Django и Django Rest Framework (DRF), призван обеспечить функциональность iOS-приложения. Find and Go является агрегатором каршеринга, предоставляя пользователям удобный доступ к множеству машин от различных компаний.
Регистрация и управление пользователями
- Регистрация пользователя: Пользователи могут зарегистрироваться, предоставив необходимую информацию.
- Сброс пароля через электронную почту: Пользователи могут восстановить свой пароль, получив инструкции на электронную почту.
- Редактирование и удаление пользователя: Авторизованные пользователи имеют возможность изменять свой профиль и удалять свою учетную запись.
Оценки и отзывы
- Оценки и отзывы для машин: Пользователи могут оценивать и оставлять отзывы для машин, выражая свое мнение о предоставляемых услугах.
Фильтры
- Фильтр по названию компании каршеринга: Позволяет пользователям легко находить машины, предоставляемые определенной компанией каршеринга.
- Фильтр по уникальному слагу: Обеспечивает возможность поиска машин по уникальному слагу, включая дополнительные опции, такие как детское кресло, подогрев руля и другие.
- Фильтр по модели машины: Позволяет пользователям выбирать машины определенной модели.
- Фильтр по запасу хода: Пользователи могут ограничивать выбор машин в зависимости от необходимого им запаса хода.
- Фильтр по типу двигателя: Позволяет пользователям фильтровать машины по типу используемого двигателя.
- Фильтр по координатам: Обеспечивает возможность поиска машин в определенной географической области.
- Фильтр по типу автомобиля: Позволяет пользователям выбирать машины определенного типа, такие как купе, седан, хэтчбек и другие.
Эти фильтры предоставляют пользователям гибкость в поиске и выборе машин, отвечающих их конкретным потребностям и предпочтениям.
Ранжирование машин
- Ранжирование машин по координатам: Если пользователь авторизован и запрашивает список машин, то машины ранжируются от наиболее близкой до самой дальней на основе координат.
Аутентификация
POST /auth/o/yandex/:Аутентификация через Яндекс.POST /auth/o/mail/:Аутентификация через Mail.POST /auth/token/login:Аутентификация по токену.
Видео превью
IMG_7331.1.mp4
Технологии
- Python 3.10
- Django 3.2.3
- Django REST framework 3.12.4
- Docker
- Django
- django-filter
- django-oauth-toolkit
- django-rest-framework-social-oauth2
- django-rest-swagger
- djangorestframework
- djangorestframework-simplejwt
- djoser
- drf-spectacular
- gunicorn
- Pillow
- requests
- nginx
- CI/CD
Инструкции по установке
Локально
1. Клонируйте репозиторий: ``git clone git@github.com:VlKazmin/car-hub.git``
2. Перейдите в директорию проекта: ```cd find-and-go/backend```
3. Установите зависимости: ```pip install -r requirements.txt```
4. Примените миграции: ```python manage.py migrate```
5. Загрузите фикстуры:``` python manage.py load_fixtures```
6. Запустите сервер: ```python manage.py runserver```
Docker
**Склонируйте репозиторий и настройте окружение:**
git clone git@github.com:VlKazmin/Find-and-Go.git
cd find-and-go/
# сделайте копию файла <.env.template> в <.env>
cp -i .env.template .env **Запустите приложение с помощью Docker:**
sudo docker compose -f docker-compose.production.yml up --build -d
sudo docker compose -f docker-compose.production.yml exec backend python manage.py makemigrations
sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate
sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic
sudo docker compose -f docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/
# Для заполнения базы ингредиентами выполните:
sudo docker compose -f docker-compose.production.yml exec backend python manage.py load_fixtures
# Для создания суперпользователя
sudo docker compose -f docker-compose.production.yml exec backend python manage.py createsuperuserПроект будет доступен по адресу - http://localhost:8000/ Документация будет доступен по адресу - http://localhost:8000/api/v1/swagger/
Дизайн в Figma - посмотреть
backend: