|
|
• Содержание •
3 Основы и понимание "Эрудита"
4.1 Права пользователей и уровни доступа
4.2 Пользователь и Блокированный
4.3 Модератор
4.4 Администратор
5.2 Исправление ошибок таблиц БД
• Конец содержания •
1 Вступление
Мы представляем вам новую Интернет - ориентированную систему тестирования. Она предназначена для автоматизации процесса тестирования учеников ВУЗов, школ и т. п. Функции программы «Эрудит» позволяют установить программу только на сервере учебного заведения и собирать результаты тестирования со всех компьютеров в сети. Современная гибкая основа позволяет конфигурировать программу по Вашему желанию. Для преподавателя результаты тестирования предоставляются в двух видах – как статистика группы учеников и как статистика конкретного пользователя. Для каждого пользователя результаты представлены в таблице, которая на время проведения теста может быть блокирована по желанию преподавателя.
Программа создана для работы на сервере и должна быть установлена на общедоступном в локальной сети учереждения компьютере с работающим с PHP и MySQL серверным обеспечением (IIS или Apache). После того, как Вы разархивируете программу в каталог wwwroot сервера необходимо добавить новый хост, соответствующий адресу программы и, запустив проводник, перейти по интернет адресу программы (например http://erudite.inst.ru или http://inst.ru/tests). В окне проводника Вы увидите мастер установки программы на двух языках. Щёлкните «Далее» для того, чтобы приступить к установке, мастер Вас проинструктирует, что делать дальше. Помните, если сервер MySQL установлен на той же машине что и «Эрудит», то Вы можете оставить «localhost» в поле «MySQL Host».
3 Основы и понимание "Эрудита"
Что такое "Эрудит"? Это программа автоматического тестирования в процессе обучения.
Что она может делать? Она может хранить тесты, предоставлять их пользователю для решения, собирать и хранить результаты, показывать результаты пользователям.
Как я могу её использовать? Вы можете проводить экзамены в тестовой форме в Вашем учебном заведении с использованием программы "Эрудит", она позволит Вам быстро получить безошибочные результаты.
Может эта программа обучать? Нет, извините, но программа предназначена для проверки знаний с помощью экзаменационных тестов.
Может эта программа проводить анкетирование? Вообще-то нет. Но если Ваша анкета будет содержать только заранее определённые варианты, то да. Все дело в том что программа не позволяет вам прочитать текстовый ответ пользователя.
Могу я прочитать ответ пользователя? Нет, это запрещено. Результат содержит только баллы за ответы пользователя, как в любом реальном тесте.
Кто может просматривать мои результаты? Ваши результаты (статистику) может просматривать Администратор, пользователи с правами Модератора (обычно преподаватель или редактор тестов) и Вы.
Что ещё за "права"? Права пользователей программы определены уровнем их доступа, всего уровней 4. В зависимости от уровня доступа у пользователя появляются определённые возможности, они же права. Уровни доступа: Администратор (Главный в программе), Модератор (Преподаватель или редактор тестов), Пользователь (стандартный уровень) и Блокированный пользователь.
Чтобы стать полноценным пользователем программы, Вы должны сначала пройти процедуру регистрации. Зарегистрированные пользователи имеют в программе учётную запись и определённые их уровнем доступа права. Для идентификации пользователя используется процедура Авторизации.
4.1 Права пользователей и уровни доступа
В зависимости от уровня доступа (всего их 4, они перечислены ниже) пользователи получают права на доступ к разным частям программы. Уровень доступа может переопределять только администратор. Модератор может устанавливать любому пользователю уровень доступа "Banned" что соответствует блокировке учётной записи. При регистрации пользователю назначается уровень доступа "User" ("Пользователь"). Старшие уровни доступа наследуют права предыдущих уровней, у Модератора уже есть права пользователя, а у Администратора права Модератора.
4.2 Пользователь и Блокированный
Уровень доступа "Пользователь" позволяет проходить тесты, при просмотре списка тестов отображаются только тесты в области видимости которых указан уровень "Для всех". Пользователь также может обмениваться ЛС, сменить свой пароль, просматривать профиль других пользователей, изменять свой профиль.
"Блокированный" пользователь ("Banned") не может войти в систему, т. к. его учётная запись отключена.
Модератор, он же преподаватель, наследует права пользователя, может блокировать пользователей и редактировать их профиль, блокировать просмотр статистики на время проведения теста (эти возможности могут быть запрещены администратором). Модератор может удалять/создавать тесты и сообщения системы, для него видны тесты и новости с уровнем видимости "Администратор и Модератор". Модератор может просматривать статистику прохождения тестов пользователем и статистику группы пользователей а так же создавать и удалять группы (не пользователей, только сами группы). Модератор не может редактировать профиль Администратора или блокировать его.
Администратор наследует права модератора, кроме того для него отображаются новости и тесты с уровнем видимости "Администратор". Дополнительные возможности Администратора собраны в админцентре, при помощи него Администратор может изменить параметры доступа к серверу MySQL, удалить или отредактировать любого пользователя (кроме Суперадминистратора) и изменить настройки поведения программы, в частнсти, запретить Модератору изменять профиль пользователя или блокировать просмотр статистики. К этому уровню доступа относится Суперадминистратор - 0-ой пользователь, установивший программу. Суперадминистратора нельзя удалить или заблокировать.
Программа написана на PHP, соответственно является web-приложением, предназначенным для установки и работы на сервере. Пользовательский интерфейс включает в себя HTML странички, отправляемые клиенту PHP скриптом по запросу, и скрипты JavaScript (используются для проверки ввода, упаковки ответа пользователя и вариантов ответа при составлении тестов, BBCode вставка).
Архитектура программы модульная, выделяются главный модуль index.php, ядро .\kernel\, языки .\Languages\, добавляемые расширения .\Tools\, набор HTML шаблонов со вставками PHP кода.
Основной модуль index.php выполняет проверку подключения к MySQL, сверку параметров пользователя, выборку шаблонов для запрошеной странички и сохранение/исправление/удаление данных в БД. Для последних действий используются функции ядра .\kernel\mysql.func. Остальные функции сконцентрированы в файле .\kernel\test.func, за исключением функции создания БД при установке, она находится в файле мастера установки install.php.
Подключаемые модули реализованы только на страничке тестирования и представляют собой панель из табличек с произвольным содержанием слева от списка вопросов теста, сами модули и файл описания находятся в папке .\Tools\.
Скрипты клиента разделены на три файла script.js, fade.js, effect.js, при этом важное значение имеет только script.js.
Файл knownbugs.list описывает найденные, но не исправленные ошибки.
Отдельно стоит отметить файл conf.php - он позволяет установить "вручную" (без HTML интерфейса) параметры программы. Большинство из этих параметров при работающей системе можно изменить из меню "Админцентр".
Общие положения:
Все таблицы содержат ключевое поле id, которое обязано быть уникальным и упорядоченным в большую сторону (0,1,2...).
Для каждого пользователя из таблицы user обязательно наличие таблиц status_[id] и mail_[id], где [id] - индекс пользователя.
Для каждого теста обязательно наличие таблицы question_[id], где [id] - индекс теста.
Наличие остальных таблиц обязательно.
В таблице "user" перечислены все пользователи, зарегистрированные в программе, статистика и почта пользователя хранятся отдельно.
Таблица "user"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
login | varchar(25) | Имя пользователя, не должно содержать " ? ' & |
password | varchar(32) | Пароль, зашифрованный md5 |
avatar | varchar(255) | Путь к аватару пользователя от каталога с программой (по-умолчанию upload/default.png) |
signature | varchar(255) | Подпись пользователя, содержит BBCode, не содержит HTML тэги. |
rights | char(1) | Флаг прав пользователя ('a' или 'm' или 'u' или 'b') |
usergr | varchar(255) | Учебная группа пользователя (по-умолчанию 'other') |
В таблице "status_[id]", где [id] - индекс пользователя в БД, перечислены все ответы пользователя на все тесты.
Таблица "status_[id]"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
qID | tinyint(4) | Индекс вопроса |
testID | tinyint(4) | Индекс теста |
answer | varchar(255) | Строка ответа |
В таблице "mail_[id]", где [id] - индекс пользователя в БД, перечислена вся личная почта пользователя в папках "Исходящие" и "Входящие".
Таблица "mail_[id]"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
message | text | Текст письма, содержит BBCode, не содержит HTML тэги |
subj | varchar(255) | Тема письма, не должна содержать " ? ' & |
folder | tinyint(4) | Индекс папки (0 - Входящие, 1 - Исходящие) |
readed | char(1) | Флаг прочтения ('y'/'n') |
senddate | varchar(20) | Дата отправки (Д.М.Г Ч:М) |
sender | varchar(255) | Логин отправителя |
В таблице "test" перечислены все тесты с заголовками, вопросы теста хранятся отдельно.
Таблица "test"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
name | varchar(255) | Название теста, не должно содержать " ? ' & |
subname | varchar(255) | Краткое описание, комментарий, не должно содержать " ? ' & |
visible | char(1) | Область видимости ('a' иил 'm' или 'u') |
msg | varchar(255) | Заголовок теста, содержит BBCode, не содержит HTML тэги |
block | char(1) | Флаг блокировки статистики ('y'/'n') |
В таблице "question_[id]", где [id] - индекс теста в БД, перечислены все вопросы теста.
Таблица "question_[id]"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
qmsg | varchar(255) | Вопрос, содержит BBCode, не содержит HTML тэги |
type | char(1) | Тип вопроса ('0'-Текстовый, '1'-Выбор одного, '2'-Выбор нескольких, '3'-Новый раздел) |
vars | varchar(255) | Список вариантов, не должен содержать " ? ' & |
В таблице "news" перечислены все сообщения системы.
Таблица "news"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
text | text | Текст сообщения, содержит BBCode, не содержит HTML тэги |
visible | char(1) | Область видимости ('a' иил 'm' или 'u') |
В таблице "groups" перечислены все учебные группы.
Таблица "groups"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
name | varchar(255) | Название группы, не должно содержать " ? ' & |
descr | varchar(255) | Зарезервировано |
В таблице "statcache" хранится кэш статистики.
Таблица "statcache"
Поле | Тип | Комментарии |
id | tinyint(4) | Индекс, используется в качестве ключевого поля, значение должно быть уникальным и упорядоченным |
userlogin | varchar(255) | Логин пользователя |
tid | tinyint(4) | Индекс теста |
percent | varchar(16) | Процент правильности |
ball | tinyint(4) | Количество набранных баллов |
5.2 Исправление ошибок таблиц БД
При повреждении состава или структуры таблиц программа может работать не верно, выдавать ошибочные или перепутанные сведения, или вовсе сообщить о невозможности подключения к MySQL, в последнем случае, если неполадка вызвана ошибочным заданием адреса MySQL имени или пароля рутового пользователя, то для восстановления работоспособности можно воспользоваться консолью восстановления (При возникновении такой ситуации ссылка на консоль появляется под сообщением об ошибке) или исправить параметры в файле conf.php вручную.
При возникновении вышеописанных ошибок в БД можно воспользоваться программой MySQL-Front или phpMyAdmin для "ручной" правки, для исправления ошибок достаточно соблюсти все требования из пункта 5.1 Структура таблиц MySQL