🎓 ExamFlow
January 4, 2026 · View on GitHub
Современная образовательная платформа для подготовки к ЕГЭ и ОГЭ с использованием искусственного интеллекта.
Учебный проект
📋 Описание
ExamFlow — это комплексная платформа для подготовки к экзаменам, которая объединяет:
- 🤖 ИИ-помощник на базе Gemini 2.0
- 📚 База заданий ФИПИ
- 📱 Telegram бот
- 🎯 Персонализированные рекомендации
- 📊 Аналитика прогресса
- 🎮 Геймификация обучения
✨ Основные возможности
Для учащихся
- ИИ-ассистент: Получайте подробные ответы на вопросы и объяснения сложных тем
- База заданий: Доступ к заданиям ФИПИ по математике и русскому языку
- Персонализация: Адаптивное обучение под ваш уровень
- Telegram бот: Удобный доступ к материалам прямо в мессенджере
- Аналитика: Отслеживание прогресса и рекомендации по улучшению
Технические особенности
- Модульная архитектура: Четкое разделение компонентов
- RESTful API: Стандартизированные эндпоинты
- Кэширование: Оптимизация производительности через Redis
- Безопасность: CSP заголовки, rate limiting, защита от атак
- Адаптивный дизайн: Оптимальная работа на всех устройствах
🚀 Быстрый старт
Требования
- Python 3.11+
- PostgreSQL 15+
- Redis 7+ (опционально, для кэширования)
- Node.js 18+ (для frontend инструментов)
Установка
- Клонирование репозитория
git clone https://github.com/yourusername/ExamFlow.git
cd ExamFlow
- Создание виртуального окружения
python -m venv venv
source venv/bin/activate # Linux/Mac
# или
venv\Scripts\activate # Windows
- Установка зависимостей
pip install -r requirements.txt
- Настройка переменных окружения
cp .env.example .env
# Отредактируйте .env файл с вашими настройками
Необходимые переменные окружения:
SECRET_KEY=your-secret-key
DEBUG=True
DATABASE_URL=postgresql://user:password@localhost:5432/examflow
REDIS_URL=redis://localhost:6379/0
GEMINI_API_KEY=your-gemini-api-key
TELEGRAM_BOT_TOKEN=your-telegram-bot-token
TELEGRAM_WEBHOOK_SECRET=your-webhook-secret
- Настройка базы данных
python manage.py migrate
python manage.py createsuperuser
- Загрузка статических файлов
python manage.py collectstatic --noinput
- Запуск сервера разработки
python manage.py runserver
Приложение будет доступно по адресу: http://localhost:8000
📁 Структура проекта
ExamFlow/
├── core/ # Основное приложение (персонализация, RAG-система)
├── learning/ # Модуль обучения
├── ai/ # Модуль ИИ-помощника
├── analytics/ # Модуль аналитики
├── telegram_bot/ # Telegram бот
├── telegram_auth/ # Авторизация через Telegram
├── themes/ # Система тем оформления
├── examflow_project/ # Настройки проекта
├── templates/ # HTML шаблоны
├── static/ # Статические файлы (CSS, JS, изображения)
├── tests/ # Тесты
├── docs/ # Документация
└── tools/ # Вспомогательные инструменты
🧪 Тестирование
Запуск всех тестов
python manage.py test
Запуск с покрытием
pytest --cov=. --cov-report=html
Линтинг и проверка кода
ruff check .
black --check .
isort --check-only .
flake8 .
🔧 Разработка
Миграции базы данных
# Создание миграций
python manage.py makemigrations
# Применение миграций
python manage.py migrate
Запуск Telegram бота
python manage.py runbot
Сборка статических файлов
python manage.py collectstatic --noinput
🌐 Деплой
Render.com
Проект настроен для деплоя на Render.com через render.yaml.
Необходимые переменные окружения на Render:
SECRET_KEYDATABASE_URL(автоматически предоставляется Render)GEMINI_API_KEYTELEGRAM_BOT_TOKENTELEGRAM_WEBHOOK_SECRETDEBUG=FalseALLOWED_HOSTS=examflow.onrender.com,yourdomain.com
📚 API документация
API документация доступна по адресу /api/docs/ (при использовании drf-spectacular).
Основные эндпоинты:
/api/tasks/random/- Получить случайное задание/api/tasks/<id>/- Получить задание по ID/api/subjects/- Список предметов/api/statistics/- Статистика пользователя/ai/chat/- Чат с ИИ-помощником
🔒 Безопасность
- Content Security Policy (CSP) настроен
- Rate limiting для API эндпоинтов
- Защита от CSRF атак
- Безопасные заголовки HTTP
- Маскирование чувствительных данных в логах
📄 Лицензия
Этот проект является учебным.
🤝 Вклад в проект
Проект находится в активной разработке. Все предложения и улучшения приветствуются!
📞 Контакты
- Веб-сайт: https://examflow.ru
- Telegram бот: @ExamFlowBot
🔄 Статус проекта
- ✅ Основной функционал работает
- ✅ ИИ-помощник интегрирован
- ✅ Telegram бот функционирует
- ✅ База заданий загружается
- 🔄 Дополнительные функции в разработке
Примечание: Сайт и ИИ-функциональность могут быть временно недоступны во время разработки.