GithubHelp home page GithubHelp logo

pavelfil98 / bot_delo_zhivet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from studio-yandex-practicum/bot_delo_zhivet

0.0 0.0 0.0 761 KB

Телеграм-бот для организации эко-субботников.

Shell 2.17% Python 65.69% HTML 31.46% Mako 0.25% Dockerfile 0.42%

bot_delo_zhivet's Introduction

Master Branch Checking with linters Deploy status
Develop Branch Checking with linters Deploy status

bot_delo_zhivet

Телеграм-бот для организации эко-субботников.


Оглавление:

  1. Установка poetry и запуск виртауального окружения
  2. Установка pre-commit hook
    1. Установка pre-commit
    2. Установка hook
  3. Подключение системы мониторинга Sentry
  4. Запуск базы и применение миграций на локальной машине
  5. Запуск бота

Установка poetry и запуск виртауального окружения

Для Linux, macOS, Windows (WSL):

curl -sSL https://install.python-poetry.org | python3 -

Для Windows (Powershell):

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

В macOS и Windows сценарий установки предложит добавить папку с исполняемым файлом poetry в переменную PATH. Сделайте это, выполнив следующую команду:

macOS

export PATH="/Users/jetbrains/.local/bin:$PATH"

Windows

$Env:Path += ";C:\Users\jetbrains\AppData\Roaming\Python\Scripts"; setx PATH "$Env:Path"

Не забудьте поменять jetbrains на имя вашего пользователя. Настройка окружения poetry для pycharm тут

Для проверки установки выполните следующую команду:

poetry --version

Установка автодополнений bash(опцонально)

poetry completions bash >> ~/.bash_completion

Создание виртуально окружения

poetry env use python3.10

Установка зависимостей (для разработки)

poetry install --with dev

Запуск оболочки и активация виртуального окружения

your@device:~/your_project_pwd/bot_delo_zhivet$ poetry shell

Проверка активации виртуального окружения

poetry env list

Запуск базы и применение миграций на локальной машине

Сначала поднимаем контейнер с базой Postgres

docker-compose -f postgres-local.yaml up -d --build

Если есть чьи-то миграции в проекте, то применяем их

alembic upgrade head

Если производятся изменения в моделях:

Каждую новую autogenerate-миграцию необходимо проверить перед применением по доке: https://geoalchemy-2.readthedocs.io/en/latest/alembic.html#interactions-between-alembic-and-geoalchemy-2 в том числе проверить выполнение следующих правил:remove the create_index statement in the upgrade() function.

  1. remove the drop_index statement in the downgrade() function.
  2. remove the create_index statement in the upgrade() function.
alembic stamp head
alembic revision --autogenerate -m "you_migration_name"

Дальше применяем:

alembic upgrade head

⬆️Оглавление


Установка pre-commit hook

Для того чтобы при каждом коммите выполнялись pre-commit проверки, необходимо:

  1. Установить pre-commit
  2. Установить pre-commit hooks

⬆️Оглавление

Установка pre-commit

Модуль pre-commit уже добавлен в requirements, таким образом после настройки виртуального окружения, должен установится автоматически Если этого не произошло, то установка осуществляется согласно требованиям инструкций:

  • установка через менеджер пакетов brew brew install pre-commit
  • установка через poetry poetry add pre-commit
  • установка через pip pip install pre-commit

Проверить установку pre-commit можно командой (при активированном виртуальном окружении):

pre-commit --version
>>pre-commit 2.20.0

⬆️Оглавление

Установка hook

Установка осуществляется hook командой

pre-commit install --all

В дальнейшем при выполнении команды git commit будут выполняться проверки перечисленные в файле .pre-commit-config.yaml.

Если не видно какая ошибка мешает выполнить commit, то можно запустить хуки в ручную можно командой

pre-commit run --all-files

Подключение системы мониторинга Sentry

  1. Зарегистрируйтесь на платформе: https://sentry.io/signup/
  2. Подключите Sentry к админке, для этого:
    • Создайте новый проект, выбрав при этом платформу FLASK. https://-ac.sentry.io/projects/new/
    • В настройках проекта перейдите в раздел "Client Keys", скопируйте ключ DSN (Data Source Name). https://-ac.sentry.io/settings/projects//keys/
    • Присвойте переменной SENTRY_DSN_ADMIN в файле .env полученное значение.
  3. Подключите Sentry к боту, выполнив для этого аналогичные шаги:
    • Создайте еще один проект, выбрав при этом платформу PYTHON.
    • В настройках проекта перейдите в раздел "Client Keys", скопируйте ключ DSN.
    • Присвойте переменной SENTRY_DSN_BOT в файле .env полученное значение.

Запуск бота

Переименуйте файл .env.example в .env и заполните его. Запуск может быть в режимах polling и webhook. Для режима webhook в файле .env должны быть указаны параметры WEBHOOK_DOMAIN и WEBHOOK_PORT. Подробнее об этом написано в официальном гайде telegram

Запуск бота осуществляется командой

Для Linux, macOS, Windows (WSL):

your@device:~/your_project_pwd/bot_delo_zhivet/$ poetry run runbot

Запуск admin:

flask run

После запуска:

Перейти по ссылке в терминала, ввести логин(admin) и пароль(admin123)


⬆️Оглавление

bot_delo_zhivet's People

Contributors

vasilekx avatar ani-zia avatar andreyizotov avatar zakongyka avatar aloshchilov avatar px2005 avatar ilya-simonov avatar bujikuh avatar personage-hub avatar lefaur avatar aleksandrtikhonov avatar gwynrey avatar dvkonstantinov avatar andreyvnk avatar denshvetsov avatar igredk avatar rengoky avatar raidzin 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.