Friday, January 07, 2011

testcreator — автоматизация тестирования студентов

Вчера я дописал небольшую программу с веб-интерфейсом; она написана на Django (Python) и позволяет несколько автоматизировать процесс тестирования студентов.

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

После того, как тест будет наполнен вопросами, можно экспортировать необходимое количество случайно выбранных вопросов в PDF, причём сразу в двух вариантах — один вариант для студента, для заполнения, а другой для преподавателя — для проверки теста (в варианте для преподавателя указаны правильные ответы).

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

Скриншот

Скриншот

Скриншот

Скриншот

Скриншот

Теперь опишу установку (для Ubuntu 10.10).

Скачать файл, распаковать его к себе (например, в домашний каталог).

Открыть консоль, выполнить sudo su.

apt-get update
apt-get install python-django
apt-get install python-setuptools
apt-get install python-all-dev
easy_install pisa
easy_install reportlab
easy_install html5lib

Перейти в каталог с программой и выполнить syncdb — при этом надо
будет создать суперпользователя, которого можно использовать для входа
в админку, если она для чего-нибудь понадобится (/admin/).

cd testcreator
python manage.py syncdb

И запустить сервер. Он вполне подходит для обычного
использования, но для использования несколькими людьми и вообще
продакшена настоятельно рекомендую обратить внимание в сторону
gunicorn + nginx.

python manage.py runserver

Всё, программа должна быть доступна по следующему адресу.

http://127.0.0.1:8000/

Кстати, там используется unobtrusive javascript. То есть если
JavaScript у пользователя по каким-то причинам выключен, и модные
анимированные эффекты динамически меняющихся страниц у него не
отобразить, то программа у него всё равно работает — просто происходит
дополнительный переход по ссылке.

Вот такая программа получилась. Если у вас есть какие-нибудь мысли по поводу этой программы, буду рад их услышать.

2 comments:

Filkin said...

Как возникла мысль сделать подобное? Личная необходимость?

Подскажи кстати какой щас хостинг лучше брать для Django?

MaGIc laNTern said...

На Хабре увидел, что люди такое хотят. А я конкретно такое не делал, в частности, экспорт в PDF до этого не делал. Поэтому было интересно реализовать. :)

А хостинг — Alwaysdata посмотри. Или, если хочется что-то очень надёжное и серьёзное — то Media Temple.