Была задача: создать Telegram-бота, который помогает решать математические задачи с пошаговым объяснением, при этом бот должен быть бесплатным для базового использования, но с возможностью монетизации.
Ключевые требования:
Асинхронная работа (бота не должно тормозить)
Интеграция с ИИ для объяснения решений
Система подписок (freemium)
Админка для управления пользователями
Двуязычный интерфейс (русский/английский)
Разработал бота с нуля на Python + aiogram 3.x (полностью асинхронный).
Архитектура: Clean Architecture (Handlers → Services → Repositories) — код легко масштабировать и тестировать.
Базы данных: PostgreSQL (SQLAlchemy 2.0 + Alembic) для хранения пользователей и подписок, Redis для кэширования и rate limiting.
ИИ: Подключил локальную LLM (Ollama) — бот генерирует пошаговые объяснения и похожие примеры.
Монетизация: Freemium-модель с подписками на 1, 3 и 12 месяцев через Telegram Stars.
Админка и безопасность: RBAC (роли user/admin/owner), лимиты запросов, тикет-система поддержки.
Математика: SymPy для точных вычислений, Matplotlib для графиков.
Деплой: Docker + CI/CD на GitHub Actions (zero-downtime деплой).
Тесты: Юнит и интеграционные тесты (pytest, моки) — текущее покрытие 33%, цель 70%+.
Полностью рабочий Telegram-бот @math4students_bot с открытым кодом на GitHub.
Что умеет:
Решать математические задачи с объяснениями
Генерировать похожие выражения для тренировки
Работать на двух языках (русский/английский)
Управлять подписками через Telegram Stars
Технические результаты:
Асинхронная архитектура выдерживает нагрузку
Код покрыт тестами (33%, цель 70%+)
Автоматический деплой через CI/CD
Docker-контейнеризация для лёгкого развёртывания
Бот готов к масштабированию и может быть адаптирован под любые задачи заказчика: от образовательных до коммерческих.