IT350 - Web and Internet Programming
Fall 2005

Final Project


In this final project you will work as a team, employing all the HTML, CSS, JavaScript, and CGI skills you have learned this semester, to design and build an online survey/quiz system.  Your goal is to produce an attractive, functional, maintainable, and innovative system.  The best system will be deployed for use in IT350 next year (and likely many other courses).

Overall Requirements

When finished your system will need to have at least five publicly viewable scripts:

· – Generates a survey/quiz HTML form that is filled out by the student.

· – This script is called when the student hits “Submit”.  It records the student’s responses in a file for later use, along with a timestamp.  For a quiz, it may also grade the quiz and inform the student of his/her score and/or correct answers, depending upon the quiz settings.

· – A password-protected script (intended for instructor use only) that displays a summary of the survey/quiz responses.  This should summarize:

o       Which students (and how many) have taken the quiz/survey.  For each student, there should be a link to the detail page for that student’s response (see below).

o       For multiple choice questions, the percentage of students choosing each response.

o       For free text questions, a list of all the responses that were provided.

o       There should be an appropriate link to (see below).

· – A password-protected script that displays the responses of an individual student.  It’s up to you how to present this information.  One nice approach might be to re-display the survey/quiz form and somehow indicate the answers given by that student.  Note that still must work even for an anonymous survey.

· – A password-protected script that displays a list of all students, one per line, sorted by alpha number. Each line should contain the student's alpha, lastname, then their grade for the quiz.  This should be output as a plain text file, one student per line.

Other requirements:

What You Start With

We are giving you a few things to help you get started.

General Approach

Getting the site to work will involve getting several perl files and some text files to work effectively together.  Here is an example of how this should all work:

Notice a few things about the above steps:

Project Roles

Each of you will have leadership responsibility for some part of the project.  This doesn’t mean you must do all the work for that part; it just means you are responsible for making sure it is done right.  Part of your individual grade will depend on how well you lead your team in this regard.  The roles are:


Extra Credit

Your project must meet the basic requirements.  Then do any of the following for additional credit.  You may also propose other ideas; talk to your instructor.

  1. Create an online quiz/survey generator – e.g. a tool to help produce text files like quiz1.txt.  This script should allow the instructor to dynamically create a quiz/survey by adding one question at a time.  It should also support modifying existing questions and should be able to load existing quizzes/surveys for modification. 
  2. Add the ability for a quiz to refer to another file, say “it350-2001-students.txt” that lists the alphas and last names of all students in the course.  Then modify the summary results to also show those that have not submitted, and modify the grade results to show an incomplete for students that have yet to submit something.
  3. Add the ability to send mail to students with their grade after submitting a quiz.  Email may be tough with our server; talk to your instructor if you are interested.
  4. Make a new version of to creates a summary text output, one line per student, but where each line contains the grades for a whole set of quizzes (e.g., so one page would the grades for all students, all quizzes).  Be sure to handle missing quizzes appropriately.
  5. Add support for showing separate results/grades based on which section a student is in.


50% of your individual grade will be a group grade based on the following

  1. Meeting projecting milestone and status reports
  2. Functionality and correctness – The site should operate as advertised without error.
  3. Visual Appearance & Consistency – including good use of CSS.
  4. Maintenance – Ensure the site is well organized, requires minimal maintenance, and can be expanded by someone else who doesn’t know your code.
  5. Documentation – Ensure all pages are documented. General documentation covering the system’s layout and design is also required.
  6. Creativity – The requirements above require at least one system innovation not specified in the project writeup.  This and any other innovations will count towards your creativity grade. 


The other 50% of your individual grade will be administered by your teammates.

  1. Your assessment of your peers shall be based on effort, knowledge, team work, and professionalism.
  2. You will assign two grades to each member of your group – one based on their overall contribution, one based on their leadership in their assigned role.  Your instructor will later tell you details about what grades you may assign (e.g., don’t expect to give everyone an A).


All items due at start of class unless otherwise noted.



Additional Hints/Clarifications (updated as the project progresses)