An open API service indexing awesome lists of open source software.

https://github.com/s00inx/aiogram-simple-todo-bot

asynchronous to-do-list bot with reminders, using python, postgresql, sqlite.
https://github.com/s00inx/aiogram-simple-todo-bot

aiogram postgres postgresql python sqlite telegrambot

Last synced: 2 months ago
JSON representation

asynchronous to-do-list bot with reminders, using python, postgresql, sqlite.

Awesome Lists containing this project

README

          

# 🗓️ Aiogram Simple Todo Bot

![Python Version](https://img.shields.io/badge/python-3.11%2B-blue)
![Aiogram](https://img.shields.io/badge/aiogram-3.22%2B-green)

Простой и эффективный телеграм-бот для управления задачами.

## Возможности
- удобное управление задачами через интерфейс телеграм-бота
- управление напоминаниями
- приоритизация: пометка важных задач приоритетом

## Особенности
- быстрая работа благодаря ассинхронной архитектуре
- интеграция с СУБД postgres и sqlite и возможность выбора между ними
- безопасность: защита данных и аккуратная обработка ошибок
- работа с чистым sql без orm
- удобный вывод логов в консоль (пока только для основной программы)

## В разработке
- админ-панель
- докер контейнер для быстрого запуска и деплоя
- экспорт данных в csv

## Технологический стек
Python 3.11+, PostgreSQL/SQLite, asyncpg/aiosqlite, aiogram 3.22+

## Пререквизиты
- Python 3.11+
- Telegram bot token (можно получить у @BotFather)
- PostgreSQL (опционально)

## Установка (локально на ваше устройство)

Windows:
### 1. Клонируйте репозиторий
``` bash
git clone https://github.com/kfcemployee/aiogram-simple-todo-bot.git
cd aiogram-simple-todo-bot
```
### 2. Настройте виртуальное окружение
``` bash
python -m venv .venv
venv\Scripts\activate
```
### 3. Установите зависимости
``` bash
pip install -r requirements.txt
```
### 4. Настройте переменные окружения
Создайте .env файл в корне проекта
``` env
BOT_TOKEN=ваш токен, полученный у @BotFather
```
Если собираетесь использовать sqlite (подойдёт для быстрого старта и локальной работы):
``` env
DB_TYPE=SQLITE
SQLITE_PATH=путь у уже существующей бд, если она есть
```
Если собираетесь использовать postgres:
``` env
DB_TYPE=POSTGRES
DB_USER=ваш суперюзер, чтобы создать новую БД
DB_PASSWORD=ваш пароль суперюзера
DB_NAME=todo_db
DB_HOST=localhost
DB_PORT=5432
```
### 5. Инициализируйте базу данных
Если у вас нет готовой бд, этот скрипт ни на что не повлияет, он создаст бд в зависимости от переменной DB_TYPE, которую вы указали в предыдущем шаге.
``` bash
python -m bot.database.init_db
```
Новая база данных создастся в каталоге проекта под именем todo_db.db, если вы используете sql, или на localhost:5432, если используете postgres.
### 6. Запустите бота локально
Все таблицы создадутся сами, если их не было.
```
python -m bot.main
```
Готово✅

## Использование
Список команд:
- /start - запуск или перезапуск бота
- /list - список всех заданий
- /listuncompleted - список невыполненных заданий
- /reminders - список напоминаний
- /add - добавить напоминание

## В будущем:
- деплой на сервер
- докер-контейнер для быстрого развёртывания
- админ-панель
- более насыщенный и подробный README
- ещё много всего

Этот бот будет обновляться, можете предложить свою идею, улучшение, зарепортить ошибку. Хорошего пользования!