Want to be able to provide a common framework for test taking applications. To do this, we need to have a means of specifying the test in a means that is easily duplicated. Then through this means we need to be able to provide a key and a test for people to take.
XML Example- Code: Select all
<test>
<section title="Section of the Test" order="random|specified">
<multiplechoice order="random|specified">
<question>Here is a question that has multiple answers</question>
<answer correct="true">This is the correct answer</answer>
<answer>This is a wrong answer</answer>
<answer>This is another wrong answer</answer>
</multiplechoice>
<shortanswer>
<question>This is a question that needs to be answered by a statement</question>
<answer>This is a set of notes that needs to be added in order to help the grader grade the exam. It will not be placed on the html form as well</answer>
</shortanswer>
<essay>
<question>This is an essay question. And will need to be answered by a text area</question>
<answer>This is a set of notes that needs to be added in order to help the grader grade the exam. It will not be placed on the html form as well</answer>
</essay>
</section>
</test>
BTW KadannIf you read this, that box should be bigger. Should fit the amount of text if I want it to.
Use CaseSo what I see this script doing is this:
0. Will need to have the person that is taking this test provide a piece of personal information. An email address, a user name, something. Let's call this piece of information ${PERSONAL}.
1. Need to parse the xml document and create a test form specific for that user. The document should be built in this way.
1.1 For each section need to create a header tag that will separate the questions into unique sections for ordering. The questions are ordered based on the order attribute.
1.2 For the multiple choice questions need to determine what the correct answers are based on the correct attribute in the tags. When creating the multiple choice questions, they will be implemented as radio buttons. The text associated with the radio button will be the text in between the answer tags.
1.2.1 The value of the radio button will be a hash created with the personal information, the order number of the question in the XML document, and the question order number in the XML document. The reason for this is to obfuscate the correct answer between test forms so that two unique people can not take the test, and based on the raw html, share answers. Because all three parts of the hash are present, the multiple choice questions can be graded automatically.
1.3 The short answer questions will be represented by a small text field on the line after the question. These questions can not currently be graded automatically. These values will have to be sent by email to a grader.
1.4 The essay questions will be represented by a text area. This must allow for enough room to fill in the answer to the question. These values will have to be sent by email to a grader.
2. When the user is finished taking the test, the test questions are sent to the test taker in a stylized email.
3. The Multiple choice questions are graded and the test is sent to the grader in an email or stored on the server in a database. The grader can then grade the remainder of the exam at their leisure.
ConclusionI think that sums up all of it.
Just another pretty face....
Verastinian Republic - Almighty Dictator
"The difference between a hacker and consumer is a consumer says, 'I wish it would work this way.' A hacker says, 'I've got a screwdriver and a few minutes.' -- Rael Dornfest