Skip to content

Веб-приложение "Robots for consumers". Особенности: DRF serializers + TemplateHTMLRenderer для автоматических форм, Django signals для уведомлений по событию, pandas и xlsxwriter для отчётности

Notifications You must be signed in to change notification settings

belyashnikovatn/R4C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

R4C - Robots for consumers

Содержание


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

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

  • Технические специалисты компании: работа с роботами
  • Менеджмент компании: работа с покупателями и с заказами
  • Клиенты: рассылка уведомлений

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

Для запуска проекта выполните последовательно команды:

git clone [email protected]:belyashnikovatn/R4C.git 
python -m venv venv   
. venv/Scripts/activate  
python -m pip install --upgrade pip  
pip install -r requirements.txt   
python manage.py migrate   
python manage.py loaddata r4c.json  # для предзаполнения базы
python manage.py runserver   

Перейдите по ссылке:
http://127.0.0.1:8000/
Откроется домашняя страница:
Home

Технологии

Проект реализован с помощью:

  • Django REST framework: сериализация и валидация данных, сервис по REST, TemplateHTMLRenderer для преобразования в формы,
  • Django signals для уведомлений,
  • pandas и xlsxwriter для создания отчёта по созданным за неделю роботам,
  • Bootstrap и templates-шаблоны для интерфейсов

Реализация

Уровень данных

  • использовались предоставленные модели, внесены изменения в модель Customer для отображения при выборе на форме заказов.

Уровень сериализации

Реализована валидация для каждой модели:

  • Наличие обязательных полей, индивидуальные проверки полей, автоматическое заполнение
  • Разные сериализаторы для разных методов (get / post)

Уровень представления

  • Использовались generics.View и TemplateHTMLRenderer для обеспечения всех CRUD-операций для интерфейса на уровне каждого приложения (urls, views)
  • Использовались ModelViewSet для обеспечения всех CRUD-операций для сервиса на уровне api-приложения
  • Для отправки писем использовался django.db.models.signals и EmailMessage. Шаблон письма находится в templates/new_robot.html. Созданные письма можно найти в папке sent_emails
  • Для интерфесов созданы templates под каждое приложение

Дополнительно

  • документация к коду в классах и функциях
  • доп. настройки settings задокументированы в комментариях
  • константы вынесены в constants
  • каждая задача в своей ветке и в PR

Как с этим поработала

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

Интерфейсы системы:

Список роботов:
robots Добавление робота:
robot Список покупателей:
customers Список заказов:
orders

About

Веб-приложение "Robots for consumers". Особенности: DRF serializers + TemplateHTMLRenderer для автоматических форм, Django signals для уведомлений по событию, pandas и xlsxwriter для отчётности

Topics

Resources

Stars

Watchers

Forks