АННОТАЦИЯ

В данном программном документе приведено руководство системного программиста по установке и настройке WEB-интерфейса предоставляющего возможность ввода данных о результатах измерения прибора КЛОП-МН в систему хранения и обработки результатов измерений.

Структура программы

Структура WEB-интерфейса повторяет структуру сервера webrobo.mgul.ac.ru Программа включает в себя модули обработки приема HTTP-запросов и парсинга их содержимого, а также WEB-страницу, состоящую из HTML файла, файлов скрипта и стилей для него, а также конфигурационного файла, содержащего наборы мест измерений.

В корневой директории проекта расположены запускающий файл «serv.js», а также файлы, содержащие информацию о проекте и об используемых модулях. В директории «/node_modules» хранятся сами модули.

По пути «/public/klop_in» находятся статические файлы страницы отправки записей в базу «index.html», «style.css», «script.js», файл с группами точек «places.json» и файл конфигурации «settings.json»

По пути «/public/klop_in/places» находятся статические файлы страницы редактирования списка групп точек «index.html», «style.css», «script.js»

В директории «/routes» лежит скрипт «klop_api.js», отвечающий за пересылку данных на сервер с базой данных.

Настройка программы

Подготовка к размещению программы

Обновите базу пакетов

$ apt-get update

Установите необходимый для работы пакет node.js

$ apt-get install nodejs

Теперь сервер готов к размещению программы.

Размещение программы

Поместите архив с проектом в выбранную вами директорию. В данном примере используем удаленное подключение по SSH.

$ scp d:/klop_in.zip nozemiso@webrobo.mgul.ac.ru:/home/nozemiso

Распакуйте архив с программой

unzip klop_in.zip

Удалите скачанный архив

rm klop_in.zip

Теперь программа готова к дальнейшей настройке, корневой директорией проекта является «/home/nozemiso/klop_in»

Настройка списков мест проведения измерений

Файл со списком мест (/public/klop_in/places.json) имеет следующую структуру.

{
"ИМЯ_НАБОРА_МЕСТ_1": ["ИМЯ_МЕСТА_1", "ИМЯ_МЕСТА_2", ..., "ИМЯ_МЕСТА_N"],
"ИМЯ_НАБОРА_МЕСТ_2": ["ИМЯ_МЕСТА_1", "ИМЯ_МЕСТА_2", ..., "ИМЯ_МЕСТА_N"],
...
"ИМЯ_НАБОРА_МЕСТ_N": ["ИМЯ_МЕСТА_1", "ИМЯ_МЕСТА_2", ..., "ИМЯ_МЕСТА_N"]
}

Пример: файл списка мест, с сервера webrobo

{
"МГУЛ 1 этаж": ["4", "30", "43", "Акт. зал", "65", "Буфет", "103"],
"МГУЛ 2 этаж": ["270", "261", "251", "242", "233", "222", "204"],
"МГУЛ 3 этаж": ["303", "319", "334", "344", "356", "365", "374"],
"МГУЛ 4 этаж": ["476", "463", "449", "440", "432", "419", "404"],
"МГУЛ 5 этаж": ["505", "520", "532", "540", "558", "570", "579"]
}

Чтобы создать новый набор мест следует добавить в файл строку соответствующего формата. Также можно использовать готовую форму для ввода новых групп точек после окончания настройки программы. Всю информацию вы найдете в пункте документации «Руководство пользователя»

Настройка и запуск сервера

Чтобы запустить WEB-сервер введите следующую команду, находясь в корневой директории проекта.

- Создаем файл конфигурации

touch /etc/systemd/system/klop_in-application.service

- Вносим содержимое и сохраняем

[Service]
WorkingDirectory=ПУТЬ_К_КОРНЕВОЙ_ДИРЕКТОРИИ_ПРОЕКТА
ExecStart=ПУТЬ_К_ФАЙЛУ_SERV_JS
Restart=on-failure
[Install]
WantedBy=multi-user.target

node serv.js &

По умолчанию программа будет прослушивать 3000 порт. Чтобы это изменить в файле serv.js измените строку 11. При изменении порта на 80 эта строка примет следующий вид:

const PORT = process.env.PORT || 80;

Настройка работы программы

Для того чтобы дать доступ к редактированию групп точек определенного круга лиц, предусмотрены api-ключи, который вы можете изменять самостояльно. Чтобы установить связь между человеком и ключом рекомендуеся использовать ключ, содержащий в себе указание на человека или организацию, например, имя_фамилия_ключ.

Редактирование api-ключей производится путем редактирования файла public/klop_in/settings.json

Пример файла settings.json

{
"keys" : ["NeKKxx1", "key1", "key2"],
"delayedSending" : true
}

Рассмотрим функционал используемых полей:

Поле «keys» представляет собой список ключей, используя которые пользователь может редактировать список групп точек. Для добавления нового ключа внесите его в список поле keys. Для удаления - удалите ключ из поля.

Пример - измененный файл settings.json, удален ключ «key2», добавлен ключ «NewKey»

{
"keys" : ["NeKKxx1", "key2", "NewKey"],
"delayedSending" : true
}

Поле «delayedSending» отвечает за режим отправки записей. Если поле установлено в true, записи отправляются в базу раз в секунду. Если поле установлено в false - задержки при отправке записей не происходит.

Проверка программы

Для проверки программы рекомендуется ввести в интерфейс какие-либо данные, а в поле Api key ввести ключ «NeKKxx1». Данный ключ связан с тестовым устройством «TEST». В случае успешного формирования и выполнения запросов вы увидите сообщение об успешной отправке строк в базу. Затем перейдите по ссылке «Просмотр базы данных» и убедитесь в наличии тестовой записи и соответствии данных в ней введенным вами данным. Для проверки работы формы редактирования ключей рекомендуется ввести в поле Api key ввести ключ «NeKKxx1», данный ключ дает доступ на редактирование набора групп точек.

В поле Действие выбрать «добавить»

В поле Название группы ввести Test

В поле Кол-во точек ввести 2

В поле название точек, точки назвать соответственно test1, test2

При успешном добавлении группы точек, появится сообщение «Группа Test успешно добавлена»

Сообщения системному программисту

При успешном запуске программы в консоли будет выведено сообщение:
«Server is running on port НОМЕР_ПОРТА»