|   NetProg 2002 HW4 |
|     Project Description     |    Deliverables     |    Grading     |    Submission     |    Notes & Hints |
Your assignment is to write a CGI program that supports the creation of at least 4 popup windows. The user must be given a form that allows the user to specify the URL for each popup window along with a width and height. When the user submits the form the indicated windows will pop up.
There is a demo system available here
Your CGI program must support the GET method, and your form should set the method to GET. This will allow users to bookmark a favorite collection of popups!
Your program can be written in C, C++ or Perl and must be installed on a web server so that we can test the system without installing your code. Your submision will include all the source code for the actual CGI program, but we will be testing your program wherever you install it.
You must allow users to specify the URL, width and height for at least 4 popup windows. There is no requirement that you support other options ( window placement, toolbar, resizeable, status line, menu), but it's not hard to do. The demo supports a few options other than the URL and size, you do not need to support everything the demo supports.
You must write a CGI program! It is possible to have a pure Javascript implemenation of this project, but your assignment is a CGI program that generates an HTML page containing Javascript that creates the popup windows. The CGI submission must be a valid URL itself, so it can be bookmarked (so you could create a hyperlink that generates all the popups without filling out the form). Think about this: what if one of the URLS that the user types in to your form is itself a URL that runs your program ... ?
You should submit all the files necessary to build and run your CGI program. Your submission must also include a file named README that includes the following:
Your Name
The URL of your installed and runnable CGI program.
A list of files and a 1-line description of the contents of each file.
References to any borrowed code (the source code must also include this information).
A description of any known problems. If you think you know how to solve the problem(s) and simply didn't have time to do so - let us know how!
Anything else you think might be useful to us, such as what you learned, what you had trouble with, if the project was too hard or too easy, etc.
Your program should work properly when it receives requests generated by a browser when a user submits the form you provide. Your program should not crash no matter what kind of nonsense query-string we send it, in all cases the browser should receive output generated by your progam (not the server telling us that your program has a problem...). You can ignore nonsense (just send back a copy of the original form if you get something that doesn't make sense) or explicitly send back an HTML document that describes the user error - it's up to you.
Points will be awarded as follows (partial credit is available for each item):
| System works properly when used with your form | 60% |
|---|---|
| System can handle any kind of nonsense. | 15% |
| Style/readability | 25% |
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 (4 for HW4). 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.
You will need to know to generate a popup window using Javascript, here
are some Javascript resources that discuss the window object and
how to use the window.open() method to create a popup window:
You will also need to be able to construct an HTML form, here are some resources: