Network Programming
Spring 2001

Homework 4 - CGI based Address Book
Due Date: March 30th

Submit to netprog-submit@cs.rpi.edu with the subject line "4"
Complete Submission instructions are here


IMPORTANT!: You must provide a link to your running system (and the source code).


Your assignment is to write a CGI based Email Address Book (basically just a list of names and corresponding email addresses). Your system must include the following:

Demo System

A sample system is available at http://monte.cs.rpi.edu/~hollingd/netprog/hw4/

Don't reproduce the demo! Make your own forms, come up with your own format for showing a list of addresses, etc.

CGI Languages

Feel free to write your CGI program in C, C++ or Perl. You need to ask about using any other scripting language...

Suggestions

Deliverables

Your submission must include all the source code for your system and a URL where we can test your system. It is important that the source code you submit is the actual code running at the URL you send us!

IMPORTANT

Your README file must contain the following on a single line of text:

URL: yoururl

where yoururl is a URL to your running system. An script will extract these links from each submission, so if you don't include this line the TA will not be able to grade your project!. Below is a sample README file that includes this required line:

README File for Joe Student
The files included are:

hw4.c:   C code for main CGI program
subs.c:  C code for some support subroutines
subs.h:  header file for subroutines
Makefile: a makefile 
data:   a data file that contains some names and addresses

This system can be tested at the following URL:

URL: http://www.cs.rpi.edu/~joestud/hw4/


NOTES: This is probably the greatest moment of my life, as I have
mastered CGI programming and can now start up my own dot.com. Thanks
to Dave for allowing me to work on this project. Dave: once my new
company is up and running I'll ask you to be on the Board of Directors
and make sure you get all the cookies you want.

As usual, you must also include in your submission a file named README that includes a brief description of your submission, including the name of each file submitted along with a one line description of what is in the file. You should also include instructions for building your code, problems you had or anything else you think might be helpful to us. You don't have to worry about what platform your developed the code on as we will test your live system, but you do need to tell us what kind of machine your code is running on.

Grading

Your project will be tested to make sure it works properly. 50% of the grade will be based on how well your project works when the user does everything the way you expect. 25% of the grade depends on how well your system works when the user abuses it (submits empty forms, sends nonsense requests, sends form fields that include HTML formatting, etc.).

25% of your homework grade depends on the how well we can understand your code - this means everything should be commented!

Submitting your files

Submission of your homework is via email, the general idea is to send an email message with all your files as attachments. There is an automated email submission system that will respond to your submission right away, so you will have a record that we got your files.

All projects must be submitted via email to netprog-submit@cs.rpi.edu. The subject line of the submission message should contain a single number indicating the project number (1 for HW1, 2 for HW2, etc.). You must include your files as attachments, feel free to send a zip-file or a tar file.

Don't send compiled code!

You can expect a return email indicating receipt of your project submission immediately. This receipt will include a list of all the files that were successfully extracted by the submission script - please look over the receipt carefully to make sure your submission worked.

Multiple Submissions: You can resubmit up to 10 times for each project, we will always grade the last submission received unless you tell us otherwise.