Backend система и административная панель для управления Базой данных Telegram бота TutorAI. Позволяет управлять образовательным контентом, студентами, расписанием и данными курсов.
- Управление студентами - добавление, редактирование, отслеживание статуса
- Программы и модули - создание образовательных программ и курсов
- Материалы курса - управление учебными материалами с поддержкой файлов
- Расписание - планирование занятий и событий
- Прогресс студентов - отслеживание выполнения модулей и тем
- Тестирование - управление тестами и результатами
- История сообщений - просмотр переписки с ботом
- Лимиты запросов - контроль использования бота
- Воронка регистрации - этапы регистрации и заявки консультанта
- Реестр - актуальные записи внешнего реестра обучения
- FastAPI - современный веб-фреймворк с автоматической документацией
- SQLAlchemy 2.0 - ORM с асинхронной поддержкой
- PostgreSQL - реляционная база данных
- SQLAdmin - админ панель с русским интерфейсом
- asyncpg - асинхронный драйвер PostgreSQL
- Pydantic - валидация данных
TutorAI/
├── app/ # Основное приложение
│ ├── main.py # Точка входа FastAPI
│ ├── core/ # Ядро приложения
│ │ ├── config.py # Конфигурация
│ │ └── database.py # Настройка БД
│ ├── models/ # Модели данных
│ │ └── education.py # SQLAlchemy модели
│ └── admin/ # Админ панель
│ └── views.py # Настройка админки
├── alembic/ # Миграции БД (опционально)
├── requirements.txt # Зависимости Python
└── README.md # Документация
- Python 3.8+ (рекомендуется 3.11+)
- PostgreSQL база данных (локальная или облачная)
-
Клонируйте репозиторий:
git clone <repository-url> cd TutorAI
-
Установите зависимости:
pip install -r requirements.txt
-
Настройте переменные окружения:
Создайте файл
.envв корне проекта:# Database DATABASE_URL=postgresql+asyncpg://user:password@host:port/database # Admin Authentication ADMIN_USERNAME=admin ADMIN_PASSWORD=your_secure_password SECRET_KEY=your_secret_key_here # App Settings PROJECT_NAME=TutorAI Admin DEBUG=true
-
Запустите сервер:
uvicorn app.main:app --reload
-
Откройте админ-панель:
- URL: http://localhost:8000/admin
- Логин: значение из
ADMIN_USERNAME - Пароль: значение из
ADMIN_PASSWORD
| Таблица | Описание |
|---|---|
| programs | Образовательные программы |
| students | Студенты с Telegram интеграцией |
| course_modules | Модули курса |
| topics | Темы/уроки внутри модулей |
| course_materials | Материалы курса (файлы, контент) |
| student_module_progress | Прогресс студентов по модулям |
| messages | История сообщений с ботом |
| rate_limits | Лимиты запросов студентов |
| schedule_items | Расписание занятий |
| attestation_tests | Тесты для аттестации |
| test_results | Результаты тестов студентов |
| feedback | Отзывы студентов |
| registration_progress | Прогресс регистрации (воронка) |
| consultant_requests | Заявки консультанта (чат / звонок) |
После запуска доступна по адресу http://localhost:8000/admin
- Студенты - управление студентами и их данными
- Программы - образовательные программы
- Модули - разделы курсов с распределением часов
- Темы - темы уроков с типами занятий
- Материалы - учебные материалы с файлами
- Прогресс - отслеживание прогресса студентов
- Сообщения - история переписки (только просмотр)
- Лимиты - контроль использования бота
- Расписание - планирование занятий
- Тесты - управление тестами
- Результаты - результаты тестирования
- Отзывы - оценки и комментарии
- Регистрация (воронка) - этапы регистрации на платформе
- Заявки консультанта - вопросы и заявки на звонок
После запуска приложения доступна автоматическая документация:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Health Check: http://localhost:8000/health
uvicorn app.main:app --reload --log-level debugGet-Process | Where-Object {$_.ProcessName -eq "python" -and $_.CommandLine -like "*uvicorn*"} | Stop-Process -ForceПриложение автоматически подключается к PostgreSQL через DATABASE_URL из .env.
Для работы с миграциями (опционально):
# Создать миграцию
alembic revision --autogenerate -m "Description"
# Применить миграции
alembic upgrade head- Измените
ADMIN_PASSWORDна надежный пароль - Установите сложный
SECRET_KEY - Установите
DEBUG=false - Используйте HTTPS
- Настройте файрвол для доступа к БД
MIT License