|
|
# Начало работы
|
|
|
|
|
|
|
|
|
## Быстрый старт 🚀
|
|
|
|
|
|
Для работы приложения необходима версия Python не ниже `3.8`
|
|
|
|
|
|
### Запуск
|
|
|
|
|
|
Запустите файл `run.cmd` и интерфейс тестирования будет доступен по адресу `localhost:8000`
|
|
|
|
|
|
Для доступа к тесту с других компьютеров используйте строку `Тест работает по адресу ...` на стартовой странице теста
|
|
|
|
|
|
### Редактирование
|
|
|
|
|
|
Для изменения вопросов редактируйте файл `questions.json`, для изменения списка студентов редактируйте файл `students.json`
|
|
|
|
|
|
После изменений перезапустите файл `run.cmd`
|
|
|
|
|
|
|
|
|
## Ручное управление 🎡
|
|
|
|
|
|
### Установка
|
|
|
|
|
|
Для работы приложения необходима версия Python не ниже `3.8`
|
|
|
|
|
|
Для установки зависимостей в PowerShell из папки с системой выполнить
|
|
|
|
|
|
```PowerShell
|
|
|
pip install -r requirements.txt
|
|
|
```
|
|
|
|
|
|
### Запуск
|
|
|
|
|
|
В PowerShell выполнить скрипт запуска системы
|
|
|
|
|
|
> Необходимо находиться в папке со скриптом, при необходимости перейти туда командой `cd`
|
|
|
|
|
|
```PowerShell
|
|
|
python run.py
|
|
|
```
|
|
|
|
|
|
Должны увидеть в PowerShell текст, заканчивающийся следующим
|
|
|
|
|
|
```PowerShell
|
|
|
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
|
|
|
```
|
|
|
|
|
|
> Из этого текста запоминаем порт — это число после двоеточия, в данном случае `8000`
|
|
|
|
|
|
На головном компьютере интерфейс будет доступен по адресу `localhost:8000`
|
|
|
|
|
|
|
|
|
Для корректного запуска теста на остальных компьютерах локальной сети необходимо узнать IP-адрес головного компьютера в локальной сети с помощью PowerShell
|
|
|
|
|
|
```PowerShell
|
|
|
Get-NetIPAddress
|
|
|
# (Get-NetIPAddress | Where-Object {$_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00"}).IPAddress # не тестировал
|
|
|
|
|
|
IPAddress : 123.32.43.54
|
|
|
InterfaceIndex : 27
|
|
|
InterfaceAlias : Подключение по локальной сети* 1
|
|
|
AddressFamily : IPv4
|
|
|
Type : Unicast
|
|
|
PrefixLength : 16
|
|
|
PrefixOrigin : WellKnown
|
|
|
SuffixOrigin : Link
|
|
|
AddressState : Tentative
|
|
|
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
|
|
|
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
|
|
|
SkipAsSource : False
|
|
|
PolicyStore : ActiveStore
|
|
|
```
|
|
|
|
|
|
|
|
|
В файле `gui/main.js` заменить все `localhost` на полученный ip-адрес, например, `123.32.43.54`, чтобы все запросы выполнялись к головному компьютеру
|
|
|
|
|
|
|
|
|
### Доступ к тесту
|
|
|
|
|
|
Для доступа к тесту с компьютера в локальной сети перейти по URL такого вида `ip-адрес:порт`, например, `123.32.43.54:8000`
|
|
|
|
|
|
|
|
|
## Возможные проблемы 🔧
|
|
|
|
|
|
### Не открывается страница в браузере
|
|
|
|
|
|
В консоли, которая отвечает за запуск приложения, (окно, которое открылось после запуска файла `run.cmd`) должно быть выведено сообщение об ошибке
|
|
|
|
|
|
В случае, если приложение не запустилось из-за ошибки синтаксиса в JSON-файлах `questions.json` или `students.json`, то в последней строке сообщения об ошибке будет указано, что именно в этих файлах не так, например, `json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 18 column 9 (char 523)`
|
|
|
|
|
|
В случае, если приложение не запустилось из-за отсутсвия обязательных полей в JSON-файлах `questions.json` или `students.json`, то в последней строке сообщения об ошибке будет указано, что именно в этих файлах не так, например, `KeyError: 'answer'`
|
|
|
|
|
|
### Проверка корректности вопросов
|
|
|
|
|
|
Корректность вопросов на предмет 1) уникальности идентификаторов, 2) наличия правильного ответа среди вариантов ответа можно проверить |