Skip to content

balychevtsev-coder/Task_list

Repository files navigation

🤖 Telegram-бот для командной работы с задачами

Простой и удобный бот для управления задачами в команде, написанный на Python с использованием библиотеки aiogram.

📋 Возможности

  • ➕ Добавление задач в общий список
  • 📝 Просмотр всех задач
  • 📊 Экспорт задач в CSV-файл
  • 💾 Хранение данных в SQLite3
  • 👥 Отслеживание автора каждой задачи
  • 📅 Автоматическое сохранение даты создания

🛠️ Технологии

  • Python 3.8+
  • aiogram 3.x - асинхронная библиотека для Telegram Bot API
  • SQLite3 - встроенная база данных
  • python-dotenv - управление переменными окружения

📁 Структура проекта

telegram_task_bot/
├── main.py                 # Точка входа, запуск бота
├── config.py              # Конфигурация (токен, настройки)
├── requirements.txt       # Зависимости проекта
├── .env.example          # Пример файла с переменными окружения
├── database/             # Пакет для работы с БД
│   ├── __init__.py
│   └── db.py            # Класс для работы с SQLite
├── handlers/            # Пакет с обработчиками команд
│   ├── __init__.py
│   ├── start.py        # Обработчик /start
│   ├── add_task.py     # Обработчик /add
│   └── list_tasks.py   # Обработчики /list и /list_csv
└── keyboards/          # Пакет с клавиатурами
    ├── __init__.py
    └── main_kb.py      # Основная клавиатура

🚀 Установка и запуск

1. Клонирование проекта

cd telegram_task_bot

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

Убедитесь, что у вас установлен Python 3.8 или новее.

pip install -r requirements.txt

3. Настройка бота

  1. Создайте нового бота через @BotFather в Telegram
  2. Скопируйте полученный токен
  3. Создайте файл .env на основе .env.example:
copy .env.example .env
  1. Откройте файл .env и вставьте ваш токен:
BOT_TOKEN=ваш_токен_от_BotFather

4. Запуск бота

python main.py

При успешном запуске вы увидите:

🚀 Запуск бота...
✅ Все обработчики зарегистрированы
📡 Бот начал получать обновления

📱 Команды бота

Команда Описание Пример
/start Приветствие и список команд /start
/add Добавить новую задачу /add Купить продукты
/list Показать все задачи /list
/list_csv Получить CSV-файл с задачами /list_csv

💡 Примеры использования

Добавление задачи

/add Подготовить презентацию к понедельнику

Ответ бота:

✅ Задача #1 добавлена!

📝 Текст: Подготовить презентацию к понедельнику
👤 Автор: @username

Просмотр задач

/list

Ответ бота:

📋 Всего задач: 2

#1 | 👤 @username
📝 Подготовить презентацию к понедельнику
📅 2025-10-27 19:00:00
----------------------------------------

#2 | 👤 @another_user
📝 Купить продукты
📅 2025-10-27 18:30:00
----------------------------------------

Экспорт в CSV

/list_csv

Бот отправит файл tasks_export.csv со всеми задачами.

🗄️ База данных

Бот использует SQLite3. База данных создаётся автоматически при первом запуске.

Структура таблицы tasks:

Поле Тип Описание
id INTEGER Уникальный идентификатор (автоинкремент)
text TEXT Текст задачи
user TEXT Имя пользователя (username или first_name)
created_at TIMESTAMP Дата и время создания

🎨 Клавиатура

Бот предоставляет удобную клавиатуру с кнопками:

  • 📋 Список задач - быстрый доступ к /list
  • Добавить задачу - подсказка для /add
  • 📊 Экспорт CSV - быстрый доступ к /list_csv

🔧 Настройка

Все настройки находятся в файле config.py:

  • BOT_TOKEN - токен бота (загружается из .env)
  • DATABASE_PATH - путь к файлу базы данных (по умолчанию tasks.db)

📝 Комментарии для новичков

Код написан с подробными комментариями на русском языке:

  • 📘 Описание каждой функции и класса
  • 💡 Пояснения к сложным моментам
  • 🔍 Комментарии к важным строкам кода

⚠️ Возможные проблемы

Ошибка: "Unauthorized"

  • Проверьте правильность токена в файле .env
  • Убедитесь, что токен скопирован полностью

Ошибка: "No module named 'aiogram'"

  • Установите зависимости: pip install -r requirements.txt

База данных не создаётся

  • Проверьте права на запись в текущей директории
  • Убедитесь, что путь в config.py корректен

📚 Дополнительная информация

👨‍💻 Разработка

Проект создан для обучения и демонстрации:

  • Работы с Telegram Bot API через aiogram
  • Асинхронного программирования на Python
  • Работы с SQLite3
  • Структурирования кода в модули и пакеты

📄 Лицензия

Свободное использование в образовательных и коммерческих целях.

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

Проект открыт для улучшений! Вы можете:

  • Добавить новые команды
  • Улучшить интерфейс
  • Добавить фильтры задач
  • Реализовать удаление/редактирование задач
  • Добавить приоритеты задач

Удачи в использовании бота! 🚀

About

Telegram-bot to work with task list

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages