From b4ebf9c4dffc199a330dc417eb181aca94cf03e0 Mon Sep 17 00:00:00 2001 From: kolo Date: Wed, 7 Jan 2026 22:47:09 +0300 Subject: [PATCH] update --- README.md | 68 +++++++++++++++++++++++-------------------------------- 1 file changed, 28 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 8b050f2..33dd1c6 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,39 @@ -# Trudex +# 📚 Quizzi -Telegram платформа для тестирования по охране труда +Telegram-бот для создания и прохождения тестов с удобным интерфейсом и полным контролем над процессом. -## Архитектура +## 🎯 Зачем это нужно -Проект построен на принципах Clean Architecture с разделением на три слоя: +Если вам надоело собирать ответы в Google Forms, вручную считать баллы и рассылать результаты — Quizzi решает эти проблемы. Бот работает прямо в Telegram: студенты проходят тесты там, где им удобно, а преподаватели получают готовую статистику в Excel. -- **Application** - координация и UI логика (aiogram, aiogram-dialog) -- **Domain** - бизнес-логика и доменные модели -- **Infrastructure** - технические детали (БД, API, планировщик) +## ✨ Что умеет бот -## Технологический стек +### Для студентов -- aiogram 3.x - Telegram Bot API -- aiogram-dialog - state machine для диалогов -- dishka - Dependency Injection -- SQLAlchemy 2.x async - ORM для PostgreSQL -- Alembic - миграции БД -- APScheduler - фоновые задачи -- httpx - HTTP-клиент -- Pydantic - валидация конфигурации +Переходите по ссылке или QR-коду — и сразу попадаете в тест. Никаких регистраций и лишних шагов. Отвечаете на вопросы кнопками, видите таймер с оставшимся временем, получаете результат мгновенно после завершения. Если разрешено — можете пересдать и улучшить балл. -## Структура проекта +### Для преподавателей -``` -src/trudex/ -├── application/ # Слой приложения -│ └── bot/ -│ ├── middlewares/ # Промежуточные обработчики -│ ├── user_dialogs/ # Диалоги пользователей -│ ├── admin_dialogs/# Диалоги администраторов -│ └── handlers.py # Обработчики событий -├── domain/ # Доменный слой -│ └── schemas.py # Доменные модели -└── infrastructure/ # Инфраструктурный слой - ├── api/ # Внешние API - ├── database/ # Работа с БД - │ ├── dao/ # Data Access Objects - │ ├── models.py # ORM модели - │ └── config.py # Конфигурация БД - ├── scheduling/ # Фоновые задачи - └── utils/ # Утилиты и конфигурация +Создавайте тесты с разными типами вопросов: один правильный ответ, несколько или свободный ввод. Прикрепляйте изображения к вопросам. Настраивайте под себя: + +- ⏱️ Лимит времени на весь тест +- � К*оличество попыток пересдачи +- 📅 Дату автоматической деактивации +- � Пароль для доступа +- 🎓 Привязку к конкретной группе + +Делитесь тестом через ссылку или QR-код. Смотрите кто прошёл, с каким результатом, какие ответы давал. Выгружайте статистику по группе в Excel — с оценками, процентом сдачи и средним баллом. + +## � Установка + +```bash +uv sync +cp config.example.toml config.toml +# отредактируйте config.toml +alembic upgrade head +python -m quizzi.application ``` -## Запуск +## 📄 Лицензия -1. Установить зависимости: `uv sync` -2. Настроить `config.toml` -3. Запустить миграции: `alembic upgrade head` -4. Запустить бота: `python -m trudex` +MIT