Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Курсовой проект по Django REST Framework

Описание задачи

  1. Реализовать необходимые модели привычек.
  2. Реализовать точки входа для работы с фронтендом.
  3. Создайте приложение для работы с Telegram и рассылками напоминаний.

Модели

Привычка описывается как конкретное действие, которое можно уложить в одно предложение:

"я буду [ДЕЙСТВИЕ] в [ВРЕМЯ] в [МЕСТО]"

За каждую полезную привычку необходимо себя вознаграждать или сразу после делать приятную привычку.

Но при этом привычка не должна расходовать на выполнение больше 2 минут.

Исходя из этого получаем модель — Привычка.

Привычка:

  • Пользователь — создатель привычки.
  • Место — место, в котором необходимо выполнять привычку.
  • Время — время, когда необходимо выполнять привычку.
  • Действие — действие, которое представляет из себя привычка.
  • Признак приятной привычки — привычка, которую можно привязать к выполнению полезной привычки.
  • Связанная привычка — привычка, которая связана с другой привычкой, важно указывать для полезных привычек, но не для приятных.
  • Периодичность (по умолчанию ежедневная) — периодичность выполнения привычки для напоминания в днях.
  • Вознаграждение — чем пользователь должен себя вознаградить после выполнения.
  • Время на выполнение — время, которое предположительно потратит пользователь на выполнение привычки.
  • Признак публичности — привычки можно публиковать в общий доступ, чтобы другие пользователи могли брать в пример чужие привычки.

Валидаторы

  • Исключить одновременный выбор связанной привычки и указания вознаграждения.
  • Время выполнения должно быть не больше 120 секунд.
  • В связанные привычки могут попадать только привычки с признаком приятной привычки.
  • У приятной привычки не может быть вознаграждения или связанной привычки.
  • Нельзя выполнять привычку реже, чем 1 раз в 7 дней.

Пагинация

Для вывода списка привычек реализовать пагинацию с выводом по 5 привычек на страницу.

Права доступа

  • Каждый пользователь имеет доступ только к своим привычкам по механизму CRUD.
  • Пользователь может видеть список публичных привычек без возможности их как-то редактировать или удалять.

Точки входа

  • Регистрация
  • Авторизация
  • Список привычек текущего пользователя с пагинацией
  • Список публичных привычек
  • Создание привычки
  • Редактирование привычки
  • Удаление привычки

Интеграция

Для полноценной работы сервиса необходим реализовать работу с отложенными задачами для напоминания о том, в какое время какие привычки необходимо выполнять.

Для этого потребуется интегрировать сервис с мессенджером Telegram, который будет заниматься рассылкой уведомлений.

Безопасность

Для проекта необходимо настроить CORS, чтобы фронтенд мог подключаться к проекту на развернутом сервере.

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

Для реализации экранов силами фронтенд-разработчиков необходимо настроить вывод документации. При необходимости эндпоинты, на которые документация не будет сгенерирована автоматически, описать вручную.

Критерии приемки курсовой работы

  • Настроили CORS.
  • Настроили интеграцию с Telegram.
  • Реализовали пагинацию.
  • Использовали переменные окружения.
  • Все необходимые модели описаны или переопределены.
  • Все необходимые точки входа реализовали.
  • Настроили все необходимые валидаторы.
  • Описанные права доступа заложены.
  • Настроили отложенную задачу через Celery.
  • Проект покрыли тестами как минимум на 80%.
  • Код оформили в соответствии с лучшими практиками.
  • Имеется список зависимостей.
  • Результат проверки Flake8 равен 100%, при исключении миграций.
  • Решение выложили на GitHub.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages