Сервис нацелен на удовлетворение потребностей трёх категорий пользователей:
- Технические специалисты компании: работа с роботами
- Менеджмент компании: работа с покупателями и с заказами
- Клиенты: рассылка уведомлений
Для запуска проекта выполните последовательно команды:
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/
Откроется домашняя страница:
Проект реализован с помощью:
- 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 с решением для каждой задачи
- Прислать ссылку на своё решение
Список роботов:
Добавление робота:
Список покупателей:
Список заказов: