Programming in Perl

Homework 6

Due Tuesday, April 22nd, 2003 11:59:59pm EDT

FAQ has been started
You are to create a very simple CGI address book. When a user first loads your program, it will create a form containing a text field for the username and a password field for the password. The user will then push submit and be taken to his/her personal address book. Here there is a list of names and email addresses, as well as a form for users to add new entries. The only fields required are name and email, but you are free to add more. This screen should have two submit buttons - one to add the new entry, and another that takes the user to an email form. Within the list of addresses on this second screen, you need to give the user the ability to select one or more entries to email. When the user pushes the email submit button, he is taken to the third form. This form has text fields for To:, CC:, BCC:, and Subject:. It has a text area for the email message. And of course it has a submit button. When this submit button is pushed, the email message is sent with all appropriate headers.

Notes

The To: field must default to being filled with the addresses of which ever entries were selected on the previous page. (Filling it with a comma-space seperated list of addresses will work out well when you pass this field value to sendmail).

If a user logs on with a username that does not yet exist in the system, simply create that username with the password given and present a blank addressbook with the add-entry form.

If a user logs on with a username that does exist, but with a password that doesn't match, print an error message (either on top of the form again, or on a seperate screen telling the user to go back).

You are free to create datafile(s) of your own format for use within the program. However, please do not attempt to submit any datafiles. Your system should be 'blank' when we first run it. (That means after you submit, make sure you clear or delete the datafiles in your own local directory so we can test it).

The same submission rules that applied for HW5 apply for this homework as well (all code in one single CGI program, no static HTML files, must use the CGI submission page, multiple code files must be submitted in a .zip or .tar.gz file)

Grading Criteria

Create log-on screen5
Create new user10
Show user's address book10
Show blank address book for new user5
Show Add Entry form5
Add new entry10
Allow selection of 1 or more entries to email10
Show email screen5
Fill To: field with entries selected in previous screen10
Send email10
Compilation5
Code Style5
Output Style5
Error checking and reporting5
As always, 5 Above & Beyond points are available.

Submission Instructions

This project can be run on cgi2.cs.rpi.edu, or on your own webserver. If you choose to use your own server, make sure it is up and running from the submission deadline until you receive your grade. Also please make sure you do not neglect to submit your code file as well as your URL. The project is due at 11:59:59pm EDT on Tuesday, April 22nd