Телеграм-бот, который позволяет автоматизировать процесс сбора, передачи и выгрузки информации для участников проекта "Накорми", а также формирует отчетную информацию.
Функционал телеграм-бота:
- для волонтера: регистрация информации о получении и расходе корма (получение корма на точке сбора, кормление животных, передача корма другому волонтеру, доступ в личный кабинет)
- для администратора: контроль за перемещением корма, статистика поступления и расхода корма
Клонируйте репозиторий и перейдите в него:
git clone https://github.com/AndreyKhlestov/FeedMe
cd FeedMe
Создайте виртуальное окружение:
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.template в .env, уберите комментарии и заполните недостающие поля:
HOST_IP - замените id-адрес сервера на адрес сервера, на котором устанавливается бот.
ВАЖНО! Ваш домен должен быть доступен по протоколу https!
BOT_TOKEN - укажите токен вашего бота
SUPER_USER_NAME и SUPER_USER_PASS - логин и пароль администратора Django (для автоматического создания в системе)
POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD - можно менять на ваше усмотрение или оставить как есть
REDIS_HOST=redis - для локального запуска эту переменную нужно закомментировать
REDIS_PORT=6379 - для локального запуска эту переменную нужно закомментировать
Остальные поля не менять, если вы не разбираетесь в коде
Создайте базу данных, применив миграции (из корня проекта):
python django_app.py makemigrations
python django_app.py migrate
- Перейдите на официальный сайт ngrok: ngrok.com
- Зарегистрируйтесь или войдите в свою учетную запись.
- Скачайте ngrok для вашей операционной системы и распакуйте архив.
- Авторизуйтесь в ngrok:
ngrok authtoken YOUR_AUTH_TOKEN - токен вы получите при регистрации
- Запустите ngrok для вашего локального сервера
ngrok http http://localhost:8000
В результате выполнения команды вы получите публичный URL, который будет перенаправлять запросы на ваш локальный сервер. Например:
Forwarding https://12345678.ngrok.io -> http://localhost:8000
- Добавьте полученный URL в файл .env. Например:
HOST_IP='12345678.ngrok.io'
Запустите бота (из корня проекта):
python bot.py
В отдельном терминале запустите админ панель (из корня проекта)
python django_app.py runserver
Админ панель будет доступна по адресу, полученному через ngrok
Клонируйте репозиторий на сервер и перейдите в него:
git clone https://github.com/AndreyKhlestov/FeedMe
cd FeedMe
В корневой директории проекта <ваш_сервер>/:~FeedMe переименуйте файл с переменными окружения .env.template в .env и внесите правки согласно инструкции выше
Запускаем Docker-compose и проверяем на наличие ошибок
sudo docker-compose up
Можно проверять работу бота и админ панели (перейдя по ссылке типа https://ip_вашего_сервера/)
Обращаем Ваше внимание, что BOT_TOKEN вы должны получить заранее самостоятельно при создании и регистрации бот-чата в телеграм сервисе по созданию ботов https://t.me/BotFather
Андрей Хлестов (тимлид команды)
Константин Стеблев (разработчик)
Илья Фабиянский (разработчик)
Татьяна Мусатова (разработчик)
Анна Победоносцева (разработчик)