PythonMeetup Bot — это комплексный Telegram-бот с backend на Django для управления офлайн-ивентами Python-сообщества. Бот автоматизирует регистрацию, вопросы к спикерам, донаты, нетворкинг, заявки на спикеров и подписки на будущие митапы.
- Регистрация пользователей и спикеров
- Программа мероприятия: быстрый просмотр расписания и информации о докладах
- Вопросы докладчикам прямо через Telegram
- Нетворкинг: анкеты и подбор знакомств между участниками
- Донаты через Telegram Payments
- Подписка на уведомления о будущих мероприятиях
- Заявки на выступление в качестве спикера
- Администрирование через Django admin
- Массовые рассылки (через админку)
PythonMeetup_Bot/
├── apps/ # Django-приложения (бизнес-логика, модели)
│ └── events/
│
├── bot/ # Логика Telegram-бота
│ ├── constants.py # FSM-состояния, команды, callback-data
│ ├── logging_tools.py # Централизованный логгер (RotatingFileHandler)
│ ├── telegram_bot.py # Точка входа — запуск бота
│ │
│ ├── handlers/ # Telegram-обработчики (по сценариям)
│ ├── keyboards/ # Фабрики inline/reply-клавиатур
│ ├── services/ # Прокси для бизнес-логики (apps/)
│ └── utils/ # Декораторы, дополнительные инструменты
│
├── tests/ # Тесты
│
├── pythonmeetup/ # Django-настройки и маршруты (settings, urls, wsgi, asgi)
│
├── manage.py # Django-команды
├── requirements.txt # Зависимости проекта
├── .env # Переменные окружения (НЕ коммитить!)
├── .gitignore # Список игнорируемых файлов/папок
└── README.md # Описание и инструкция (этот файл)
-
Клонируйте репозиторий:
git clone <ваш-репозиторий> cd PythonMeetup_Bot
-
Установите зависимости:
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
Создайте свой
.env:BOT_TOKEN=ваш_telegram_token PAYMENTS_PROVIDER_TOKEN=токен_платёжной_системы TELEGRAM_OWNER_ID=токен_для_отправки_уведомлений_об_ошибках # и другие необходимые переменные -
Запустите миграции и создайте администратора Django:
python manage.py makemigrations python manage.py migrate python manage.py createsuperuser
-
Запустите Django и бота (двумя разными процессами/терминалами):
python manage.py runserver python bot/telegram_bot.py
- apps/ — Django-приложения
- bot/constants.py — состояния FSM, callback-data, команды.
- bot/handlers/ — обработчики команд и сценариев (start, schedule, qna, donations, networking, subscriptions, speaker_app).
- bot/services/ — прокси для бизнес-логики (
apps/). - bot/keyboards/ — фабрики клавиатур (main_menu, qna, donations, networking, subscriptions, speaker_app).
- bot/logging_tools.py — настройка логгирования (вывод в logs/bot.log, ротация файлов, форматирование).
- bot/utils/ — утилиты, декораторы.
- bot/telegram_bot.py — точка входа, регистрация хендлеров, запуск polling.
- pythonmeetup/ — конфиг Django (settings.py, urls.py, wsgi.py, asgi.py).
- requirements.txt — все зависимости проекта.
Пример содержимого .env:
BOT_TOKEN=...
PAYMENTS_PROVIDER_TOKEN=...
TELEGRAM_OWNER_ID=...
- Все события и ошибки пишутся в файл
logs/bot.log. - Используется централизованный логгер (см.
bot/logging_tools.py).
-
Для запуска тестов используйте:
pytest
-
Тесты покрывают обработчики, сервисы, бизнес-логику.
- Вся административная работа (просмотр профилей, заявок, донатов, рассылки) — через стандартную Django admin-панель.