/R4C

Primary LanguagePython

R4C - Robots for consumers

Пояснения к решению https://github.com/MikhailBogachev/R4C/blob/master/solution.md

Запуск сервиса

Необходимо использовать python 3.10

  1. Клонировать репозиторий:
git clone https://github.com/MikhailBogachev/R4C.git
  1. Gерейти в него в командной строке:
cd R4C
  1. Cоздать и активировать виртуальное окружение:
python -m venv env
source env/Scripts/activate
  1. Установить зависимости из файла requirements.txt:
python -m pip install --upgrade pip
pip install -r requirements.txt
  1. Для работы рассылки уведомлений покупателям, необходимо в корне проекта создать файл .env c настройками для smtp сервера, следующего вида:
HOST_USER=
HOST_PASSWORD=
EMAIL_HOST=
EMAIL_PORT=
  1. Выполнить миграции:
python manage.py migrate
  1. Создать суперпользователя
python manage.py createsuperuser
  1. Запустить проект:
python manage.py runserver
  1. Добавить модели и версии.
http://127.0.0.1:8000/admin/

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

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

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

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

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


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

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

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

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

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

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