/sobitie

Телеграм бот для центра социокультурных практик "Событие"

Primary LanguagePythonMIT LicenseMIT

Telegram бот для НКО "Событие"

Оглавление

Описание

Telegram бот для Центра социокультурных практик «Событие» помогает узнать подробнее о проектах организации, о людях состоящих в этом творческом содружестве, а также другую полезную информацию: контакты, как помочь, актуальные мероприятия и др. Пользователи могут подписаться на новые мероприятия и поиграть в квизы.

Технологии

  • python-telegram-bot - Асинхронный интерфейс для Telegram Bot API. На нём реализован бот.
  • Django - Используется для предоставления админ-панели для управления БД: квизами, вопросами, ответами и отправки уведомлений пользователям о новом мероприятии.

Начало работы

Подготовка к запуску

  • Клонировать репозиторий проекта
git clone git@github.com:Studio-Yandex-Practicum/sobitie.git
  • Создайте .env
cp .env-example .env
  • Для генерации секретного ключа Django, запустите python скрипт create_dj_secret_key.py. Добавьте его в .env
python create_dj_secret_key.py
  • Установить зависимости
pip install requirements.txt
  • Выполнить миграции Django
python drf_sobitie/manage.py migrate
Создание Telegram bot
Создать группу в vk
  • ID группы добавить в .env
  • Включите Long Poll API: Управление -> Работа с API -> Long Poll API -> Включить
  • Подключите необходимые события: ... -> Long Poll API -> Типы событий -> Записи на стене -> Добавление
Создать приложение в vk
  • Интерфейс создания приложения
  • Скопируйте сервисный токен из настроек приложения и добавьте его в .env
  • Создайте токен доступа. Дополните запрос ниже, вставьте его в адресную строку браузера, разрешите доступ. Скопируйте токен доступа из адресной строки браузера "...access_token_223361982=<сервисный токен>"
https://oauth.vk.com/authorize
?client_id=<ID вашего vk приложения>
&group_ids=<ID вашей vk группы>
&display=page
&redirect_uri=https://oauth.vk.com/blank.html
&scope=wall,manage
&response_type=token
&v=5.131
  • Токен доступа добавить в .env

Запуск

  • Запуск Django
python drf_sobitie/manage.py runserver
  • Запуск Бота
python manage.py runbot

*** Для более удобного развертывания рекомендуем запуск через docker compose

Запуск в контейнерах Docker-compose на сервере

  1. Клонировать репозиторий проекта
git clone git@github.com:Studio-Yandex-Practicum/sobitie.git
  1. Перейти в корневую папку проекта
cd sobitie/
  1. Создать .env и заполнить пустые значения по образцу .env-example
touch .env
nano .env
# Для сохранения файла используйте CTRL+O
# Если просит ввести имя файла, то проверьте правильность и подтвердите нажатием Enter
  • Чтобы сгенерировать секретный ключ Django, запустите python скрипт create_dj_secret_key.py
python create_dj_secret_key.py

Далее скопируйте его и заполните нужную переменную в .env
4. Запустить скрипт run.sh

./run.sh

CI-CD

  • залить файл docker-compose на сервер в домашнюю директорию
  • залить каталог nginx на сервер в домашнюю директорию
sudo apt update && apt upgrade
sudo apt install docker-compose

Авторы