Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nankuf/automobiles
API решает задачу по управлению заказами на автомобили поставщика.
https://github.com/nankuf/automobiles
django-rest-framework docker docker-compose python39
Last synced: about 1 month ago
JSON representation
API решает задачу по управлению заказами на автомобили поставщика.
- Host: GitHub
- URL: https://github.com/nankuf/automobiles
- Owner: NankuF
- Created: 2022-10-10T18:30:39.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-10-10T18:42:16.000Z (about 2 years ago)
- Last Synced: 2023-03-08T13:39:25.173Z (almost 2 years ago)
- Topics: django-rest-framework, docker, docker-compose, python39
- Language: Python
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Тестовое задание "metasharks"
API решает задачу по управлению заказами на автомобили поставщика.Задание
Необходимо оценить в часах и реализовать небольшое Django-приложение, которое решает задачу по управлению заказами на автомобили поставщика. Цель - понять потенциальные возможности кандидата в части изучения и применения новой для него технологии.
Этап предварительной оценки - обязательный. Помимо качества и объема реализации требований будет приниматься во внимание факт соблюдения сроков с учетом предварительной оценки. Ожидается (но не обязательно), что оценка не превышает 40 часов при 100% загрузке на выполнение.**Основные требования:**
1. Создать модель для справочника "Цвета".
2. Создать модель для справочника "Марки автомобилей".
3. Создать модель для справочника "Модели автомобилей".
4. Создать модель для хранения заказов авто. Заказ должен включать в себя цвет, модель, количество, дату (по умолчанию текущая).
5. С использованием библиотеки Django Rest Framework создать RestAPI для управления справочниками и заказами.
- API должно реализовать операции CRUD для моделей, а также чтение списков.
- API для списка заказов должен возвращать элементы со след. атрибутами: дата заказа, цвет, марка авто, модель авто, количество.**Доп. требования:**
1. Реализовать поддержку постраничного вывода списка заказов (объем страницы 10 элементов), реализовать сортировку списка заказов по количеству, реализовать фильтрацию списка заказов по марке авто.
2. Обеспечить пользовательское представление API в формате OpenApi (Swagger).
3. Реализовать API для получения след. информации: список цветов с указанием количества заказанных авто каждого цвета (атрибуты элементов: цвет, количество), список марок с указанием количества заказанных авто каждой марки (атрибуты элементов: марка, количество).**Допущения:**
1. Поставщик в состоянии поставить любое количество авто любой марки/модели любого цвета.**Ограничения:**
1. Все поля всех моделей обязательны к заполнению, кроме даты заказа. В случае непередачи даты заказа в запросе заказ создается с текущей датой.**Окружение:**
1. Python >3.9
2. Django >3.2
3. Postgres >13
4. Идеальный вариант: окружение должно подниматься в Docker.**Предполагаемая модель данных**
![img.png](img.png)### Запуск
Скачиваем репозиторий
```commandline
git clone https://github.com/NankuF/automobiles
```
Выполняем последовательно все команды
```commandline
cd automobiles/app
```
```commandline
nano .env
```
```text
# сохраняем в .env
DJANGO_SECRET_KEY=my_strong_secretkey
DJANGO_DEBUG=True
POSTGRES_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
PGADMIN_PORT=5050
```
```commandline
docker compose up
```
Переходим по адресу
```commandline
http://0.0.0.0:8000/api/v1/
```
Данные для входа
```commandline
login: user
password: 123
```
---
### Swagger
```commandline
http://127.0.0.1:8000/swagger/
```
---
### Можно подключиться к PGAdmin
```text
http://127.0.0.1:5050/browser/
```
Данные для входа:
```commandline
hostname=postgres
username=postgres
password=postgres
```