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

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


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
23318 NULL NULL 157 274 София Глебовна Давыдова False
23317 NULL NULL 157 162 Григорий Савельевич Чистяков True
23316 NULL NULL 157 161 Полина Степановна Губанова True
23315 NULL NULL 157 160 Тимур Всеволодович Степанов 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.

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

Затем система отправляет zip-архив на электронную почту для тайного голосования. Таким образом счетная комиссия может отслеживать ход голосования, количество проголосовавших должно совпадать с количеством zip-архивов, полученных на эл.почту для голосования, но при этом не может получить промежуточные итоги голосования, так как zip-архив защищен паролем. Данная процедура позволяет защитить результаты голосования от подмены.

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