/r4c

BST Digital test task

Primary LanguagePython

R4C - Robots for consumers

Запуск

  1. Клонируйте этот репозиторий:
git clone git@github.com:mxstrv/r4c.git
  1. Перейдите в директорию приложения:
cd r4c
  1. Создайте и активируйте виртуальное окружение Python
python3 -m venv venv
source venv/bin/activate
  1. Установите зависимости
pip install -r requirements.txt
  1. Запустите процесс миграции
python manage.py migrate
  1. Запустите сервер
python manage.py runserver

Доступные эндпоинты

Создание робота, POST запрос, body в формате JSON

http://127.0.0.1:8000/api/create-robot/

Загрузка отчета в виде Excel файла

http://127.0.0.1:8000/robots/download/

Создание заказа, POST запрос, body JSON

127.0.0.1:8000/orders/create-order/

Небольшая предыстория.

Давным-давно, в далёкой-далёкой галактике, была компания производящая различных роботов.

Каждый робот(Robot) имел определенную модель выраженную двух-символьной последовательностью(например R2). Одновременно с этим, модель имела различные версии(например D2). Напоминает популярный телефон различных моделей(11,12,13...) и его версии (X,XS,Pro...). Вне компании роботов чаще всего называли по серийному номеру, объединяя модель и версию(например R2-D2).

Также у компании были покупатели(Customer) которые периодически заказывали того или иного робота.

Когда роботов не было в наличии - заказы покупателей(Order) попадали в список ожидания.


Что делает данный код?

Это заготовка для сервиса, который ведет учет произведенных роботов,а также выполняет некие операции связанные с этим процессом.

Сервис нацелен на удовлетворение потребностей трёх категорий пользователей:

  • Технические специалисты компании. Они будут присылать информацию
  • Менеджмент компании. Они будут запрашивать информацию
  • Клиенты. Им будут отправляться информация

Как с этим работать?

  • Создать для этого проекта репозиторий на GitHub
  • Открыть данный проект в редакторе/среде разработки которую вы используете
  • Ознакомиться с задачами в файле tasks.md
  • Написать понятный и поддерживаемый код для каждой задачи
  • Сделать по 1 отдельному PR с решением для каждой задачи
  • Прислать ссылку на своё решение