Локальный тренажер по SQL для тестировщиков и QA-инженеров. Проект дает готовую учебную базу SQLite, набор задач по уровням, эталонные решения, валидатор и desktop UI для тренировки без внешних зависимостей кроме стандартного Python.
- 40 задач по уровням
Junior,Middle,Senior,Lead - локальная SQLite-база с реалистичной тестовой предметной областью
- проверка пользовательского SQL по обязательным конструкциям и по результату запроса
- desktop UI на
tkinter - режимы
ТренировкаиЭкзамен - прогресс, счетчик попыток и таймер по задаче
- сборка standalone
exeдля Windows
- для QA и AQA, которые хотят тренировать SQL на задачах разной сложности
- для команд, которым нужен локальный офлайн-тренажер для адаптации и интервью-практики
- для индивидуальной подготовки к техническим собеседованиям
- Python 3.11+
- tkinter
- sqlite3
- PyInstaller для сборки
exe
py -3 -m app.main init-db
py -3 -m app.main gui- двойной клик по
dist\SQL_Quest.exe - или по
release\SQL_Quest.exe, если собран релизный пакет
В корне лежит install_dependencies.bat. Он:
- Проверяет Python и pip
- Проверяет наличие
tkinterиsqlite3 - Инициализирует локальную базу
- Генерирует документацию
Для сборки desktop-бинарника:
build_exe.batИли напрямую:
py -3 -m PyInstaller --noconfirm --clean SQL_Quest.specДля подготовки раздаваемой папки release и архива SQL_Quest_release.zip:
build_release.batapp/gui.py— desktop UIapp/main.py— CLI и служебные командыapp/task_bank.py— банк задач и эталонных SQLapp/validator.py— логика проверкиapp/progress.py— локальное сохранение прогрессаdata/schema.sql— схема SQLitedata/seed.sql— тестовые данныеdocs/task_catalog.md— каталог задачdocs/answer_key.md— эталонные решенияdocs/validation_report.json— результат прогона канонических решений
py -3 -m app.main init-db
py -3 -m app.main gui
py -3 -m app.main practice
py -3 -m app.main export-docs
py -3 -m app.main validate-all
py -3 -m unittest discover -s tests -v- Принимаются только
SELECTиWITHзапросы. - Проверяется наличие обязательных SQL-конструкций для задачи.
- Пользовательский запрос выполняется на локальной SQLite-базе.
- Эталонный запрос выполняется на той же базе.
- Результаты сравниваются по структуре и содержимому.
- В тренировочном режиме показываются подсказки из пула решения.
Текущий релиз: 1.0.0
Проект уже пригоден для локального обучения и публикации на GitHub. Следующий естественный шаг — добавить скриншоты интерфейса, иконку приложения и версионированные GitHub Releases.