Skip to content

Tatiana314/Random_coffee_bot

 
 

Repository files navigation

Проект random_coffee_bot

Проект random_coffee_bot — это Telegram-бот, который каждый понедельник объединяет активных пользователей в пары и отправляет им приглашение на офлайн- или онлайн-встречу, чтобы вместе выпить кофе или чай. Вторая рассылка, напоминающая о встрече, проводится в четверг. Алгоритм сортировки, используемый ботом, исключает повторение пар и позволяет пользователям каждый раз встречаться с новым собеседником.

Функционал телеграм-бота:

  • для пользователя: регистрация, рассылка с именем и контактными данными коллеги (электронная почта), возможность на время отписаться от рассылкии - не участвовать в распределении пары (в случае отпуска, болезни и тп)
  • для администратора: просмотр списка всех пользователей, возможность удалить пользователя из проекта, добавить пользователя в администраторы, а так же удалить его оттуда, отключение пользователя от рассылки

Технологии

Python aiogram aiosqlite APScheduler SQLAlchemy alembic pydantic

Запуск проекта

Для развертывания проекта в контейнерах необходимо установить docker compose.

Установка docker compose:

sudo apt update
sudo apt install curl
curl -fSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo apt-get install docker-compose-plugin

Клонировать репозиторий:

git clone https://github.com/Tatiana314/Random_coffee_bot.git && cd Random_coffee_bot

Проект использует базу данных PostgreSQL. В директории random_coffee_bot необходимо создать и заполнить ".env" с переменными окружения.

# Переменные для телеграм бота
BOT_TOKEN='<токен вашего бота>'
GEN_ADMIN_ID=телеграмм id главного администратора>

# Переменные для PostgreSQL
POSTGRES_DB=<название базы данных>
POSTGRES_USER=<имя пользователя>
POSTGRES_PASSWORD=<пароль пользователя>
DB_HOST=db
DB_PORT=5432
DATABASE_URL='postgresql+asyncpg://{POSTGRES_USER}:{POSTGRES_PASSWORD}@{DB_HOST}:{DB_PORT}/{POSTGRES_DB}'

Запустите docker compose:

docker compose up

Применение миграций и запуск приложение осуществляется автоматически.

Настройки рассылки

Поменять дни и время рассылки можно в bot_app/core/constants.py

class MailingInt(IntEnum):
    MAIL_TO_COUPLES_HOUR = 10  - время рассылки для пар (часы)
    MAIL_TO_COUPLES_MIN = 00 - время рассылки для пар (минуты)
    REMIND_MAIL_HOUR = 10  - время рассылки напоминания (часы)
    REMIND_MAIL_MIN = 00  - время рассылки напоминания (минуты)


class MailingStr(str, Enum):
    TRIGGER = 'cron'
    MAIL_TO_COUPLES_DAY = 'mon' - день расслыки для пар (принимает значения от 0 до 6, или mon, tue, wed, thu, fri, sat, sun, можно задать сразу несколько дней)
    REMIND_MAIL_DAY = 'thu' - день рассылки с напоминанием (принимает значения от 0 до 6, или mon, tue, wed, thu, fri, sat, sun,  можно задать сразу несколько дней)

Команда разработки

Анна Победоносцева (тимлид команды)

Светлана Шатунова (разработчик)

Ольга Скрябина (разработчик)

Татьяна Мусатова (разработчик)

Никита Пискунов (разработчик)

About

Телеграм-Бот ЗАО "Groupe SEB"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.7%
  • Mako 1.1%
  • Dockerfile 0.2%