Телеграм-бот, реализующий логику менеджера задач. Стек: Django, DRF, Aiogram-dialog, PostgreSQL, Docker, Celery, Redis
Склонируйте данный репозиторий командой:
git clone git@github.com:David-Roklem/ToDoList_Aiogram_Django.git
Зависимости проекта описаны в файлах pyproject.toml и requirements.txt.
Прежде всего, создайте файл .env в корне проекта, добавьте в него переменные окружения из файла .env.example. При необходимости, измените их по своему усмотрению.
Чтобы запустить проект на локальной машине, вам необходимо (находясь в корне проекта) выполнить следующие шаги:
- поднять контейнеры командой:
docker compose up -d
- создать суперюзера для управления админ-панелью Django:
docker exec -it <имя или id контейнера 'api'> /bin/bash
python manage.py createsuperuser
- Прежде чем начинать взаимодействовать с ботом, необходимо создать категорию(и) задач через админ-панелью Django
На данный момент, реализован следующий функционал:
✅Задачи должны поддерживать категории (теги) и иметь возможность привязки к пользователям
✅В качестве PK для основных сущностей НЕ используются UUID, модуль random, стандартные функции Postgres и целочисленные инкременты
✅Реализован API для работы с задачами и категориями (CRUD)
✅Настроен административный интерфейс для управления задачами и категориями
✅Django работает в часовой зоне America/Adak
✅Бот позволяет пользователям:
- ✅Просматривать список своих задач с их категориями
- ✅У таски показывается дата создания
- ✅Есть возможность добавлять новые задачи через диалоговое взаимодействие
✅Бот связан с Django
через REST API
✅Контейнеризация проекта для реализации взаимодействия всех сервисов через docker-compose
✅Реализована логика добавления пользователя в БД "на лету" при начале его взаимодействия с ботом
✅Система уведомления пользователя о предстоящем наступлении даты выполнения задачи - посредством Celery и Redis
🔭Рефакторинг некоторых аспектов реализации, в частности:
- 🔭возможность выбора даты выполнения задачи посредством календаря aiogram-dialog
- 🔭проч.
🔭Множество других фичей, включая тестирование, настройка CI/CD, деплой на сервер и т.п.