- Создать файл .env в корне проекта с настройками, аналогичными .env.example.
python manage.py createusers
- создать пользователейpython manage.py seed
- сидирование таблиц- JWT - авториазция
- Запуск отложенных задач:
celery -A config worker -l INFO
- Запуск периодических задач:
celery -A config worker --beat --scheduler django --loglevel=info
- Тест:
coverage run --source='.' manage.py test && coverage html
- Flake8 -
flake8
(результаты теста - папка htmlcov)
- authen_drf
User
- пользователь: почта, id телеграм чата, телефон, аватар, токен
- habit
Periodicity
- периодичность: название, интервалLocation
- место: названиеAction
- действие: название, признак приятного действияReward
- вознаграждение: названиеHabit
- привычка: автор, место, действие, время, периодичность, время выполнения, общедоступностьPleasantHabit
- приятная привычка: пользователь, привычкаUsefulHabit
- полезная привычка: пользователь, привычка, вознаграждение, приятная привычка
UsefulHabit.clean()
- исключен одновременный выбор связанной привычки и указания вознаграждения
- в качестве действия можно выбрать только полезное действие
- возможность использование указанную привычку
Habit.clean()
- Время выполнения не должно превышать 120 секунд
- В качестве связанной привычки может быть указана только приятная привычка
PleasantHabit
Periodicity.clean()
- периодичность не может быть больше 7 дней
HabitViewSet
PleasantHabitViewSet
UsefulHabitViewSet
- Публичные привычки - без авторизации
- Периодичность, места, действия, вознаграждения - суперпользователи
- Привычки - пользователям доступны свои и публичные привычки.
- Пользователь (user/): регистрация, авторизация, CRUD
- Периодичность (periodicity/): список, добавление, удаление
- Местоположение (location/): список, добавление, удаление
- Действие (action/): список, добавление, удаление
- Вознаграждение (reward/): список, добавление, удаление
- Список публичных привычек (public-habit/)
- Привычка (habit/): CRUD
- Полезная привычка (useful-habit/): CRUD
- Приятная привычка (pleasant-habit/): CRUD
- Документация (/redoc, /swagger)
check_habit_time()
- каждый час проверяет привычки, которые нужно выполнить в ближайший час и рассылает уведомления в телеграм каналыhabit.tasks.send_message()
- Отправляет отложенно сообщение в телеграм чат
Настроен на http://127.0.0.1:8000