PRAKTIKA.plyask.in

Фреймворк на 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-инструкция по использованию фреймворка.
  • Бот успешно демонстрирует основные сценарии.

Бонусом будет:

  • если сделана гибкая маршрутизация (например, как через декораторы или регистрацию хендлеров);
  • если шаблонизатор позволяет легко расширять бота новыми экранами без копи