/tz_cars

Primary LanguagePython

Car Search


Описание:

Сервис поиска ближайших машин для перевозки грузов.


Функционал:

  • Авторизация и аутентификация пользователей.
  • CRUD для грузов, локаций и машин.

Технологии:

  • Python
  • Django
  • Django REST framework
  • psycopg2-binary
  • geopy
  • DRF-YASG
  • Djoser
  • Docker
  • Docker Compose

Запуск проекта

Клонируем проект по ссылке:

https://github.com/svro2022/tz_cars.git

Через docker

Создаем контейнер:

docker build -t my-python-app .

Запускаем:

docker run my-python-app

Через docker compose

  • Сборка и запуск контейнера в фоновом режиме:

docker-compose up -d --build


Краткое техническое задание:

  • Создайте веб-приложение, с API интерфейсом.
  • Создайте базу данных используя миграции Django.

Требования к реализации:

модель груза:

  • локация pick-up
  • локация delivery
  • вес (1-1000)
  • описание

модель машины:

  • уникальный номер (цифра от 1000 до 9999 + случайная заглавная буква английского алфавита в конце, пример: "1234A", "2534B", "9999Z")
  • текущая локация
  • грузоподъемность (1-1000)

модель локации:

  • город
  • штат
  • почтовый индекс (zip)
  • широта
  • долгота

Список уникальных локаций представлен в прикрепленном csv файле "uszips.csv"

  • При создании машин по умолчанию локация каждой машины заполняется случайным образом;
  • Расчет и отображение расстояния осуществляется в милях;
  • Расчет расстояния должен осуществляться с помощью библиотеки geopy. help(geopy.distance). Маршруты не учитывать, использовать расстояние от точки до точки.
  • Создание нового груза (характеристики локаций pick-up, delivery определяются по введенному zip-коду);
  • Получение списка грузов (локации pick-up, delivery, количество ближайших машин до груза ( =< 450 миль));
  • Получение информации о конкретном грузе по ID (локации pick-up, delivery, вес, описание, список номеров ВСЕХ машин с расстоянием до выбранного груза);
  • Редактирование машины по ID (локация (определяется по введенному zip-коду));
  • Редактирование груза по ID (вес, описание);
  • Удаление груза по ID.