Skip to content

ignitione1/TaskFlow

Repository files navigation

TaskFlow - Система управления задачами с Telegram ботом

Полнофункциональная система управления задачами с веб-интерфейсом и Telegram ботом, включающая систему уведомлений в реальном времени.

🎯 О проекте

TaskFlow - это современная система управления задачами, которая объединяет удобный веб-интерфейс с мощным Telegram ботом. Система обеспечивает полную синхронизацию данных между платформами и автоматические уведомления.

✨ Функциональность

🌐 Веб-приложение

  • ✅ Регистрация и авторизация пользователей
  • ✅ Создание и управление списками задач
  • ✅ Создание, редактирование и удаление задач
  • ✅ Назначение исполнителей и установка приоритетов
  • ✅ Отметка задач как выполненных
  • ✅ Фильтрация задач (все, мои, просроченные, выполненные)
  • ✅ Реальное время обновления через WebSocket
  • ✅ Система уведомлений в веб-интерфейсе

🤖 Telegram бот

  • ✅ Подключение к аккаунту через код из веб-приложения
  • ✅ Просмотр активных задач (/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)

🚀 Быстрый старт

1. Установка зависимостей

pip install -r requirements.txt

2. Настройка базы данных

python manage.py migrate
python manage.py createsuperuser

3. Настройка переменных окружения

Создайте файл .env:

TELEGRAM_BOT_TOKEN=your_bot_token_here
SECRET_KEY=your_secret_key_here

4. Установка Redis

5. Запуск системы

Автоматический запуск (рекомендуется):

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

🌐 Доступ к системе

После запуска:

🤖 Настройка Telegram бота

  1. Создайте бота через @BotFather
  2. Получите токен
  3. Добавьте токен в .env файл
  4. В веб-приложении получите код подключения
  5. В Telegram отправьте боту /connect <код>

Команды бота

  • /start - приветствие и инструкции
  • /help - справка по командам
  • /connect <код> - подключение к аккаунту
  • /tasks - просмотр активных задач
  • /overdue - просмотр просроченных задач

📡 API Endpoints

Аутентификация

  • 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/ - отметить все как прочитанные

Telegram

  • 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 createsuperuser

Проверка просроченных задач

python manage.py check_overdue_notifications

🎯 Особенности TaskFlow

⚡ Реальное время

  • Мгновенные обновления через WebSocket
  • Синхронизация между веб-интерфейсом и Telegram
  • Автоматические уведомления

🔄 Кроссплатформенность

  • Веб-интерфейс для активной работы
  • Telegram бот для мобильного доступа
  • Полная синхронизация данных

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

  • JWT аутентификация
  • Безопасные коды подключения
  • Защита от CSRF атак

📊 Умные уведомления

  • Автоматическое определение активных/неактивных пользователей
  • Персонализированные уведомления
  • Множественные каналы доставки

🚀 Производственное развертывание

Для продакшена рекомендуется:

  1. Использовать PostgreSQL вместо SQLite
  2. Настроить Nginx как reverse proxy
  3. Использовать Gunicorn для WSGI
  4. Настроить мониторинг Celery
  5. Использовать Redis Cluster для высокой доступности

📄 Лицензия

MIT License

🤝 Вклад в проект

Мы приветствуем вклад в развитие TaskFlow! Пожалуйста, создавайте issues и pull requests.


TaskFlow - где задачи встречаются с технологиями! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors