С помощью бота для сотрудников компаннии раз в неделю в случайном порядке подбирается пара из коллег для офлайн или онлайн встречи с целью выпить вместе чашечку кофе или чая. В конце рабочей недели приходит напоминание о встрече. Бот только подбирает пару, о встрече сотрудники договариваются самостоятельно.
Функционал телеграм-бота:
- для пользователя: регистрация, рассылка с именем и контактными данными коллеги (корпоративная почта), возможность на время отписаться от рассылкии - не участвовать в распределении пары (в случае отпуска, болезни и тп)
- для администратора: просмотр списка всех пользователей, возможность удалить пользователя из проекта, добавить пользователя в администраторы, а так же удалить его оттуда, отключение пользователя от рассылки
Клонируйте репозиторий и перейдите в него:
git clone [email protected]:Studio-Yandex-Practicum/random_coffee_bot_anna.git
cd random_coffee_bot_anna
Создайте виртуальное окружение:
py -3.11 -m venv venv
Активируйте виртуальное окружение:
Windows: source venv/Scripts/activate
Linux/macOS: source venv/bin/activate
Установите зависимости из файла requirements.txt:
pip install -r requirements.txt
В корне проекта создайте файл .env и поместите в него:
BOT_TOKEN='<токен вашего бота>'
DATABASE_URL='sqlite+aiosqlite:///./random_coffe_bot.db'
GEN_ADMIN_ID=<телеграмм id главного администратора>
Создайте базу данных, применив миграции (из корня проекта):
alembic upgrade head
Запустите бота (из корня проекта):
python bot.py
Клонируйте репозиторий и перейдите в него:
git clone [email protected]:Studio-Yandex-Practicum/random_coffee_bot_anna.git
cd random_coffee_bot_anna
Создайте виртуальное окружение:
python3.11 -m venv venv
Активируйте виртуальное окружение:
source venv/bin/activate
Установите зависимости из файла requirements.txt:
pip install -r requirements.txt
В корне проекта создайте файл .env и поместите в него:
BOT_TOKEN='<токен вашего бота>'
DATABASE_URL='sqlite+aiosqlite:///./random_coffe_bot.db'
GEN_ADMIN_ID=<телеграмм id главного администратора>
Создайте базу данных, применив миграции (из корня проекта):
alembic upgrade head
Создайте юнита для автоматического перезапуска бота при перезагрузке сервера:
nano file_name.service
Поместите в файл следующее:
[Unit]
Description=<описание вашего бота>
After=multy-user.target
[Service]
Type=simple
ExecStart=/<путь до репозитория проекта>/random_coffee_bot_anna/venv/bin/python3.11 /<путь до репозитория проекта>/random_coffee_bot_anna/bot.py
WorkingDirectory=/<путь до репозитория проекта>/random_coffee_bot_anna
Restart=always
[Install]
WantedBy=multi-user.target
Последовательно выполните следующие команды:
sudo cp file_name.service /etc/systemd/system
sudo systemctl enable file_name.service
sudo systemctl restart file_name.service
Для перезапуска бота на сервере используйте команду:
sudo systemctl restart file_name.service
Поменять дни и время рассылки можно в 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, можно задать сразу несколько дней)
Анна Победоносцева (тимлид команды)
Светлана Шатунова (разработчик)
Ольга Скрябина (разработчик)
Татьяна Мусатова (разработчик)
Никита Пискунов (разработчик)