Quiz system documentation

(Index) Introduction Requirements Features Installation Usage

Documentation parts up to date with the script version created 03-Jan-2000.

Differences between v2.x and v3 beta:

  • Uses templates for some of the generated pages (all except the 'Options' and 'Question' pages). Will use templates for every generated page later, just haven't rewritten everything yet.
  • Allows browsing of old sessions, overview and detailed reports of previous sessions. To really have use for this feature, you should create your own personal 'demo' account.
  • Expired accounts will still be available as 'demo' accounts.
  • More detailed score reports (including the number of correct answers, time used per answer, and the requirements for these).

Really new features (in version 2.x), still undocumented (almost straight from the history in the script code):
  • Automatic creation of 'demo' accounts. The 'demo' users gets their own accounts to have use of the history browsing function, coming in v3.
  • Logging of Score Report history.
  • Automatic (optional) mailing when the accounts are about to expire and when the account renewal time is about to expire. Everything configurable, as always.
  • Added two more difficulty levels: "Easy" and "Are you mad ?". "Easy" will show the question's group name as a hint text if no hint text is specified in the database, and "Are you mad ?" will not show the hint text, even if it is in the database.
  • Hint text or question group name is always displayed in the Error Review mode.
  • Short description of the Quiz added to the Score Report and Item Review screens.
  • HTML code generated by script cleaned up, and fixed to be HTML 4.0 compilant (at least the most of the pages, errors may be caused by HTML errors in databases).
  • Overall speedup of the code by removing almost all stdout printing, and appending everything to a single string to print when it's time to show the page.
  • Added a function to enable (more than) full logging. Can save every generated page in a file (I plan to use this to find HTML errors).
  • Added a selection of difficulty level, which changes the answer type of the question:

    Question are shown as defined in the databases
    One- and two-answer questions are shown as multiple-answer questions.
    All questions are shown as multiple-answer questions
  • "Retry Incorrect" button added to Score Report screen. This will give the test-taker the opportunity to retry answering that questions, or look up the correct answer to gain new knowledge.
  • Added $fulllog to config, allowing every access to the script to be logged
  • Added input field to make it easier to resume a session broken by a network error
  • Accounts with a defined number of access days now doesn't log invalid access days.
  • Logging of access days now includes full (yyyymmdd) date for access. This allows accounts that are valid for a number of access days to be used over years.
  • Added a demo question counter to the quiz selection screen
  • Added support for Flash Cards.
  • The "Show Answers" button can now be disabled if the question database configuration allows it.
  • The account expiration date and time is now shown below the Question number.
  • "Fill in the answer" type of questions can now have case-sensitive or case-insensitive answers, specified by the case of the t:s at the second line of the question ($questiondata[1]).
  • $logdir added to configuration. The path given in this variable is prepended to the $accesslog and $quizaccesslog file locations
  • Added automatic creation of $unpackdir.
  • Added an information line, containing the session ID that will be used for the session on the database options screen.
  • loadsession() subroutine now uses new dofile()
  • Added a line below the title on the quiz selection and database options screen that shows the local time.
  • Support for "type in the correct answer" type of questions added. Multiple correct answers can be specified in the quizdb file using one line for each answer that should be considered correct. As for a "normal" multiple answer question, the second line in the question specifies how many correct answers the question can have.
  • Random number generator optimized again. It is now about 10 times faster than before. Shuffles about 50000 questions of 50000 in about 2 seconds (P-II 300).
  • It is now possible to specify where to unpack the gzipp'ed data files.
  • Sessions can now be resumed if an network or server error occurs. The resume function is at least available for the time specified in $autodel.
  • Support for temporary access accounts added. The limit on the access can either be a number of days of use (within an unlimited time frame) or a specified time.
  • Demo questions can now be set in an array, instead of having to be a group of sequential questions
  • "Abort & Score" added, allows you to abort your current session and go directly to the score report. Only questions up to the one when you abort will be counted.
  • Question group breakdown added on Score Report screen
  • Question data files (only the "bigdb" versions) can now be compressed with gzip to preserve disk space while not in use.
  • Extra image for question, "Exhibit", added (image file at $question_data[$answers+6]).
  • Support for inline images in questions added (image file at $question_data[$answers+5]).
  • Automatic return to the quiz selection screen when a session is timed out and deleted (if this option is turned on for the system)
  • Question group selection now supports checkboxes as well as a scrolled list for group selection. AmigaVoyager scrolling list bug workaround (always checkbox if V)
  • The quiz script can now be used with other configuration files than the "config.pl" that is located in the same directory as the script. Security check requires the same owner of the script and the configuration file.
  • Option to set a limit on simultaneously active sessions added. Two values control wether or not it will be possible to create a new session. $maxactive sets the number of maximum allowed active sessions, and $activetime is used to determine if a session is active or not (if a session is modified within the specified time, it is considered active).
  • Question group selection added to the options screen.
  • Automatic deletion of inactive sessions on startup/load of quiz selection screen (the time to keep inactive sessions can/must be set in main configuration).
  • Better Lynx compatibility (the right answer is now highlited using boldfaced text)

New features recently added to the script (documented as of 3-Jan-2000):
  • All questions can be in the same file now, as an alternative to one question per file (backwards compatible)
  • Added an option to shuffle the answer alternatives around. Broke backwards compatibility with old (undocumented) database format.
  • Random number generator for question selection optimized by a factor of about 100!!!
  • Password protection on a per-quiz basis (can use password files generated by Apache's "htpasswd" command)
  • Optional demo modes for quizzes (forced question range and/or time limit)
  • "Exit" button added to the options screen
  • Some layout changes and HTML code corrections for the generated pages (HTML 4.0 compilant)
ToDo list:
  • Documentation update
  • Administration tool, add questions through a form, user manager (possibly in another script)
  • Add an option that describes what to do when exceeding the time limit
  • Add an output option that creates a clean page with all randomly selected questions (and maybe the answers too)
  • Check wether the browser used to access the quiz system can display pictures, and filter out questions with graphics for non-graphics browsers (Lynx).

Quizzer and its documentation is Copyright 1999, 2000 by P-O Yliniemi