The Quiz Assignment

Your mission is to write a quiz generator.  You should be able to create quizes, offer quizes, receive answers and process the results for the teacher.  I take off one point for every day (not workday) after Friday Feb 20th.

Create Quizes
1
Insert a question into a quiz
1
Can handle multiple choice questions
1
Can show a picture to the students inside a question
1
Can handle one-word-answer questions.
Question:  What's the last name of the current president
Answer:  Bush
1
Each quiz can have a different number of questions
1
Can have multiple active quizes at the same time
1
Can copy a quiz into another quiz
(i.e.  I'll copy this cs120-01 quiz into my cs120-02 class)
1
Can delete a quiz (and all associated data)
1
Can list all existing quizes.
1
The quiz generator is visually appealing
Every screen has a title.
Screens have nicely arranged forms.
Use of fonts and colors and tables and visual breaks <hr> to arrange things.
1
Can offer an interesting quiz to the teacher.
1
Can edit a question on an existing quiz.
1
Can delete a question on an existing quiz.
1
Can insert a new question into an existing quiz.
1
You need a pasword to create/edit/delete/modify quizes.
(only 0.5 if you have to edit code to change the password)
1
Each question can have a different number of answers.

Offer Quizes to Students
1
Can offer a quiz to a student.
1
Can vary the order of the questions.
1
Can vary the order of the answers.
1
Can tell the student their score at the end.
1
Can remind students to finish every question  (if they left something blank).
1
Students must know a password to view or take the quiz.
Each quiz should have a different password.
(only 0.5 if you have to edit code to change the password)
1
Each student's result is inserted into the database.
1
Record the time the quiz was taken.
1
Each quiz can have start and stop times.
(i.e.  This quiz can only be taken on Mon from 12:00 to 1:00pm
1
The quizer is visually appealing
Every screen has a title.
Screens have nicely arranged forms.
Use of fonts and colors and tables and visual breaks <hr> to arrange things.
1
Can tell the students how they rank against the other test takers (so far)
1
Can stop a student from taking a quiz more than once.

Process Results for Teachers
1
Can show a list of everyone and how they did
1
Can show each question and the percent of right answers.
1
Can show for each question the most common wrong answer.
1
Can automatically send mail to the teacher every time someone takes a quiz.
1
The quiz processor is visually appealing
Every screen has a title.
Screens have nicely arranged forms.
Use of fonts and colors and tables and visual breaks <hr> to arrange things.
1
You need a password to do these things.
(only 0.5 if you have to edit code to change the password)

Extras
1
Distinct results pages for students and profs.
1
Can create users.
1
Can delete users.
1
Can list all users on the system.
1
Only people who created the quiz can edit the quiz.
1
There are time limits on how long a user can take on a quiz.
1
One can edit an existing user.
1
Classes exist.
1
Can add and remove classes.
1
Can compute quiz stats (std dev, mean, etc).
1
Only profs can create quizes.