IT Practice Exam Site blueprint

Posted on December 13, 2009. Filed under: News |

I plan to build a sister website IT Practice Exam providing exam simulator for visitors.

I plan to build a website providing exam simulator for visitors.

Application Level Description:

Step 1, the User should input the following informations through the webpage.

  • The exam type, for example, “java interview” or “Cisco CCENT”.
  • The number of questions, for example 5.
  • With or without time limit.
  • multiple choice or single choice (or description).
  • (email address for follow-up?)

After the user press “Begin Test” button, an exam will be generated with a clock timing down. Then user answers the questions by clicking the radio buttons.

The test will end either when it times out or user presses “Finish Test”.

The system will give the following information as the testing result:

  • uer’s score, the time elapsed.
  • the correct answers.
  • user’s selections.
  • the link to tutorials of tested knowledge for each question.
  • some smart analysis about the test result.

Module Level Description:

This application have three-tier structure.

A database act as the consistency layer. Each test type should have one table storing the questions. For each question, there should be many corresponding answers. Some answers are correct, others are incorrect. A question may have pictures associated with it. There should be audit tables stores the testers’ statistics such as average score, which is used to decide the difficulties for questions.

At middle-tier module is used to collect information from website, query database and generate test questions. After test, this module collects the choices from webpage, compares them with database then sends the result to the analysis module. The analysis module then returns analysis result to the middle-tier module, so that it can generate html page showing the result.

Optionally, the following module will be added in the second stage:

  • email module to contact the subscribers.
  • a spider module which search the internet for questions and update the database regularly.

Implementation Level Description:

  • The network structure: have the mysql database, php hosted. The tutorials are hosted on At my local computer, I have another mirror mysql database installed, the local mysql database is updated by spider installed in my local network. The local network use dynamic domain name and PAT to interact with the internet. I will manually or automatically update the database with new data after some time interval.
  • The database structure: a database named “db_tester”. Tables include tb_question, tb_answer, tb_picture, tb_meta. The table tb_question has columns Q_ID, question, answers_number, asked_time, correct_time, links, create_time, update_time. The table tb_answer has columns A_ID, question_ID, answer, correct, create_time, update_time. The question_ID is the foreign key pointing to the db_question’s primary key Q_ID. The table tb_picture have columns P_ID, Q_ID, P_ID, data, create_time, update_time, where the Q_ID is the foreign key pointing to the primary key of table db_question. The table tb_meta have columns M_ID, Q_ID, create_time, update_time. This table is used for future upgrade if more types of imformation is associated with the questions.
  • The php middle tier structure: create a plugin based on poll plugin. Three module files: userconfig.php, display.php, analyzer.php. These three files maps to the three main functions: collect users configurations, display exam QA and exam results, analyze the user’s test results.

Design Considerations:

  • The free site server could be very slow sometimes, therefore the design should limit the page loads, use as little server resource as possible. To limit the expensive database operations, especially writing, most of the information should be retained in the web tier and middle tier. To limit page loads, all the questions and choices will be listed in one page at the first version of design. To avoid database access, program will query the database to get all the Question/Answers pairs and stores them in a Map after the user submit exam configuration form. To avoid loading the server, I prefer javascript to php whenever possible, in order to shift the computation to client side. When server side support is un-avoidable, try to use ajax instead of reload the whole page.
  • In the future updates, if I still using slow, I will develop a client side program with either applet or flash. This client side box generates each question in a separate page.
  • If I decide to shift to a faster site server, I can generates each question in a separate page, which have a parameter named “choice”. When user press next, page appends the current question number and the choice of the answers to the “choice” parameter then sends it to the next question page. At the end of the exam, the user press “finish” button, the “choice” parameter will be posted to analyzer.php.

Make a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Liked it here?
Why not try sites on the blogroll...

%d bloggers like this: