- python 3.6+
python -m venv env
- создание виртуального окруженияsource env/bin/activate
- активация виртуального окруженияpip install -r requirements.txt
- установка зависимостейpython manage.py createsuperuser
- создание админаpython manage.py seeding
- начальное заполнение справочников
python manage.py runserver
- Использовал Bootstrap для визуала клиента, возможностей меньше, чем в ExtJS, но так для меня было быстрее
- Хорошим вариантом, на мой взгляд, является сразу вынести отдельно приложение работы с пользователей и переопределить свою модель, чтобы потом ее было легче расширять и работать с ней
- В качестве обработки ajax запросов реализовал работу с фильтрацией и списками. Сама по себе в datatable работа с ajax не очень подходит для этих задач, поэтому вытащил из старого проекта тот вариант, который подходил. Тут пришлось впихнуть все в один файл, вообще это все лучше унифицировать (DRY)
- Не стал описывать получение переменных окружения, хотя пакет по привычке поставил, тут пока не для чего было (да, есть дебаг и доступные хосты, но смысла в этом не увидел, если бы были рассылки или интеграции, то да)
- Тесты также не стал закладывать, хотя есть что потестировать, например те же права доступа
- Проверкой на доступ обложил, но в силу того, что для идентификации используется uuid, не стал дополнять проверку на получение одиночных записей, хотя несколько раз порывался написать миксин для этого
- В целом кое-где пренебрег вынесением общих блоков кода, которые повторяются, но делал это из-за того, что уже подзатянул со сроком сдачи
- Не вынес sercet key из настроек также потому что не сделал перемененные окружения, то тем легче будет тестировать
Функционал, который я бы предложил реализовать в первую очередь для дальнейшего развития проекта
- Добавить поле со сроком выполнения
- Напоминания на почту о сроке выполнения через обычные крон задачи, в последствии можно перейти на очередь
- Кастомизируемый список категорий для каждого пользователя
- Настройки профиля пользователя как минимум для смены пароля
- Верификация пользователя после регистрации
- Восстановление пароля для пользователя