User Tools

Site Tools


proj0

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
proj0 [2010/09/21 20:06] – created roumaniproj0 [2010/10/07 20:42] (current) roumani
Line 1: Line 1:
 +~~NOTOC~~
 +
 ====== Project 0 ====== ====== 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 ======
 +[[http://www.perl.org/|Authoritative page]]
 +[[http://www.comp.leeds.ac.uk/Perl/start.html|Tutorial]]
 +[[http://www.cse.yorku.ca/~roumani/perl/|My page]]
 +
 +====== Base Requirement ======
 +Whenever a user visits the URL of your webapp, a screen similar to the following is displayed:
 +
 +{{:proj0.jpg|}}
 +
 +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 beneath as shown. 
 +
 +**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.
 +
 +====== Possible Variations ======
 +
 +  * Country name must be made up of letters and possibly a hyphen in the middle.
 +  * The master list should be displayed sorted.
 +
 +  * Don't send the master list if the client is iPhone or Blackberry.
 +  * If a user remained idle while others are adding countries, the counter on the screen would not remain correct. Fix this.
 +
 +  * Map your app's URL to a directory.
 +  * Add logging to your webapp.
 +
 +  * Add authentication to your webapp.
 +  * Add confidentiality to your webapp.
 +
 +  * Trigger an event if a user successfully added more than 5 counties per session.
 +  * Compress your webapp's response.
 +
 +  * Keep track of the counties entered by the user in the session, not just the count, and enable the user to view them.
 +  * Enable richer content. Rather than just a country name, the user may also enter the capital and possibly the population.
 +
 +The following two variations require CSS and JavaScript:
 +
 +  * Rather than serve the list every time, change the UI to a sidebar and two links "Add a Country" and  "Show Master List"
 +  * To improve responsiveness, and to place less demand on the network, have the client do some validation. Server validation should remain unchanged (why?). 
  
proj0.1285099565.txt.gz · Last modified: 2010/09/21 20:06 by roumani

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki