Skip to content

AmirMaremshao/TutorAI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TutorAI - Образовательная платформа с ИИ-тьютором

Современная backend система для образовательной платформы с ИИ-тьютором через Telegram бота. Управляет студентами, материалами курсов, расписанием и предоставляет REST API для интеграции с внешними системами.

Ключевые возможности

  • ИИ-тьютор через Telegram бота
  • Образовательная система с программами, потоками, модулями и уроками
  • 3 типа материалов: лекционные, задания, методические
  • Расписание занятий с разными типами (лекции, практика, самостоятельная работа)
  • Управление студентами с Telegram интеграцией
  • Админ панель для управления всеми данными
  • Система заданий с отслеживанием статусов
  • История сообщений и ответов ИИ-тьютора

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

  • FastAPI - современный веб-фреймворк с автоматической документацией
  • SQLAlchemy 2.0 - ORM с асинхронной поддержкой
  • PostgreSQL - реляционная база данных
  • Alembic - система миграций
  • SQLAdmin - админ панель
  • Docker - контейнеризация
  • Pydantic - валидация данных

Структура проекта

TutorAI/
├── app/                          # Основное приложение
│   ├── main.py                   # Точка входа FastAPI
│   ├── core/                     # Ядро приложения
│   │   ├── config.py            # Конфигурация
│   │   └── database.py          # Настройка БД
│   ├── models/                   # Модели данных
│   │   └── education.py         # SQLAlchemy модели
│   ├── api/                      # API endpoints
│   │   └── v1/                   # Версия API v1
│   │       ├── students.py      # Студенты API
│   │       ├── materials.py     # Материалы API
│   │       └── messages.py      # Сообщения API
│   └── admin/                    # Админ панель
│       └── views.py             # Настройка админки
├── alembic/                     # Миграции БД
│   ├── env.py                   # Конфигурация Alembic
│   ├── script.py.mako           # Шаблон миграций
│   └── versions/                # Файлы миграций
├── db/                          # Схемы БД
│   ├── init.sql                 # Инициализация
│   └── schema.sql               # Полная схема
├── scripts/                     # Утилиты
│   ├── init_db.py              # Инициализация БД
│   ├── seed_data.py            # Тестовые данные
│   └── create_user.py           # Создание пользователей
├── docker-compose.yml           # Docker конфигурация
├── Dockerfile                   # Docker образ
├── requirements.txt             # Зависимости Python
├── alembic.ini                  # Конфигурация Alembic
└── README.md                    # Документация

Быстрый старт

Требования для запуска

Минимальные требования:

  • Python 3.8+ (рекомендуется 3.11+)
  • Docker и Docker Compose
  • Git (для клонирования репозитория)

ПОЛНАЯ УСТАНОВКА С НУЛЯ

Шаг 1: Установка Python (если не установлен)

Windows:

# Скачайте Python с https://python.org
# При установке ОБЯЗАТЕЛЬНО отметьте "Add Python to PATH"

Шаг 2: Установка Docker

Windows:

  • Скачайте Docker Desktop
  • Установите и запустите Docker Desktop

Шаг 3: Клонирование проекта

# Клонируйте репозиторий
git clone <repository-url>
cd TutorAI

Шаг 4: Автоматическая настройка

# 1. Установить зависимости Python
pip install -r requirements.txt

# 2. Запустить автоматическую настройку (все остальное сделает скрипт)
python scripts/auto_setup.py

Что получите после запуска:

Решение проблем установки

Ошибка компиляции asyncpg на Windows

Если при установке зависимостей возникает ошибка:

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
Failed to build asyncpg

Решения (в порядке предпочтения):

Вариант 1: Предкомпилированная версия (рекомендуется)

# Установить предкомпилированную версию asyncpg
pip install --only-binary=all asyncpg

# Затем установить остальные зависимости
pip install -r requirements.txt

Вариант 2: Обновить pip и установить build tools

# Обновить pip
python -m pip install --upgrade pip

# Установить Microsoft C++ Build Tools
# Скачайте: https://visualstudio.microsoft.com/visual-cpp-build-tools/
# При установке выберите "C++ build tools"

# Перезапустите терминал и попробуйте снова
pip install -r requirements.txt

Вариант 3: Использовать Docker (самый надежный)

# Запуск через Docker (все зависимости уже установлены)
docker-compose up -d

Вариант 4: Автоматический скрипт (рекомендуется)

# Скрипт автоматически решит проблемы с зависимостями
python scripts/auto_setup.py

Управление миграциями

# Создать новую миграцию
alembic revision --autogenerate -m "Описание изменений"

# Применить миграции
alembic upgrade head

# Откатить миграцию
alembic downgrade -1

# Показать историю миграций
alembic history

Админ панель включает:

  • Студенты - управление студентами
  • Программы курсов - образовательные программы
  • Потоки - потоки обучения
  • Модули - разделы курсов
  • Уроки - темы уроков
  • Материалы курса - файлы и контент
  • Расписания - расписание занятий
  • Задания - студенческие задания
  • Сообщения - история чатов (только просмотр)
  • Ответы бота - ответы ИИ (только просмотр)

API и документация

Автоматическая документация

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

API Endpoints

  • GET / - Главная страница (редирект на админку)
  • GET /health - Проверка состояния
  • GET /admin - Админ панель
  • GET /docs - API документация

База данных

Основные сущности

Модель Описание
Student Студенты с Telegram интеграцией
CourseProgram Образовательные программы
Stream Потоки обучения
Module Модули курса (разделы)
Lesson Уроки/темы внутри модулей
CourseMaterial Материалы курса (3 типа)
Message Сообщения студентов
BotResponse Ответы ИИ-тьютора
Assignment Задания студентов
Schedule Расписание занятий
Prompt Промпты для ИИ

Типы материалов

  1. Лекционные (lecture) - информация для слушателя
  2. Задания (assignment) - тестирования и практические работы
  3. Методические (methodical) - критерии проверки и оценки

Типы занятий

  1. Лекционная работа - с датой и временем
  2. Практическая работа - с датой и временем
  3. Самостоятельная работа - только дата

ИИ-тьютор и Telegram бот

Система промптов

Система хранит промпты в таблице prompts с типами:

  • question_classifier - классификация вопросов студентов
  • faq_response - ответы на часто задаваемые вопросы
  • material_response - работа с материалами курса

Telegram интеграция

  • Сообщения студентов сохраняются в таблице messages
  • Ответы ИИ-тьютора в таблице bot_responses
  • Связь через telegram_user_id и telegram_username
  • Поддержка множественных чатов

Тестирование

# Запуск тестов
pytest

# С покрытием кода
pytest --cov=app

Утилиты

# Инициализация БД
python scripts/init_db.py --create --migrate --seed

# Загрузка тестовых данных
python scripts/seed_data.py

# Проверка состояния
curl http://localhost:8000/health

Лицензия

MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 86.8%
  • PLpgSQL 7.5%
  • CSS 5.0%
  • Other 0.7%