Тесты и голосования. Пояснения к разделу

Схема взаимодействия сущностей теста

TestFile 

Тест.
Сущность содержит в себе все настройки. Данная сущность так же является наследником сущности файла. Это позволяет применять к ней операции, доступные другим файлам: перемещать между папками, прикреплять к мероприятию.

Поля сущности:

  • id — уникальный идентификатор теста;

  • userId — ID пользователя, которому данный тест принадлежит;

  • name — название теста;

  • assessType — тип оценки результатов. Может быть:
    - pointsSum — по количеству баллов;
    - answerCount — по количеству правильных ответов;

  • minPoints — минимальное количество баллов, необходимое для успешного прохождения теста.
    Не обязательное поле. Значение по умолчанию: 0;

  • minAnswers — минимальное количество правильных ответов, необходимое для успешного прохождения теста.
    Необязательное поле. Значение по умолчанию: 0;

  • duration — заявленная длительность теста в секундах. Используется для тестирования в режиме реального времени.
    Необязательное поле. Значение по умолчанию: 0;

  • questions — список вопросов теста.

TestQuestion

Вопрос теста.
Поля сущности:

  • id — ID записи в БД. Уникальный идентификатор сущности;

  • questionData — текст вопроса. Обязательное поле;

  • questionImage —  изображение. Если в вопросе используется изображение, в этом поле находится массив данных для изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;

  • allowCustomAnswer — свободный ответ. Флаг определяющие наличие или отсутствие в вопросе свободного ответа. Значение по умолчанию: false;

  • maxPointsAnswers — максимальное возможное количество ответов с баллами, доступное в данном вопросе.
    Имеет смысл только в случае, если возможно выбрать одновременно несколько ответов. Значение по умолчанию: 1;

  • order — порядковый номер вопроса в списке;

  • answers — список ответов на данный вопрос.

TestQuestionAnswer

Ответ на вопрос теста.
Поля сущности:

  • id — уникальный идентификатор ответа;

  • answerData — текст ответа на вопрос;

  • answerImage — Если ответом на вопрос является изображение, то в этом поле находится массив с данными изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;

  • isCorrect — флаг, отвечающий за правильность ответа. Не обязательное поле. Значение по умолчанию: false;

  • points — количество баллов, получаемое за выбор данного ответа. Необязательное поле. По умолчанию - 0;

  • order — порядковый номер ответа в списке.

TestSession

Результаты проведенного теста или голосования.
Всякий раз, когда запускается тест, создается сущность TestSession, где формируются данные об ответах.
Каждая TestSession связана с мероприятием — EventSession — в котором была проведена.

Поля сущности:

  • id — уникальный идентификатор проведения теста/голосования;

  • eventSessionId — уникальный идентификатор вебинара (eventSession), в котором проводился тест;

  • startTime — время старта TestSession.
    Формат: YYYY-MM-DD HH:MM;SS;

  • endTime — время завершения TestSession.
    Формат: YYYY-MM-DD HH:MM;SS;

  • isComplexResultsShared — флаг, отвечающий за то, разрешено ли участникам тестирования получить сводные результаты теста;

  • isIndividualResultsShared — флаг, отвечающий за то, разрешено ли участникам тестирования получить индивидуальные результаты теста. Используется при тестировании в рамках мероприятия.

UserTestPassing

Результаты прохождения теста участника.

Поля сущности:

  • id — уникальный идентификатор результата;

  • questionCount — количество вопросов теста;

  • minPointsToPass — минимальное количество баллов, необходимое участнику для успешного прохождения тестирования;

  • minCorrectAnswersToPass — минимальное количество правильных ответов, необходимое участнику для успешного прохождения тестирования;

  • startTime — дата/время начала прохождения тестирования;

  • endTime — дата/время окончания прохождения тестирования;

  • isTestPassed — итог теста. Флаг показывает набрал ли участник нужное количество баллов/правильных ответов;

  • answerCount — количество ответов, данных участником;

  • pointsSum — сумма баллов, набранная участником;

  • correctAnswerCount — количество вопросов, на которые был дан правильный ответ. Правильный ответ на вопрос подразумевает, что пользователь выбрал все ответы, которые отмечены как правильные в вопросе;

  • testSessionId — ID TestSession, в рамках которой участник проходил тестирование;

  • userId — ID участника, который проходил тестирование;

  • eventSessionId — ID мероприятия (EventSession), в рамках которого было проведено тестирование.

UserTestQuestionAnswer

Один ответ участника на один вопрос теста.
Параметры:

  • id — уникальный идентификатор ответа участника;

  • questionData — текст вопроса;

  • questionImage — изображение вопроса. Если вопрос был с изображением, то в этом поле находиться массив с данными изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;

  • answerData — текст ответа;

  • answerImage  — изображение ответа. Если в качестве ответа было выбрано изображение, то в этом поле находиться массив с данными изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;

  • isCorrect — итог теста. Флаг показывает набрал ли участник нужное количество баллов/правильных ответов;

  • answerPoints — количество баллов за ответ;

  • isCustomAnswerSubmitted — флаг, показывающий, что ответ, данный участником является свободным, а не выбранным из предложенных;

  • isCustomAnswerAssessed — флаг, показывающий, что свободный ответ был оценен ведущим и ответу проставлены значения isCorrect и/или answerPoints;

  • userId — ID участника, который дал ответ;

  • userTestPassingId — ID сущности UserTestPassing, в рамках которой пользователем был дан ответ.


👆 На этом пока всё