mirror of
https://github.com/koloideal/Quizzi.git
synced 2026-06-10 02:15:29 +03:00
ebdc9954de556ce792f990cf82f0127a32df4201
Trudex
Telegram платформа для тестирования по охране труда
Архитектура
Проект построен на принципах Clean Architecture с разделением на три слоя:
- 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 - валидация конфигурации
Структура проекта
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/ # Утилиты и конфигурация
Запуск
- Установить зависимости:
uv sync - Настроить
config.toml - Запустить миграции:
alembic upgrade head - Запустить бота:
python -m trudex
Languages
Python
99.7%
Mako
0.2%