Загрузка

Система тестирования. Клиентская часть

Теги: html5, javascript

Вместо вступления

Понимаю, что данный ресурс ориентирован на игровые разработки и вполне возможно, мой проект не будет востребован здесь. Однако, предполагаю, что создатели браузерных игр могут быть заинтересованы в исходном коде, написанном на javascript, в особенности начинающие разработчики. По возможности я старался делать код максимально структурированным, коментируемым и доступным. В первую очередь, это учебный проект, и многое, что было сделано в нём, было сделано мною впервые. Поэтому, если кто-либо заинтересуется им, или захочет воспользоваться моими наработками, я буду рад тому, что моя работа пригодится людям.

Используемые технологии

В проекте на данный момент большую часть занимает клиентская часть. Взаимодействие с сервером обеспечивается только посредством библиотеки Mustache, которая позволяет обратиться к файлу с данными о тестовых задачах методом AJAX и получить информацию из файла в браузер клиента. Кроме этой библиотеки, здесь применяется фреймворк jquery и mediaelementplayer для обеспечения вывода медиа-информации средствами html5.

На данный момент большая часть проекта реализована средствами html + css + javascript. Создано что-то вроде движка для работы с тестовыми задачами (вопросами). В общих система устроена следующим образом. Каждый вопрос принадлежит какому-либо тесту, а тест, в свою очередь, состоит из нескольких вопросов. Вопрос может быть четырёх различных типов:

  1. на выбор ответа
  2. на ввод ответа
  3. на упорядочивание ответов
  4. на сопоставление ответов

При этом каждому вопросу и ответу могут принадлежать изображение, аудиозапись или видеозапись.

Структура

Для организации всех этих возможностей была разработана специальная структура данных.

{
"part_title": "Part1", // Название раздела
"questions": [ // Вопросы
    {
    "question_num": "1", // Номер вопроса (по порядку)
    "question_type": "0", // Тип вопроса (на выбор, на ввод ответа...)
    "question_image": "true", // Наличие изображения
    "question_audio": "true", // Наличие аудио
    "question_video": "true ", // Наличие видео
    "question_text": "simple question text 1", // Текст вопроса (задание)
    "answers": [ // Ответы
        {
        "answer_num": "1", // Номер ответа (по порядку)
        "answer_image": "true", // Наличие изображения
        "answer_audio": "true", // Наличие аудио
        "answer_video": "true", // Наличие видео
        "answer_text": "simple answer 1" // Текст ответа
        }, … ]
    "true_answer": "2", // Правильный ответ
    "question_weight": "7", // Цена вопроса
    "question_info": "Information" // Комментарий
    },
... ]}   

На данный момент данные о вопросах хранятся в файле формата json, откуда загружаются в систему тестирования посредством библиотеки Mustache.

Подобная структура используется и во внутреннем представлении теста. Каждый вопрос - объект javascript, который хранит в себе перечисленные выше данные, а также имеет методы для работы с ними. Эти методы позволяют выбирать необходимое количество вопросов из общего списка имеющихся, подготавливать вопросы к выводу в разметку и выводить их. С помощью методов организована часть взаимодействия пользователя с тестовыми задачами, проверка на правильность ответа и вывод информациии о допущенных ошибках.

Текущие проблемы и планы на будущее

Поскольку все вычисления производятся на стороне клиента, на данный момент систему нельзя назвать защищённой от пользователя. И это в первую очередь ограничивает практическое применение системы. Поэтому в будущем мною планируется дальнейшее совершенствование собственных знаний в области javascript, а также освоение новых технологий, позволяющих создать серверную часть системы, на которую можно будет перенести вычисления, связанные с проверкой на правильность ответов, а также сохранение результатов проводимых тестов. Предположительно, будут использованы две технологии PHP и ASP.NET, что приведёт к созданию двух версий системы тестирования для различных типов серверов. Но пока это перспективные задачи, подкрепленные собственным интересом к данному проекту и к освоению технологий веб-разработки, и решаться эти задачи будут постепенно. Строгих сроков по их выполнению не устанавливаю, поэтому сказать заранее о будущих обновлениях не могу.

Более подробная документация проекта на данный момент дорабатывается мною в свободное время и по возможности будет опубликована на этом ресурсе. А также в рамках данного блога будут выкладываться все доработки и новые версии системы.


Проект распространяется под лицензией GNU GPL от 10.10.2015г. Ссылку на скачивание текущей версии системы можно найти на основной странице данного блога. По всем вопросам использования проекта обращайтесь ко мне на электронный адрес spectrez@live.ru.

Поделиться
Система тестирования. Клиентская часть
С чего начиналась разработка системы тестирования. Особенности решаемой задачи и примененные технологии. Краткое описание структуры данных. Проблемы и перспективы их решения. ...
article
4 Монеты
SpectreZ (4 года назад)

9 комментариев:
SaiLight, уровень 4 (3 года назад):

SpectreZ, рад, что твоя работа кому-то пригодилась. Чуть позже добавлю в статью обновление.

joven, уровень 1 (3 года назад):

Спасибо, SpectreZ!Попробую использовать на практике :) Как будет результат отпишусь.

SpectreZ, уровень 2 (3 года назад):

Здравствуйте, joven. В результате переработки сайта, некоторая информация видимо утратилась, в том числе и моя ссылка.

Я перезалил файл сюда.

SaiLight, отредактируй пожалуйста последний абзац, добавь эту ссылку в статью.

joven, уровень 1 (3 года назад):

Добрый день! Так и не нашел ссылки для скачивания.. Не подскажите где она?

SpectreZ, уровень 2 (3 года назад):

Да, CTAP4E, если будут находиться ошибки, напишите о них.
Спасибо за информацию!

CTAP4E, уровень 1 (3 года назад):

Здесь можно сообщать о багах?))) Разбирался в скрипте. Заметил, что если выбрать сначала первый вариант тестирования пройти и тут же выбрать второй, то неправильно подгружаются вопросы. Все сбито и картинки налезают друг на друга.

SpectreZ, уровень 2 (4 года назад):

Практическое применение исходного кода системы возможно уже сейчас, так как на данный момент готова клиентская часть приложения. Вся клиентская часть разработана на html5 и javascript. На сколько мне известно, при разработке браузерных игр эти технологии активно применяются.

Как я уже писал ранее, на этом проекте я учился работать с javascript и его можно назвать моим первым крупным веб-приложением. По ходу его создания было не мало сложностей, связанных с проектированием правильной структуры, позволяющей задействовать объектно-ориентированный подход, а также сложности возникали при взаимодействии со сторонними библиотеками, такими как mediaelementplayer.

На первый взгляд, это несложная в применении библиотека, но для начинающего разработчика, не имевшего ранее дела с javascript понять принцип её использования не так просто. Поэтому я предполагаю, что методы, использованные мною и описанные в исходном коде системы тестирования могут быть полезны и для игровых проектов.

CTAP4E, уровень 1 (4 года назад):

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

SaiLight, уровень 4 (4 года назад):

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

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

Войти