cleaning root
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
210
README.md
210
README.md
@@ -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 - для вопросов и идей
|
||||
|
||||
---
|
||||
**Удачи в изучении языков! 🎓**
|
||||
🎓 **Успехов в изучении языков!** 🚀
|
||||
|
||||
Reference in New Issue
Block a user