Шифрование участников. Общее описание

Часто проведение областных олимпиад требует шифрование участников. Это связано с недоверием к системе тестирования. Я решил описать, как это происходило в предыдущие годы (2002 на пример, 2003 - был без шифрования).

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

Каждый участник дает имя файла SSSSccDN.* здесь
  SSSS - код участника в текущем дне
  СС   - идентификатор класса (01 02 03 04 05 06 07 08 09 10 11)
  D    - номер дня
  T    - номер задачи в текущем дне

И в таком виде задачи пакетно отсылаются на систему тестирования. После получения результатов тестирования и построения таблицы результатов (в результатах - коды участников), жюри сообщает системе тестирования соответствие ФИО участника и его кода. В таблице появляются реальные люди.

Руководство администратора DL для проведения олимпиады с шифрованием.

Во время областной олимпиады в 2 тура на самом деле, для каждого участника будет заводится 3 логина:
первый - реальный,
второй - шифрованный участник в 1 день,
третий - шифрованный участник во 2 день

Задачи сдаются от имени второго и третьего логина. После открытия кодов, все результаты от шифрованных участников переходят реальным.

  1. До олимпиады.
    1. Создаем группу официальных участников олимпиады (ручками в таблице Groups или через веб - утилиты преподавателя), id группы понадобится при настройке batch.ini.
    2. У BatchSender-а настраиваем batch.ini (там все описано в комментариях)
    3. Регистрируем официальных участников при помощи BatchSender-а (составляем стандартный список в обычном текстовом файле, см. памятку организатора)
    4. Построение пустых таблиц результатов.
    5. Отдаем жюри excel файл сформированный руками 1 столбец UserID на сайте, 2 столбец ФИО, 3 и 4 столбцы - пустые для кодов участников.
    6. Удаляем все записи из таблицы Codes.
  2. После сбора решений олимпиады.
    1. Отсылка BatchSender-ом решения участников.
    2. Тестируем, убеждаемся что таблицы построены верно.
    3. Печатаем таблицы и несем жюри - хранителю кодов. Жюри отдает нам excel файл с кодами участника.
    4. Ручками (пока, к сожалению) копируем 1, 3 и 4 столбцы в таблицу Codes
    5. Теперь результаты шифрованных участников надо передать реальным (лучше предварительно забекапить БД)
      UPDATE  TestingLog
      SET     UserID = t.Main
      FROM
          (
          SELECT Pupils.ID AS Slave, Codes.ID AS Main
          FROM   Codes LEFT JOIN Pupils ON (
                                              Last LIKE Codes.Code1+'%'
                                           OR Last LIKE Codes.Code2+'%'
                                           )
          ) t
      
      WHERE UserID = t.Slave
      
    6. Смотрим таблички - кодированные участники должны пропасть (мы у них забрали баллы) а на их месте должны появится реальные участники.
    7. Печатаем таблички.
    8. Убиваем шифрованных пользователей.