Please note: It is just a given in our industry that your code has to run! If your code does not run, you will not receive any points.

You will be creating a PHP-driven web site that is a practice quiz for people taking the civics portion of the United States Naturalization Test. There are 100 possible questions for this portion of the test; however, in practice applicants are given only 10 questions, chosen randomly. An applicant must answer 6 out of 10 questions correctly to pass the civics portion of the naturalization test.

Your task is to use the 100 sample questions provided in the official Civics (History and Government) Questions for the Naturalization Test document. (Dr. Alfaro will provide a PHP code snippet with two arrays, one of questions and one of answers, which you may use.) Your application should display ten questions at random along with a text input box for each answer. The user should be able to input a short answer, and the script will compare the user’s answers against the correct answers. Be sure to convert any special characters to HTML!

When checking for correct answers, CASE SHOULD NOT MATTER. Also, your code should check to see if the answer string is included anywhere within the answer. So, if a correct answer is “Constitution”, any of the following answers should score as correct:

It is up to you how you want to store and retrieve the questions. However, your project must meet these minimum requirements:

  1. Displays 10 questions chosen at random (by the PHP; not by you!) and ten corresponding text boxes for short answers.
  2. When the user submits the test, the user will see their grade and whether they passed or failed the practice exam (60% is passing). It will also indicate which questions the user got wrong so they can go back and study!
  3. Upon submission, the page should also display a date-time stamp stating when the exam was submitted.
  4. Your code must include an array, and this array must actually be used to create the quiz. (No creating an array that is never accessed!)
  5. Your code must contain a PHP include to show that you know how to do this.
  6. Your code must contain at least one function that is actually utilized in the application.
  7. Your code must utilize at least one loop (for, while, do-while, or foreach).
  8. On the page which displays the user’s score, there should be a link or button that allows the user to go back and take the quiz again with a new set of 10 random questions.
  9. Use semantic HTML code and best practices (an h1, at least one h2, alt text for images, etc.).
  10. Add CSS as appropriate to make this a professional-looking portfolio piece. (We may be showing this to clients in the capstone next term!)



Submit your completed file final-yourlastname.tar.gz below.