Skip to content

Aladser/atomic-habits-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Настройки проекта

  • Создать файл .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() - Отправляет отложенно сообщение в телеграм чат

CORS

Настроен на http://127.0.0.1:8000

Документация

About

Трекер полезных привычек

Topics

Resources

Stars

Watchers

Forks

Languages