Todo App Telegram Bot v1.0.0

Asynchronous task manager Telegram bot

Create, edit, delete and track your tasks. Deploy on server, desktop, or Termux (Android).

Python aiogram Telegram Bot MariaDB MVC Termux

Asynchronous task manager. Use Telegram bot.

TODO app (task management app) is a simple app that allows users to create, edit, delete and track their tasks. This bot can be deployed even on a phone using Termux.

  • Architectural code refactoring
  • Rewritten using MVC (Model-View-Controller) architecture
  • Bugs fixed
  • User interface simplified and improved
  • Code structure and readability improved (SOLID, DRY, MVC)

In the next updates:

  • Adding comments to tasks
  • Adding subtasks to tasks

MariaDB Setup

sudo mysql -u root -p
CREATE USER 'USER_NAME'@'localhost' IDENTIFIED BY 'PASSWORD';
CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON database_name.* TO 'USER_NAME'@'localhost';
FLUSH PRIVILEGES;

.env file

API_TOKEN="[token]"
DB_USER="[db_user]"
DB_NAME="[db_name]"
DB_PASSWORD="[password]"
DB_HOST="[host]"

Run

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python bot.py

# Install Termux
# Run Termux app

termux-wake-lock
pkg update
pkg upgrade
pkg install termux-tools
pkg install python
pkg install python-pip
pkg install git
pkg install vim
pkg install mariadb

# Install Rust (for aiogram)
pkg install rust

# MariaDB setup
mysql_install_db
mysqld_safe &
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
CREATE USER 'USER_NAME'@'localhost' IDENTIFIED BY 'PASSWORD';
CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON database_name.* TO 'USER_NAME'@'localhost';
FLUSH PRIVILEGES;

# Clone and setup
git clone https://github.com/smartlegionlab/todo-app-tg-bot.git
cd todo-app-tg-bot

# Create .env file
vim .env

# Setup Python
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python bot.py

  • Language: Python
  • Framework: aiogram
  • Architecture: MVC (Model-View-Controller)
  • Database: MariaDB
  • Platform: Server / Desktop / Termux (Android)
  • License: BSD 3-Clause