Сервис поиска ближайших машин для перевозки грузов.
- Авторизация и аутентификация пользователей.
- CRUD для грузов, локаций и машин.
- Python
- Django
- Django REST framework
- psycopg2-binary
- geopy
- DRF-YASG
- Djoser
- Docker
- Docker Compose
Клонируем проект по ссылке:
Создаем контейнер:
docker build -t my-python-app .
Запускаем:
docker run my-python-app
- Сборка и запуск контейнера в фоновом режиме:
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.