You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
4.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Начало работы
## Быстрый старт 🚀
Для работы приложения необходима версия 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) наличия правильного ответа среди вариантов ответа можно проверить