proj0
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| proj0 [2010/09/21 20:06] – created roumani | proj0 [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:// | ||
| + | [[http:// | ||
| + | [[http:// | ||
| + | |||
| + | ====== 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 " | ||
| + | |||
| + | **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" | ||
| + | |||
| + | * 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: " | ||
| + | |||
| + | 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' | ||
| + | |||
| + | * 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" | ||
| + | * To improve responsiveness, | ||
proj0.1285099565.txt.gz · Last modified: by roumani
