cleaning root
Some checks reported errors
continuous-integration/drone/push Build encountered an error

This commit is contained in:
2025-09-11 08:18:31 +09:00
parent fcf27c1639
commit b0346e4bd7
26 changed files with 352 additions and 159 deletions

210
README.md
View File

@@ -1,6 +1,6 @@
# 🤖 Quiz Bot - Телеграм бот для викторин
Асинхронный телеграм-бот для проведения викторин и тестирования по различным материалам.
Асинхронный телеграм-бот для проведения викторин и тестирования по различным материалам с полной DevOps инфраструктурой.
## 📋 Описание
@@ -22,112 +22,109 @@ Quiz Bot поддерживает два режима работы:
```
quiz_test/
├── config/
│ └── config.py # Конфигурация приложения
├── src/
│ ├── bot.py # Основной файл бота
│ ├── database/
│ └── database.py # Работа с базой данных
│ ├── handlers/ # Обработчики команд (будущее расширение)
│ ├── services/
└── csv_service.py # Загрузка тестов из CSV
│ └── utils/ # Утилиты
├── config/ # Конфигурация приложения
├── src/ # Исходный код бота
│ ├── bot.py # Основной файл бота
│ ├── database/ # Работа с базой данных
│ ├── services/ # Бизнес-логика
│ └── utils/ # Утилиты
├── tests/ # Тесты приложения
├── tools/ # Вспомогательные инструменты
├── docs/ # Документация
├── data/ # CSV файлы и база данных
├── .env # Переменные окружения
├── .env.example # Пример файла окружения
├── logs/ # Логи приложения
├── scripts/ # Скрипты автоматизации
├── requirements.txt # Зависимости Python
├── init_project.py # Скрипт инициализации
── README.md # Этот файл
├── Dockerfile # Контейнеризация
── docker-compose.yml # Оркестрация контейнеров
├── Makefile # Автоматизация команд
└── .drone.yml # CI/CD пайплайн
```
## 📚 Документация
- 📖 [Быстрый старт](docs/QUICKSTART.md) - Начало работы с проектом
- 🐳 [Docker инструкции](docs/DOCKER_README.md) - Контейнеризация и развертывание
- 🏗️ [DevOps инфраструктура](docs/DEVOPS_SUMMARY.md) - CI/CD и автоматизация
- 🔧 [Инфраструктура](docs/INFRASTRUCTURE.md) - Архитектура и компоненты
- 🔧 [Отчет по исправлениям](docs/FIX_REPORT.md) - История изменений
## 🚀 Быстрый старт
### 1. Подготовка окружения
### 🐳 Docker (рекомендуется)
```bash
# Клонируйте репозиторий или создайте папку проекта
cd quiz_test
# Разработка
make docker-dev
# Создайте виртуальное окружение
# Продакшен
make docker-prod
# Остановка
make docker-stop
```
### 🔧 Локальная разработка
```bash
# Установка зависимостей
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# или
.venv\Scripts\activate # Windows
# Установите зависимости
source .venv/bin/activate
pip install -r requirements.txt
# Инициализация проекта
python tools/init_project.py
# Запуск бота
python -m src.bot
```
### 2. Настройка бота
1. Создайте бота в Telegram через @BotFather
2. Скопируйте токен
3. Скопируйте файл конфигурации:
```bash
cp .env.example .env
```
4. Отредактируйте `.env` файл:
```
BOT_TOKEN=ваш_токен_от_BotFather
ADMIN_IDS=ваш_telegram_id
```
### 3. Инициализация проекта
## 🛠️ Доступные команды
```bash
# Или используя Makefile
make init
# Разработка
make install # Установка зависимостей
make run # Запуск бота локально
make test # Запуск тестов
make lint # Проверка кода
make format # Форматирование кода
# Или напрямую
python init_project.py
# Docker
make docker-dev # Разработка в Docker
make docker-prod # Продакшен в Docker
make docker-logs # Просмотр логов
make docker-shell # Вход в контейнер
# Качество кода
make security-check # Проверка безопасности
make type-check # Проверка типов
make coverage # Покрытие тестов
```
Этот скрипт:
- Создаст базу данных SQLite
- Сгенерирует тестовые CSV файлы
- Загрузит тесты в базу данных
## 🏛️ Архитектура
### 4. Тестирование (опционально)
### Основные компоненты
```bash
# Проверить импорты и конфигурацию
make test-bot
- **src/bot.py** - Главный модуль с Telegram Bot API
- **src/database/** - Модули работы с SQLite базой данных
- **src/services/** - Бизнес-логика (загрузка CSV, обработка тестов)
- **tests/** - Автотесты приложения
- **tools/** - Вспомогательные инструменты и скрипты
# Интерактивный тест в консоли
make test
### DevOps компоненты
# Демонстрация возможностей
make demo
```
### 5. Запуск бота
```bash
# Используя Makefile
make run
# Или напрямую
python src/bot.py
```
- **Dockerfile** - Многоступенчатая сборка контейнера
- **docker-compose.yml** - Оркестрация для разработки и продакшена
- **.drone.yml** - CI/CD пайплайн с 9 этапами проверки
- **Makefile** - Автоматизация всех команд разработки
## 📊 Доступные тесты
### 🇰🇷 Корейский язык
**Уровень 1** (20 вопросов)
- Базовые приветствия и фразы
- Простые слова и числа
- Основная лексика
**Уровень 2** (20 вопросов)
- Повседневное общение
- Покупки и путешествия
- Время и погода
**Уровень 3** (20 вопросов)
- Сложные грамматические конструкции
- Условные предложения
- Выражение мнений
- **Уровень 1-5** - От базовых фраз до продвинутой грамматики
- Поддержка CSV импорта новых тестов
- Автоматическая генерация тестовых данных
**Уровень 4** (20 вопросов)
- Продвинутая грамматика
@@ -230,35 +227,44 @@ def generate_english_level_1() -> List[Dict]:
- Убедитесь что бот запущен
- Проверьте логи в консоли
### Ошибки базы данных
- Удалите файл `data/quiz_bot.db`
- Запустите `python init_project.py`
## 🐛 Устранение неисправностей
### CSV не загружается
- Проверьте формат файла
- Убедитесь в правильной кодировке (UTF-8)
- Проверьте путь к файлу
### База данных
```bash
# Переинициализация
python tools/init_project.py
## 📝 TODO
# Проверка через Docker
make docker-shell
```
- [ ] Веб-интерфейс для администратора
- [ ] Поддержка изображений в вопросах
- [ ] Система рейтингов
- [ ] Экспорт статистики
- [ ] Многоязычный интерфейс
- [ ] Таймер для вопросов
- [ ] Уведомления и напоминания
### Логи и мониторинг
```bash
make docker-logs # Просмотр логов
make status # Статус системы
```
## 🤝 Участие в разработке
1. Форк репозитория
2. Создание feature ветки
3. Коммиты с осмысленными сообщениями
4. Pull request с описанием изменений
### Code Style
- Используйте `make format` перед коммитом
- Пишите тесты для нового функционала
- Следуйте PEP8 и принципам Clean Code
## 📄 Лицензия
MIT License - используйте свободно для любых целей.
MIT License - свободное использование для любых целей.
## 🤝 Поддержка
## 📞 Поддержка
Если возникли вопросы:
1. Проверьте этот README
2. Посмотрите логи бота
3. Создайте issue с описанием проблемы
- 📖 [Документация](docs/) - полные инструкции
- 🐛 Issues - для сообщения о багах
- 💬 Discussions - для вопросов и идей
---
**Удачи в изучении языков! 🎓**
🎓 **Успехов в изучении языков!** 🚀