python manage.py runserver
Клонировать проект:
Сборка докер образа:
docker build -t my-python-app .
Запуск контейнера:
docker run my-python-app
Cоздание образа из Dockerfile:
docker-compose build
с запуском контейнера:
docker-compose up --build
с запуском конктейнера в фоновом режиме:
docker-compose up -d --build
Запуск контейнера:
docker-compose up
Миграции:
sudo docker-compose exec app python manage.py migrate
Реализовать бэкенд SPA-приложения. Трекер и работа с полезными привычками.
- Добавьте необходимые модели привычек.
- Реализуйте эндпоинты для работы с фронтендом.
- Создайте приложение для работы с Telegram и рассылками напоминаний.
- Python
- Django
- Django DRF
- PostgreSQL
- JWT
- django_filters
- Celery
- Celery-Beat
- Redis
- CORS
- Swagger
- Docker
- Docker Compose
- Unittest
Установка зависимостей:
pip install -r requirements.txt
- Habit - модель привычки
- Пользователь — создатель привычки.
- Место — место, в котором необходимо выполнять привычку.
- Время — время, когда необходимо выполнять привычку.
- Действие — действие, которое представляет
из себя привычка.
- Признак приятной привычки — привычка, которую
можно привязать к выполнению полезной привычки.
- Связанная привычка — привычка, которая связана
с другой привычкой, важно указывать для полезных привычек,
но не для приятных.
- Периодичность (по умолчанию ежедневная) — периодичность
выполнения привычки для напоминания в днях.
- Вознаграждение — чем пользователь должен себя
вознаградить после выполнения.
- Время на выполнение — время, которое предположительно
потратит пользователь на выполнение привычки.
- Признак публичности — привычки можно публиковать
в общий доступ, чтобы другие пользователи могли брать
в пример чужие привычки.
- User - модель пользователя
- Исключить одновременный выбор связанной привычки и указания вознаграждения.
- Время выполнения должно быть не больше 120 секунд.
- В связанные привычки могут попадать только привычки с признаком приятной привычки.
- У приятной привычки не может быть вознаграждения или связанной привычки.
- Нельзя выполнять привычку реже, чем 1 раз в 7 дней.
Для вывода списка привычек реализовать пагинацию с выводом по 5 привычек на страницу.
- Каждый пользователь имеет доступ только к своим привычкам по механизму CRUD.
- Пользователь может видеть список публичных привычек без возможности их как-то редактировать или удалять.
- Регистрация
- Авторизация
- Список привычек текущего пользователя с пагинацией
- Список публичных привычек
- Создание привычки
- Редактирование привычки
- Удаление привычки
Для полноценной работы сервиса необходим реализовать работу с отложенными задачами для напоминания о том, в какое время какие привычки необходимо выполнять.
Для этого потребуется интегрировать сервис с мессенджером Telegram, который будет заниматься рассылкой уведомлений.
Для проекта необходимо настроить CORS, чтобы фронтенд мог подключаться к проекту на развернутом сервере.
Для реализации экранов силами фронтенд-разработчиков необходимо настроить вывод документации. При необходимости эндпоинты, на которые документация не будет сгенерирована автоматически, описать вручную.