This is an old revision of the document!
Project 0
Summary
Create a webapp to enable a group of people to collaborate online on authoring a simple document. The goal is to expose the challenges that underlie building such a webapp without a framework and, to that end, it will be implemented with CGI using a scripting language (Perl).
Perl Resources
Base Requirement
Whenever a user visits the URL of your webapp, a screen similar to the following is displayed:
The webapp allows several users to concurrently create a list of countries. The user enters a country name and then clicks the “add” button. The above screen shows that 4 countries have been entered so far (by all users) and 2 of them were created by this user in this session (the other 2 may have been created by other users or by this user in a prior session). The master list is displayed sorted beneath as an unordered list.
Validation
- If the entry made by the user is already present in the master list then it is rejected. In that case, the same screen is re-served (with its information updated to reflect any changes made by others in the master list) but with a line added at the top containing, in red colour, the message: “This country has already been added”. Furthermore, the text box must be filled with whatever the user entered; i.e. the entry is echoed back.
- If the entry is empty or contains only whitespace then it is also rejected, and the form is re-served, as above, with the message: “Country name cannot be blank!”. In all other cases, the country is added, the form re-served, and no message appears at the top.