Инструменты пользователя

Инструменты сайта


golos3

Описание процедуры тайного голосования с точки зрения участника собрания в дистанционном режиме

Сотрудник авторизуется в системе «Литера», используя свои учётные данные. Затем он выбирает раздел «Собрание научных сотрудников» или «Общее собрание трудового коллектива».

На открывшейся странице для голосования сотрудник выбирает опцию «За» или «Против» для каждой из предложенных кандидатур 1).

После того как сотрудник нажмёт кнопку «Голосовать», результаты голосования будут сохранены в базе данных без указания личных данных. На экране сотрудника появится сообщение «Вы проголосовали».

Схема хранения результатов тайного голосования в базе данных

Для хранения результатов тайного голосования в базе данных, являющейся частью информационной системы «Литера» используются две таблицы. Далее эти таблицы будут описаны под условными наименованиями «Таблица А» и «Таблица Б».

Таблица А используется как для реализации открытого голосования, так и для тайного голосования. В случае тайного голосования Таблица А используется только для сохранения реестра пользователей, которые приняли участие в тайном голосовании.

Ниже приведен образец набора данных в этой таблице (имена пользователей в таблице - вымышленные).

Таблица А

id vote answer_id question_id user first_name last_name voted_mark
23326 NULL NULL 157 493 Михаил Вячеславович Панов False
23325 NULL NULL 157 182 Арина Кирилловна Петрова True
23324 NULL NULL 157 171 Иван Артёмович Кириллов True
23323 NULL NULL 157 170 Елизавета Ярославовна Кузнецова True
23322 NULL NULL 157 169 Мирон Романович Агафонов False
23321 NULL NULL 157 168 Вера Игоревна Козлова True
23320 NULL NULL 157 167 Вера Платоновна Назарова True
23319 NULL NULL 157 164 Юрий Викторович Анисимов True

В поле «user» Таблицы А сохраняется уникальный идентификатор пользователя. В поле «voted_mark» указывается, участвовал ли пользователь в голосовании (значение «True») или нет (значение «False»).

Если голосование тайное, то в поля «vote» и «answer_id» записывается значение NULL («нет данных»). В случае открытого голосования эти поля содержат ответы на вопросы каждого участника голосования.

Перед каждым новым голосованием для каждого вопроса в Таблицу А вносятся записи с идентификатором вопроса («question_id») идентификаторами пользователя («user»), их именами («first_name», «last_name»). В поле «voted_mark» записывается значение «False». По мере участия пользователя в голосовании значение полей заполняются соответствующими значениями.

Обезличенные «голоса» пользователей сохраняются Таблице Б.

Таблица Б

id dateVote result question_id
12131 2024-10-31 13:40:38.155742+03 0 157
12129 2024-10-31 13:36:47.858649+03 0 157
12127 2024-10-31 13:01:17.458319+03 0 157
12125 2024-10-31 12:43:20.59608+03 1 157
12123 2024-10-31 12:41:31.056729+03 0 157
12121 2024-10-31 11:49:10.364728+03 0 157
12119 2024-10-31 11:24:07.170214+03 0 157
12117 2024-10-31 11:24:06.353448+03 0 157
12115 2024-10-31 11:22:01.44076+03 0 157
12113 2024-10-31 11:17:41.756055+03 0 157
12111 2024-10-31 11:14:33.098817+03 1 157
12109 2024-10-31 11:14:11.800624+03 0 157

После того как пользователь нажал кнопку «Голосовать» в Таблице Б добавляется новая строка, содержащая:

  • время голосования в поле «dateVote»;
  • результат голосования в поле «result» (1 - «За», 0 - «Против»);
  • идентификатор вопроса («question_id»), по которому получен ответ (результат голосования).

Сохранение времени голосования с точностью до долей секунд необходимо для обеспечения контроля за ходом и результатами голосования со стороны счетной комиссии.

Техническая реализация контроля за ходом и результатами тайного голосования

Нажатие кнопки «Голосовать» приводит к:

  • изменению записи (строки) в Таблице А (значение поля «voted_mark» меняется с «False» на «True»);
  • добавлению записи (строки) в Таблице Б;
  • созданию контрольного файла с промежуточными результатами голосования в формате MS Excel;
  • отправке созданного контрольного файла на специальный адрес электронной почты, доступный только для членов счетной комиссии.

Контрольный файл содержит таблицу с ходом и результатами голосования. Для каждого вопроса ход и результаты голосования сохраняются на отдельном листе. Примеры содержимого листов контрольного файла приведены на рисунках 1 и 2.

Рис. 1. Ход и результаты голосования по кандидату 1.

Рис. 1. Ход и результаты голосования по кандидату 1.
Всего на 07:56:35 проголосовало 11 человек, из которых шесть «за» и пять «против».

Рис. 2. Ход и результаты голосования по кандидату 2.

Рис. 2. Ход и результаты голосования по кандидату 2.
Всего на 07:56:35 проголосовало 11 человек, из которых пять «за» и шесть «против».

Количество заполненных строк по каждому вопросу равно количеству проголосовавших на момент формирования файла.

Так как знание промежуточных результатов тайного голосования прямо в ходе голосования может позволить членам счетной комиссии повлиять на его результаты, то указанные контрольные файлы высылаются в виде зашифрованных zip-архивов. По окончанию голосования пароль для расшифровки zip-файлов сообщается членам счетной комиссии. Так как контрольный файл генерируется после каждого нажатия кнопки «Голосовать», то число контрольных файлов равно количеству сотрудников, принявших участие в голосовании.

Контроль за ходом и результатами тайного голосования

Непосредственно в ходе голосования члены счетной комиссии получают возможность следить за списком проголосовавших и не проголосовавших сотрудников (аналог явочного листа при очном тайном голосовании).

После завершения голосования, счетная комиссия расшифровывает zip-файлы с промежуточными итогами голосования, которые она получала на свою электронную почту после каждого нажатия кнопки «Голосовать» каждым отдельным участником голосования. Анализ хода голосования и сопоставление его с конечными результатами позволяет убедиться, что результаты голосования не менялись в базе данных (в Таблице Б) задним числом.

В случае, если записи в контрольных файлах будут несоответствовать записям в базе данных (записям в Таблице А и Таблице Б), то это будет означать, что произошло вмешательство в ход голосования или технический сбой.

1)
Примечание. На Собрании научных работников, проходившем с 28.10.2024 по 01.11.2024 использовалась форма, в которой можно было поставить только отметку «За» напротив любой, но только одной кандидатуры.
golos3.txt · Последнее изменение: 2024/11/06 15:20 — root_dokuwiki