Полнофункциональная система управления задачами с веб-интерфейсом и Telegram ботом, включающая систему уведомлений в реальном времени.
TaskFlow - это современная система управления задачами, которая объединяет удобный веб-интерфейс с мощным Telegram ботом. Система обеспечивает полную синхронизацию данных между платформами и автоматические уведомления.
- ✅ Регистрация и авторизация пользователей
- ✅ Создание и управление списками задач
- ✅ Создание, редактирование и удаление задач
- ✅ Назначение исполнителей и установка приоритетов
- ✅ Отметка задач как выполненных
- ✅ Фильтрация задач (все, мои, просроченные, выполненные)
- ✅ Реальное время обновления через WebSocket
- ✅ Система уведомлений в веб-интерфейсе
- ✅ Подключение к аккаунту через код из веб-приложения
- ✅ Просмотр активных задач (
/tasks) - ✅ Просмотр просроченных задач (
/overdue) - ✅ Получение уведомлений о новых задачах
- ✅ Уведомления при назначении новых задач
- ✅ Уведомления о просроченных задачах (автоматически каждые 5 минут)
- ✅ Уведомления о приближающихся сроках (каждые 30 минут)
- ✅ Ежедневные сводки задач
- ✅ Отправка в Telegram для неактивных пользователей
- ✅ Отображение в веб-интерфейсе для активных пользователей
- Backend: Django 5.2, Django REST Framework
- Frontend: Pure JavaScript, Bootstrap 5
- Реальное время: Django Channels, WebSocket
- Асинхронные задачи: Celery
- Очереди: Redis
- База данных: SQLite (для разработки)
- Telegram бот: Aiogram
- Сервер: Daphne (ASGI)
pip install -r requirements.txtpython manage.py migrate
python manage.py createsuperuserСоздайте файл .env:
TELEGRAM_BOT_TOKEN=your_bot_token_here
SECRET_KEY=your_secret_key_here
- Windows: Скачайте с https://github.com/microsoftarchive/redis/releases
- Linux/Mac:
sudo apt install redis-serverилиbrew install redis
python start_system.pyТерминал 1: Django сервер
python manage.py runserverТерминал 2: Redis
# Windows
C:\Redis\redis-server.exe
# Linux/Mac
redis-serverТерминал 3: Celery Worker
python run_celery.pyТерминал 4: Telegram бот
python run_bot.pyПосле запуска:
- Веб-приложение: http://localhost:8000
- Админ-панель: http://localhost:8000/admin/
- API: http://localhost:8000/api/
- Создайте бота через @BotFather
- Получите токен
- Добавьте токен в .env файл
- В веб-приложении получите код подключения
- В Telegram отправьте боту
/connect <код>
/start- приветствие и инструкции/help- справка по командам/connect <код>- подключение к аккаунту/tasks- просмотр активных задач/overdue- просмотр просроченных задач
POST /api/auth/register/- регистрацияPOST /api/auth/login/- входGET /api/auth/profile/- профиль пользователя
GET /api/tasks/- список задачPOST /api/tasks/- создание задачиGET /api/tasks/{id}/- детали задачиPATCH /api/tasks/{id}/- обновление задачиDELETE /api/tasks/{id}/- удаление задачиGET /api/tasks/my/- мои задачиGET /api/tasks/overdue/- просроченные задачиGET /api/tasks/completed/- выполненные задачи
GET /api/tasks/lists/- список списков задачPOST /api/tasks/lists/- создание спискаDELETE /api/tasks/lists/{id}/- удаление списка
GET /api/notifications/- список уведомленийGET /api/notifications/unread-count/- счетчик непрочитанныхPOST /api/notifications/mark-all-read/- отметить все как прочитанные
POST /api/telegram/generate-code/- генерация кода подключения
TaskFlow/
├── apps/
│ ├── accounts/ # Управление пользователями
│ ├── tasks/ # Управление задачами
│ ├── notifications/ # Система уведомлений
│ └── telegram_bot/ # Telegram бот
├── task_manager/ # Настройки Django
├── static/ # Статические файлы
├── templates/ # HTML шаблоны
├── manage.py # Django management
├── start_system.py # Запуск всей системы
├── run_bot.py # Запуск Telegram бота
├── run_celery.py # Запуск Celery Worker
└── requirements.txt # Зависимости
python manage.py createsuperuserpython manage.py check_overdue_notifications- Мгновенные обновления через WebSocket
- Синхронизация между веб-интерфейсом и Telegram
- Автоматические уведомления
- Веб-интерфейс для активной работы
- Telegram бот для мобильного доступа
- Полная синхронизация данных
- JWT аутентификация
- Безопасные коды подключения
- Защита от CSRF атак
- Автоматическое определение активных/неактивных пользователей
- Персонализированные уведомления
- Множественные каналы доставки
Для продакшена рекомендуется:
- Использовать PostgreSQL вместо SQLite
- Настроить Nginx как reverse proxy
- Использовать Gunicorn для WSGI
- Настроить мониторинг Celery
- Использовать Redis Cluster для высокой доступности
MIT License
Мы приветствуем вклад в развитие TaskFlow! Пожалуйста, создавайте issues и pull requests.
TaskFlow - где задачи встречаются с технологиями! 🚀