Skip to content

Latest commit

 

History

History
106 lines (69 loc) · 4.41 KB

README.md

File metadata and controls

106 lines (69 loc) · 4.41 KB

random_coffee_bot

Описание

Бот для нетворкинга. С помощью бота проходят живые и онлайн встречи 1-1 для студентов и IT-специалистов. Каждую неделю рандомно подбирается пара для общения. Встречи проходят за пределами бота - на онлайн звонках или лично.

Бот поддерживает функционал:

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

Бот реально работает по ссылке https://t.me/YP_random_coffee_bot

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

Технологии

  • python==3.10
  • aiogram==2.24
  • SQLAlchemy==2.0.4

Запуск проекта в dev-режиме

Проект предназначен для развертывания в ОС Linux

  1. Клонировать репозиторий и перейти в него в командной строке:

        git clone <ссылка с git-hub>
  2. Cоздать виртуальное окружение:

        python3 -m venv venv
  3. Активируйте виртуальное окружение

        source venv/bin/activate
  4. Установите зависимости из файла requirements.txt

        pip install -r requirements.txt
  5. Поместите в папку data/ файл .env следующего формата

        # токен телеграм бота, формат string
        TG_TOKEN = ''
    
        # телеграм_id админа бота, формат string
        # если админов несколько - указывать id последовательно в строке через пробел 
        ADMIN_TG_ID = ''
    
        # телеграм_id пары, формат string
        # используется в случае, если в распределении участвует нечётное количество пользователей
        # данный юзер обязательно должен быть зарегистрирован в боте и проставить статус "Не участвую"
        DEFAULT_PARE_iD = ''
  6. В корневой папке проекта создайте пустые директории db и logs

  7. В корневой папке с файлом main.py выполните команду:

        python3 main.py
  8. В случае запуска бота на Windows, потребуется дополнительно скомпилировать файл .exe используя инструкцию и файлы из каталога

    match_algoritm/lowlevel
    

    Потребуется редактирование пути до файла в match_algoritm/MatchingHelper.py в функции start Организация виртуального окружения также потребует команд соответствующих ОС Windows.

Запуск проекта через Docker

  1. Создать в директории data/match_algoritm_data/ пустые файлы input.txt output.txt temp.txt

  2. сбилдить образ через Dockerfile

    docker build
  3. Заполнить tbf поля в docker-compose.yml

  4. Поднять контейнер

    docker compose up -d

Алгоритм компилируется при сборке.