This application can be modified in a number of ways. The two obvious extensions I see, however, are making it cheat-proof by performing the grading on the server, and changing the application to administer a survey instead of a test.
You can remove the “Peeping Tom” factor by simply not
sending the answers with the application and requiring the user to
submit his or her test results to a server for grading. We
won’t get into grading the test on the server, but it
won’t be much more involved than
gradeTest(). Maybe a little more involved, but the
principles will be the same.
To remove the grading feature and add the server-side submission feature, you’ll need to do the following:
Remove any data representing the answers from the object and array
gradeTest() and replace the call to it in
printResults() so that the user can view
his or her answers, and embed the answer data within an HTML form to
send the waiting server.
this.support from the question constructor in
question.js. Change this:
function question(answer, support, question, ...