Potential Extensions
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.
Making It Cheat-Proof
One of the first things you might have thought after tinkering with the application for a while is, âUsers can check the answers by downloading and opening the JavaScript source file.â It would be a pain to go through each question and find the letter, but it can be done.
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 logic in
questions.js
.Remove
gradeTest()
and replace the call to it inbuildQuestion()
withprintResults()
.Modify
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.
Removing the answers from the array logic
Remove this.answer
and
this.support
from the question constructor in
question.js
. Change this:
function question(answer, support, ...
Get JavaScript Application Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.