Coder Social home page Coder Social logo

zebrahr / feedme Goto Github PK

View Code? Open in Web Editor NEW

This project forked from andreykhlestov/feedme

1.0 0.0 0.0 204 KB

Телеграм-бот для быстрого сбора, передачи и выгрузки информации для участников проекта "Накорми"

JavaScript 5.28% Python 75.26% CSS 2.19% HTML 17.11% Dockerfile 0.16%

feedme's Introduction

Проект FeedMe Bot

Описание

Телеграм-Бот для Фонда Защиты Городских Животных.

Телеграм-бот, который позволяет автоматизировать процесс сбора, передачи и выгрузки информации для участников проекта "Накорми", а также формирует отчетную информацию.

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

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

Технологии

Python aiogram Django PostgreSQL Docker APScheduler Redis Loguru Boto3 Django-storages

Запуск проекта локально

Клонируйте репозиторий и перейдите в него:

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:

  1. Перейдите на официальный сайт ngrok: ngrok.com
  2. Зарегистрируйтесь или войдите в свою учетную запись.
  3. Скачайте ngrok для вашей операционной системы и распакуйте архив.
  4. Авторизуйтесь в ngrok:
ngrok authtoken YOUR_AUTH_TOKEN - токен вы получите при регистрации
  1. Запустите ngrok для вашего локального сервера
ngrok http http://localhost:8000

В результате выполнения команды вы получите публичный URL, который будет перенаправлять запросы на ваш локальный сервер. Например:

Forwarding                    https://12345678.ngrok.io -> http://localhost:8000
  1. Добавьте полученный 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

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

Андрей Хлестов (тимлид команды)

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

Илья Фабиянский (разработчик)

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

Анна Победоносцева (разработчик)

feedme's People

Contributors

andreykhlestov avatar zebrahr avatar fabilya avatar konstantinsks avatar

Stargazers

Aleksandr Malshakov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.