LabTester — десктопное приложение для проверки и анализа лабораторных работ. В составе: QML-интерфейс, локальная SQLite, опциональный удаленный воркер и синхронизация с сервером.
- учет студентов, лабораторных, работ и результатов
- локальный запуск тестов (C++/GTest) или выполнение через удаленный воркер
- синхронизация работ с сервером
- скрипты сборки Windows-установщика
- примерные лабораторные и test_samples (лаб. 1-4)
- qml/ - QML интерфейс
- src/ - код приложения
- labs/ - шаблоны и тесты лабораторных
- test_samples/ - примеры студенческих работ
- server-worker/ - сборка Linux-воркера
- scripts/ - скрипты сборки
- installer/ - Inno Setup сценарий
- Qt 6.x (MSVC 2022 64-bit)
- CMake, Ninja, MSVC toolchain
- PostgreSQL runtime (libpq.dll) для QPSQL
- Inno Setup 6 (для установщика)
scripts/build_run.ps1 -Configuration DebugRelease сборка без запуска:
scripts/build_run.ps1 -Configuration Release -Clean -NoRunЕсли вы хотите запускать тесты на удаленном сервере (изолированно), вам понадобится развернуть LabTesterWorker.
- Сервер: Потребуется Linux-машина (например, Ubuntu 22.04). Подробные инструкции по сборке и развертыванию воркера читайте в server-worker/README.md.
- Токен: При запуске воркера (в скрипте
run-worker.shили в.envфайле) задается переменнаяLABTESTER_TOKEN. Придумайте надежный пароль/токен.
В десктопном приложении не зашито никаких адресов или токенов — всё настраивается через пользовательский интерфейс!
- Откройте вкладку Settings в приложении.
- В поле Endpoint укажите URL вашего воркера, например:
http://81.161.118.227:20000 - В поле Token укажите тот самый
LABTESTER_TOKEN, который вы задали на сервере. - Значения сохраняются локально на вашем компьютере.
Endpoint и токен берутся из Settings. Для истории синхронизации через облачную БД нужны переменные окружения:
- LABTESTER_CLOUD_HOST
- LABTESTER_CLOUD_PORT
- LABTESTER_CLOUD_DB
- LABTESTER_CLOUD_USER
- LABTESTER_CLOUD_PASSWORD
См. server-worker/README.md для сборки и развертывания.
scripts/build_installer.ps1 -Configuration Release -AppVersion 0.2vГотовый инсталлятор появится в dist/.