🧠 Habit Tracker API 📋 Описание проекта
Habit Tracker — это серверное приложение для создания и управления привычками. Пользователь может создавать полезные и приятные привычки, получать напоминания через Telegram и делиться своими публичными привычками с другими пользователями.
Проект демонстрирует реализацию REST API с авторизацией, валидацией данных, отложенными задачами и интеграцией с Telegram.
🚀 Основной функционал
🔐 Регистрация и авторизация пользователей (JWT)
💪 Создание и управление привычками
Место, время, действие
Связанная или приятная привычка
Вознаграждение
Периодичность
Публичность привычки
📅 Пагинация — по 5 привычек на страницу
👀 Просмотр публичных привычек других пользователей
🤖 Интеграция с Telegram — напоминания о привычках
⏰ Celery + Redis — отложенные задачи и рассылки
🧩 CORS и документация OpenAPI/Swagger
🧠 Типы привычек
Полезная — основное действие с вознаграждением
Приятная — используется как награда, не имеет вознаграждения или связанных привычек
✅ Валидация и бизнес-логика
❌ Нельзя указывать одновременно reward и related_habit
⏱ Время выполнения ≤ 120 секунд
🔄 Периодичность — не реже одного раза в 7 дней
🔗 В связанные привычки можно выбирать только приятные
💫 У приятной привычки не может быть связанной или вознаграждения
🔐 Права доступа
Пользователь видит только свои привычки (CRUD)
Публичные привычки доступны всем для просмотра 🤖 Интеграция с Telegram
Сервис отправляет уведомления о привычках через Telegram-бота с помощью Celery и Redis. Бот напоминает пользователю о действиях в заданное время, используя данные из базы.
⚙️ Технологии Категория Используемые технологии Backend Django База данных PostgreSQL Планировщик задач Celery + Redis Аутентификация JWT (OAuth2) Документация Swagger / ReDoc Telegram API python-telegram-bot Тестирование Pytest Контейнеризация Docker + Docker Compose