Skip to content

andy-takker/inclusive_dance_bot

Repository files navigation

Inclusive Dance Bot

Stack

Python Docker Postgres Redis GitHub GitHub Actions

Description

Telegram bot for informing the audience and feedback. You can fully control the bot from the admin menu: change the displayed menus and messages, collect feedback and send out announcements on a schedule.

The bot was created completely asynchronous using aiogram 3.0+, aiogram-dialogs 2.0+, aiomisc and sqalchemy libraries.

Initially, this project was developed to help the organization of Inclusive Dance.

Using

Settings

Environment variables are used to configure the bot for connecting to Telegram, Postgres and Redis.

APP_TELEGRAM_BOT_TOKEN      # your bot token
APP_TELEGRAM_BOT_ADMIN_IDS  # Superadmin IDs, who can appoint other admins

APP_DEBUG                   # Flag for debugging (using in sqlalchemy engine for echo)

APP_PG_DSN                  # DSN of your postgresql database
APP_REDIS_DSN               # DSN of your redis storage

Docker

You can get image from public Docker Hub from here.

docker pull andytakker/inclusive_dance_bot

Local

Before you need to create env and install dependencies

python3.11 -m venv .venv
source .venv/bin/activate
pip install -U pip poetry
poetry install

For start the bot local you can use poetry

poetry run bot

Test

For the main functions of the bot, tests are written using pytest. For running

pytest -vx ./tests/