Skip to content

boyjkee-wq/SQL-Quest

Repository files navigation

SQL Quest

Локальный тренажер по 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. Он:

  1. Проверяет Python и pip
  2. Проверяет наличие tkinter и sqlite3
  3. Инициализирует локальную базу
  4. Генерирует документацию

Сборка exe

Для сборки desktop-бинарника:

build_exe.bat

Или напрямую:

py -3 -m PyInstaller --noconfirm --clean SQL_Quest.spec

Сборка релиза

Для подготовки раздаваемой папки release и архива SQL_Quest_release.zip:

build_release.bat

Структура проекта

  • app/gui.py — desktop UI
  • app/main.py — CLI и служебные команды
  • app/task_bank.py — банк задач и эталонных SQL
  • app/validator.py — логика проверки
  • app/progress.py — локальное сохранение прогресса
  • data/schema.sql — схема SQLite
  • data/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

Как работает проверка

  1. Принимаются только SELECT и WITH запросы.
  2. Проверяется наличие обязательных SQL-конструкций для задачи.
  3. Пользовательский запрос выполняется на локальной SQLite-базе.
  4. Эталонный запрос выполняется на той же базе.
  5. Результаты сравниваются по структуре и содержимому.
  6. В тренировочном режиме показываются подсказки из пула решения.

Статус проекта

Текущий релиз: 1.0.0

Проект уже пригоден для локального обучения и публикации на GitHub. Следующий естественный шаг — добавить скриншоты интерфейса, иконку приложения и версионированные GitHub Releases.

About

SQL trainer desktop app for QA engineers with 40 tasks, SQLite dataset, validation engine, practice mode and exam mode.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors