add algam

This commit is contained in:
2025-09-22 11:54:42 +05:00
parent 3c418a97b4
commit 5b9c55a4dc
34 changed files with 4700 additions and 426 deletions

159
app.control-bot/README.md Normal file
View File

@@ -0,0 +1,159 @@
# Управляющее приложение для Telegram бота
Веб-интерфейс для управления тестами Telegram бота.
## Возможности
- ✅ Управление тестами (создание, редактирование, удаление)
- ✅ Управление категориями тестов
- ✅ Управление вопросами и вариантами ответов
- ✅ Загрузка изображений к вопросам
- ✅ Фильтрация и поиск
- ✅ Современный адаптивный интерфейс
## Структура проекта
```
app.control-bot/
├── main.py # Основное приложение с веб-сервером
├── web/ # Веб-интерфейс
│ ├── index.html # Главная страница
│ └── static/
│ ├── css/
│ │ └── style.css # Стили
│ └── js/
│ ├── api.js # Работа с API
│ └── app.js # Основная логика приложения
├── pyproject.toml # Конфигурация проекта
└── README.md # Документация
```
## Запуск
### Предварительные требования
1. **Запущенный API сервер** на `http://localhost:8000`
```bash
cd ../api
python run_api.py
```
2. **Python 3.12+** (базовые библиотеки)
### Запуск веб-интерфейса
```bash
cd app.control-bot
python main.py
```
Веб-интерфейс будет доступен по адресу: `http://localhost:3000`
Браузер откроется автоматически через 2 секунды после запуска.
## Использование
### Управление тестами
1. **Создание теста:**
- Нажмите "Добавить тест"
- Заполните название и описание
- Выберите категорию (опционально)
- Установите лимит времени (опционально)
- Выберите статус (активный/неактивный)
2. **Редактирование теста:**
- Нажмите кнопку "Редактировать" в строке теста
- Измените необходимые поля
- Сохраните изменения
3. **Удаление теста:**
- Нажмите кнопку "Удалить" в строке теста
- Подтвердите удаление
### Управление категориями
1. Перейдите на вкладку "Категории"
2. Используйте кнопку "Добавить категорию" для создания новой
3. Редактируйте или удаляйте существующие категории
### Управление вопросами
1. Перейдите на вкладку "Вопросы"
2. Выберите тест из выпадающего списка
3. Добавляйте вопросы с помощью кнопки "Добавать вопрос"
#### Типы вопросов:
- **Один ответ** - радиокнопки, один правильный ответ
- **Несколько ответов** - чекбоксы, может быть несколько правильных
- **Текстовый ввод** - пользователь вводит ответ текстом
#### Работа с изображениями:
- Загружайте изображения к вопросам
- Поддерживаются форматы: JPG, PNG, GIF, WebP
- Изображения сохраняются в базе данных
## API Integration
Веб-интерфейс работает с API по адресу `http://localhost:8000/api/v1`
### Используемые эндпоинты:
- `GET/POST /tests` - Управление тестами
- `GET/POST /test-categories` - Управление категориями
- `GET/POST /questions` - Управление вопросами
- `GET/POST /answer-options` - Управление вариантами ответов
- `POST /images/upload` - Загрузка изображений
- `GET /images/{id}` - Получение изображений
## Технологии
- **Backend**: Python (http.server для статических файлов)
- **Frontend**: HTML5, CSS3, JavaScript (ES6+)
- **UI Framework**: Bootstrap 5.3
- **Icons**: Bootstrap Icons
- **API**: RESTful API с JSON
## Особенности
- Полностью адаптивный дизайн
- Валидация форм на клиентской стороне
- Уведомления об операциях
- Загрузка с индикаторами прогресса
- Подтверждение удаления
- Автоматическое обновление данных
- Поддержка изображений
- Фильтрация и поиск
## Устранение неполадок
### API сервер не запущен
```
❌ Ошибка: Cannot connect to API server
```
**Решение**: Запустите API сервер в папке `../api`
### Порт уже используется
```
❌ Ошибка: Порт 3000 уже используется
```
**Решение**: Остановите процесс на порту 3000 или измените порт в `main.py`
### Проблемы с CORS
Если возникают ошибки CORS, убедитесь, что в конфигурации API разрешены запросы с `http://localhost:3000`
## Разработка
Для изменения порта веб-сервера отредактируйте `main.py`:
```python
web_interface = WebInterface(port=3001) # Изменить порт
```
Для изменения адреса API отредактируйте `web/static/js/api.js`:
```javascript
const API_BASE_URL = 'http://localhost:8001/api/v1'; // Изменить адрес
```