← Назад к портфолио
Запущен

Telegram Бот для ЕГЭ

Подготовка к ЕГЭ по истории (раздел "Культура")

Попробуйте бота

Откройте бота в Telegram и начните подготовку к ЕГЭ прямо сейчас

🤖 Открыть в Telegram ⚙️ Админ-панель

Образовательный Telegram-бот для подготовки к ЕГЭ по истории, разработанный на Python с использованием библиотеки aiogram 3.x. Бот предоставляет интерактивное изучение теории по культуре России, прохождение тестов с автоматической проверкой ответов и отслеживание прогресса обучения.

520
Вопросов
4
Темы
Python
Технология
2025
Год

Статус

Запущен

Платформа

Telegram

Язык

Python 3.12

База данных

SQLite

🎯 Основной функционал

  • 📚 Теория — изучение материалов по культуре России по 4 темам: Культура Древней Руси, XVIII, XIX и XX веков. Каждая тема содержит конспект, ключевые памятники и раздел "Как спрашивают в ЕГЭ"
  • 📝 Тесты — режим "Тренировка ЕГЭ" с 5 вопросами. После каждого ответа показывается правильный вариант и пояснение. В конце теста выводится полный разбор всех неправильных ответов и список всех вопросов с правильными ответами
  • 📊 Мой прогресс — раздел с детальной статистикой:
    • Общая статистика (всего ответов, правильных, процент точности)
    • Статистика по темам (прогресс по каждой теме отдельно)
    • История тестов (последние 10 пройденных тестов с результатами)
    • Достижения (Новичок, Знаток, Эрудит, Отличник)
  • ℹ️ Справка — помощь по использованию бота и список команд

⚙️ Технические особенности

  • Архитектура — асинхронный бот на aiogram 3.x с использованием FSM (Finite State Machine) для управления состояниями тестов
  • База данных — SQLite с таблицами для пользователей, сессий тестов, статистики по темам, истории тестов и достижений
  • Webhook — работа через webhook на сервере с автоматическим перезапуском при изменении контента
  • Админ-панель — веб-интерфейс для управления теорией, вопросами и справкой без редактирования кода. Поддержка создания, редактирования и удаления контента
  • Система достижений — автоматическое отслеживание прогресса и выдача достижений за различные показатели
  • Обработка длинных сообщений — автоматическое разбиение сообщений длиннее 4096 символов на несколько частей для корректного отображения в Telegram

🛠 Технологический стек

Python 3.12 aiogram 3.x SQLite aiohttp Uvicorn Nginx Systemd PHP

📈 Статистика проекта

  • 520 вопросов — распределены по 4 темам (130 вопросов на каждую тему)
  • 4 темы теории — подробные материалы по культуре России разных эпох
  • Система статистики — отслеживание прогресса по темам и общая статистика
  • История тестов — сохранение результатов всех пройденных тестов
  • 4 типа достижений — мотивационная система для пользователей

📚 Документация

Полная документация проекта доступна в репозитории:

  • README.md — общее описание проекта и инструкции по установке
  • QUICK_START.md — быстрый старт для разработчиков
  • PRODUCTION_SETUP.md — настройка для production окружения
  • ADMIN_README.md — руководство по использованию админ-панели
  • TESTING.md — инструкции по тестированию бота

🎓 Особенности реализации

  • Динамическая перезагрузка модулей — изменения в контенте применяются без полного перезапуска бота благодаря использованию importlib.reload
  • Безопасное хранение данных — правильная сериализация сложных структур данных (словари неправильных ответов) в текстовые поля базы данных
  • Оптимизация производительности — асинхронная работа с базой данных через aiosqlite для высокой производительности
  • Масштабируемость — архитектура позволяет легко добавлять новые темы, вопросы и функции без изменения основной логики
  • Мониторинг и логирование — подробное логирование всех событий для отладки и мониторинга работы бота