Фреймворк на Django для разработки Telegram-ботов с HTML-шаблонами
Создание внутреннего фреймворка на базе Django для упрощённой разработки Telegram-ботов с поддержкой HTML-шаблонов, мультиязычности и хранения состояний через Django ORM. Боты будут использоваться как внутренний инструмент или расширение пользовательских интерфейсов, и разработка фреймворка позволит стандартизировать их архитектуру, ускорить будущую разработку и упростить поддержку.
Предоплата 20 000 ₽
Цель и задачи работы
Цель — разработать Django-приложение, которое станет фреймворком для создания Telegram-ботов с поддержкой шаблонов, локализацией и управлением состояниями пользователей. Основная задача — упростить процесс создания новых ботов и их интерфейсов за счёт шаблонной генерации клавиатур, автоматической маршрутизации действий пользователя и централизованного хранения логики.
Также важно продемонстрировать способность применять Django в нетипичной среде — разработке телеграм-ботов, тем самым расширяя технический кругозор.
содержание работы
В рамках этой задачи ты:
- Изучаешь Telegram Bot API и популярные Python-библиотеки для работы с Telegram (в первую очередь
python-telegram-bot
, но также желательно поверхностно ознакомиться сaiogram
иTelethon
). - Анализируешь, как устроены inline-клавиатуры (
InlineKeyboardMarkup
) и как они могут быть сгенерированы из шаблонов (например, HTML с тегами, которые можно интерпретировать как кнопки). - Реализуешь прототип DSL (domain-specific language) на HTML-шаблонах Django, который будет позволять разработчику описывать интерфейсы бота через шаблоны.
- Реализуешь автоматическую маршрутизацию
callback_data
, привязку кнопок к хендлерам, используя простую декларативную схему. - Настраиваешь систему локализации и интернационализации (используя i18n и
gettext
) для сообщений и интерфейсов. - Хранишь пользовательские состояния и бизнес-логику через Django ORM (модель пользователя, текущая активность, данные форм и пр.).
- Строишь базовую архитектуру проекта, включая следующие директории:
bots
,templates
,locales
,models
,handlers
. - Создаёшь минимальный Telegram-бот на основе python-telegram-bot, подключающий твой фреймворк и демонстрирующий минимум 3 сценария:
- Главное меню с навигацией по разделам;
- Простая форма с вводом данных (через обычные сообщения);
- Пример сообщения на двух языках (например, RU и EN).
- Настраиваешь логирование действий пользователей (какие кнопки нажаты, какие переходы, что введено) и по возможности — проводишь базовое нагрузочное тестирование (например, скриптом через ботов).
Результат и критерии завершения работы
Готовый проект должен представлять собой Django-приложение, которое можно переиспользовать в других проектах. Должен быть один Telegram-бот, использующий это приложение как основу. В коде должны быть примеры шаблонов, локализации и хранения пользовательских данных.
Работа считается завершённой, если:
- Есть чистый, читаемый код, оформленный по PEP8 и общепринятым соглашениям.
- Все ключевые функции (шаблоны, кнопки, локализация, ORM) работают и покрыты примерами.
- Вся логика разложена по файлам с понятной архитектурой.
- Оформлена краткая README-инструкция по использованию фреймворка.
- Бот успешно демонстрирует основные сценарии.
Бонусом будет:
- если сделана гибкая маршрутизация (например, как через декораторы или регистрацию хендлеров);
- если шаблонизатор позволяет легко расширять бота новыми экранами без копи