IT350 - Web and Internet Programming
Fall 2006

Final Project

Introduction

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).

This course has taught you the basics of web programming and how to refer to documentation when necessary. Some features of the project will require you to access additional information to complete the requirements.

Overall Requirements

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

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

·        submit.pl – 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 will also grade the quiz.  The script may then inform the student of his/her score and/or correct answers, depending upon the quiz settings.

·        summary.pl – 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 detail.pl 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 grades.pl (see below).

·        detail.pl – 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.

·        grades.pl – 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.

Getting Started

Everyone on the team needs to understand how the basics of the code work.  On your first actual in-lab day, do some team planning and then do the following.  Doing this individually is recommended, but get help from your team as needed:

  1. Above are 5 .pl files.  Download all of them to your root W:\ directory (not in a subdirectory).  Rename each one to have a .pl extension (e.g. change helpers.txt to helpers.pl)  
  2. From the command line run “perl –w helpers_test.pl”.  Take a look at the output, then read carefully through helpers.pl and helpers_test.pl to see how it works.
  3. helpers_test.pl has comments describing 3 warm-up tasks.  Do each one. Report to your team leader when finished.  Team leaders should help ensure everyone completes this, then report to the instructor when everyone has accomplished it. 
  4. Once all the above is working, make sure it still works when using the web-server.  Fetch http://www.mXXXXXX.it350.cs.usna.edu/helpers_test.pl . You should see reasonable results in HTML.
  5. You now know the basics. Proceed with your assigned part of the project.  Be sure to keep an eye of the required deliverables/milestone dates.

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 (in the case where students do NOT need to login before taking the quiz):

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:

Tips

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 (perhaps combined with your password file).  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 grades.pl 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.

Grading

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.

 

Deliverables

All items due at start of class unless otherwise noted.

 

 

 

Additional Hints/Clarifications (updated as the project progresses)