Online Quiz Assignment

From Knowledge Kitchen
Jump to navigation Jump to search

Build a web-based multiple-choice quiz about a topic of your choosing with at least 10 questions that a visitor to your site can answer.

What should the quiz be about?

Pick a topic you're interested in. Some examples:

Should I plagiarize my code?

No. Every student must write their own code, and no two students can use the same topic. Of course you are free to 'borrow' any code that your kindly instructor has given you.

What are the functional requirements?

The following outlines the functionality of the quiz app, broken down by pages that the visitors see. For all code files, use comments in your code to explain key steps.

Log in page

A visitor to the site will first be presented with a log in page. This page will ask the visitor to enter their name and email address into a form.

When the visitor submits the form, the app must do the following:

  • if the visitor has not entered their name and email address:
  • if the visitor's has already completed the quiz:
  • if the visitor's email address is not already in the database:
    • save the visitor's name and email address into the database
    • redirect the browser to the Quiz page

Quiz page

Visitors are shown all questions and the answer options to each question on the Quiz page.

This page does the following:

  • loads all questions and answer options from the database
  • displays all questions and answer options in a well-designed form the visitor can fill out on the page
  • when the visitor submits the form:
    • the fact that this visitor has completed the quiz is stored in the database
    • their selected answers to each question are stored in the database, associated with their 'account' (i.e. their name and email address)
    • redirect the browser to the Result page

Result page

After the visitor has completed the quiz, the Result page displays their score.

This page must do the following:

  • display the visitor's overall score (percent of answers that were answered correctly)
  • display all the questions and their correct answers, and visually indicate which questions the visitor answered incorrectly

How does it all fit together?

Application flow

This flow diagram may help you understand all the web pages and functional requirements fit together. Online quiz assignment flow diagram.png

Technical flow

This version of the flow diagram shows some of the internal technical processes that allow this application to work, but are hidden from the visitor. Online quiz assignment flow technical diagram.png

What are the technical requirements?

What server-side programming language should I use?

Whichever you prefer. Popular server-side programming languages are PHP, Python, and Javascript. Unfortunately, our i6 server is not set up to run Javascript.

What database system should I use?

Whichever you prefer. Popular database systems for web apps include MySQL, SQLite, and MongoDB.

What should the web pages look like?

However you like, so long as they meet the functional requirements.

How do I submit my work?

  1. Post your assignment pages to your i6 account
  2. create a link to the main assignment page from your i6 website home page
  3. send us the URL to your assignment Log In page
  4. send us all code file(s) in a zipped folder with your name on it

What links here