Добро пожаловать на страницу проекта TestMaker.

Однажды мне потребовалось предоставить каждому своему ученику свой личный вариант для контрольной.
Так как делать их руками мне показалось слишком утомительным, я решил написать для этого программу.

Текущая версия: . Архив версий находится здесь.

Онлайн версия программы находится здесь.

Системные требования:
Браузеры IE 6.0+, FF 2.0+, Safari 3.0+, Opera 9.0+, Chrome.
Программа написана на JavaScript с приминением библиотеки jQuery.
Для установки достаточно разархивировать архив с программой и открыть файл index.html в вашем любимом браузере, нажав по нему два раза мышкой.

Об ошибках следует писать на мою рабочую почту - haoogame@gmail.com.
Пожалуйста, указывайте в письме свою операционную систему и свой браузер.

Я благодарю команду проектов jQuery и jQueryUI за прекрасные технологии, которые они подарили миру.
ddsh, 2011.

На каких условиях распространяется программа?
Программа распространяется в соответствии с GNU GPL 3, что автоматически означает:
  • Вы можете устанавливать программу;
  • Вы можете использовать программу;
  • Вы можете изучать программу;
  • Вы можете получить доступ к исходным кодам программы;
  • Эта программа распространяется в надежде, что она будет полезной, но БЕЗ ВСЯКИХ ГАРАНТИЙ, в том числе подразумеваемых.
Полный текст лицензии доступен здесь, его русский перевод - здесь.

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

Где программа хранит свои данные?
Программа хранит свои данные там, куда файл с данными положит пользователь. Самостоятельно работать с файлами или папками программа не умеет. Сервера у неё тоже нет. Никакие данные за пределы окна программы не пересылаются.

Как можно управлять текстом вопросов?
Программа умеет работать с языком разметки HTML. Например, чтобы сделать вопрос с возможностью выбора ответов, следует написать так:
Тест вопроса с ответами<br />
<ol>
<li>Первый ответ</li>
</ol>
						
Тогда вопрос будет отображаться так:

Тест вопроса с ответами

  1. Первый ответ

Более подробно о языке HTML можно почитать на сайте http://htmlbook.ru, про создание списков - здесь.
При расставлении тегов старайтесь использовать только те теги, которые входят в официальный стандарт HTML/XHTML.

Когда выйдет новая версия?
Новые версии выходят тогда, когда они готовы. Я стараюсь исправить большинство известных мне ошибок при выпуске новой версии.

Каковы пределы возможностей программы?
Я проверял программу на базе в тысячу вопросов; на практике составления реальной контрольной - 270. Работает. Пример небольшой базы вопросов можно скачать здесь.

Почему так сложно реализована работа с сохранением/загрузкой данных?
Одно из главных условий написания программы - у неё не должно быть серверной части, она не должна требовать особенно мощных и современных компьютеров и не должна быть критичной к операционной системе пользователя. К сожалению, с такими ограничениями я не знаю технологии, которые бы позволили работать с файлами через JavaScript.

С помощью каких программ следует работать с сохранением и загрузкой данных?
Сохранять лучше всего с помощью программы Блокнот, если вы используете Windows, и TextEdit, если вы - гордый пользователь MacOS X. Программа ожидает, что вы будете использовать Юникод при сохранении.

Что можно поменять на странице теста?
На станице теста можно поменять местоположение любой из 3-х таблиц (и строчки с вариантом), плюс таблицы можно изменить в размерах. Пока данная возможность является экспериментальной, так как она усложняет процесс распечатывания готового варианта.

Почему в режиме контрольной по именам в таблице с данными ученика не показывается графа "Отчество"?
Графа "Отчество" автоматически скрывается в том случае, если вы не заполнили соответствующую графу в данных ученика.

Будет ли возможность импорта данных из/в Excel, SchoolOffice?
TestMaker - первая программа из проекта Открытый Лицей. Проект Открытый Лицей будет содержать в себе TestMaker, программу автоматического тестирования / проверки домашнего задания, электронную приёмную комиссию и электронный журнал. В рамках проекта Открытый Лицей импорт/экспорт реализован, разумеется, будет. Но я не могу назвать вам сроков. В рамках программы TestMaker я не могу реализовать эти функции из-за технических ограничений, про которые я писал выше.

Версия 0.1.2.2

  1. Плавающая ошибка: Невозможно сохранить список тем при большом количестве изменений списка тем с помощью кнопки "Установить тему".
Версия 0.1.2
  1. Плавающая ошибка: Невозможно сохранить список вопросов при большом количестве тем (более 10) и большом количестве вопросов (более 200) в версии 0.1.2.
    Исправлено в версии 0.1.2.1.
Версия 0.1.1
  1. Некорректная работа опции "Варианты будут введены мной", если использовать её после опции "Без указания вариантов".
    Решено в версии 0.1.2.
  2. Кнопка "Добавить" в меню управления тестом может добавить вопросы, которые уже использовались в этом варианте.
  3. Кнопка "Добавить" не добавляет поля в Таблицу проверяющего.
    Решено в версии 0.1.2
Версия 0.1:
  1. Дублирование тем при загрузке списка вопросов.
    Решено в версии 0.1.1.

0.1.2.2 - 15/11/2011
Ввод математических формул;
0.1.2.1 - 14/11/2011
Исправлены некоторые ошибки;
Добавлена колонка "Число вопросов в этой теме";
Название темы привязано к галочке выбора в списке вопросов.
Запустить онлайн. Скачать архив.
0.1.2 - 08/11/2011
Добавлена возможность изменять интерфейс готового теста;
Теперь меню управления тестом появляется после печати при нажатии в любое место теста, а не через 5 секунд после нажатия кнопки "Распечатать".
Запустить онлайн. Скачать архив.
0.1.1 - 07/11/2011
Добавлена возможность просмотреть список вопросов для каждой темы;
Добавлена возможность просмотреть список вопросов, упорядоченный по темам;
Многочисленные мелкие изменения интерфейса.
Запустить онлайн. Скачать архив.
0.1 - 07/11/2011
Первая стабильная версия.
Запустить онлайн. Скачать архив.
Что я хочу сделать дальше:
Список вещей, которые появятся в следующей версии, выделен жирным. Список реализованого:

Процесс установки:

Для того, чтобы установить программу, вам необходимо скачать себе архив с нужной версией (файл вида VERSION.rar, где VERSION - номер версии), и разархивировать на жесткий диск. Программа запускается двойным нажатием на файл VERSION\index.html. При желании, на данный файл можно создать ярлык.

Процесс удаления:

Для удаления программы достаточно удалить папку с программой, и, если необходимо, ярлыки на файл VERSION\index.html, где VERSION - номер версии.

Установка нескольких версий:

Для установки нескольких версий на один компьютер необходимо расположить их в разных папках. Например, на компьютерах лицея №1586 программа хранится в папках "C:\Program Files\TestMaker\VERSION", где VERSION - номер версии.

Рекомендуемые системные требования:

Браузеры FireFox 3.0+, Safari 3.0+, Opera 10.0+, Chrome 14+.
Работа в браузере Internet Explorer не гарантируется вне зависимости от версии.

Значение версий программы:

Версия программы читается так: 0.Большое изменение.Среднее изменение.Малое изменение[.dev].
Версия разработчика обозначается как .dev в самом конце номера версии. Скачать такие версии с обычного сайта нельзя.
На странице онлайн версии программы чаще всего установлена именно версия разработчика.

Описание режимов работы:

Программа имеет два режима работы: когда она создаёт конкретные - именные - варианты, и когда она создаёт просто необходимое количество вариантов.

Режим создания нужного количества вариантов:

В этом режиме вы можете настроить метод, которым программа будет расставлять номера вариантов:

  1. Случайно (от минимального до максимального);
  2. По порядку (от начального значения с некоторым шагом);
  3. Программа доверит расстановку вариантов вам;
  4. Программа не будет обозначать варианты.

Режим создания именных работ:

В этом режиме вам будет необходимо указать список учеников, для которых нужно создать варианты.
В этом режиме программа не будет указывать варианты, но вы всегда сможете это сделать сами (Например, написать лучшему ученику в классе над списком работ фразу "Вариант для того, кто может его решить:").

Сохранение и загрузка информации в программу:

Для сохранения данных программы на жёстком диске требуется нажать по кнопке "Сохранить список". Программа вам выдаст некоторый код, который нужно сохранить в текстовом файле на вашем компьютере. Для сохранения не рекомендуется использовать офисные системы. Лучше всего использовать программу Блокнот.

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

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

Стандарт, по которому программа хранит свои данные, описан на странице документации для программиста.

Формат, в котором система хранит данные.
Версия 1, копию можно найти в файле js/engine/dataLoading.js.
/*
 * Общее описание стандарта хранения данных:
 * <root>	<- обязательный корневой элемент, без него jQuery отказывается обрабатывать несколько списков сразу.
 * 	<list>	<- элемент, открывающий конкретный список.
 * 		<apiversion>1</apiversion>	<- элемент, указывающий версию стандарта для данного списка.
 * 		<type>students,threads,questions</type>	<- тип списка, что загружаем. Одно из трёх.
 * 		<students>	<- контейнер для списка учеников, если TYPE == students
 * 			<student>
 *				<name>Имя</name>
 *				<surname>Фамилия</surname>
 *				<patr>Отчество</patr>
 *				<grade>Класс</grade>
 *				<group>Группа</group>
 *			</student>
 * 		</students>
 * 		<threads>		<- контейнер для списка тем, если TYPE == threads
 * 			<thread>
 * 				<term>Условие</term>
 *				<min>Минимум вопросов</min>
 *			</thread>
 * 		</threads>
 * 		<questions>	<- контейнер для списка вопросов, если TYPE == questions
 * 			<question>
 * 				<threadterm></threadterm>		<- Название темы
 * 				<threadmin></threadmin>			<- Минимум вопросов темы
 * 				<qtext></qtext>					<- Условие вопроса
 * 			</question>
 * 		</questions>
 * 	</list>
 * </root>
 */