Monday, April 2, 2007

Project 4

Due Date: Wednesday, 2 May (firm)

Group Project (done in pairs)


Familiarity with


In this project, you will develop a browser-based mashup (from at least two sources) of your choice, pending on instructor approval. No later than Monday, April 16, should you have found your project partner and discussed your project choice with the instructor and finalized the project requirements. Hint: keep it simple!

As discussed in class, a great example of a simple yet effective mashup is HousingMaps.

As a default project, in case you prefer not to come up with your own, you could explore an integration of Google Maps with suitably tagged bookmarks that represent geographic locations of interest (for example, places you have visited).

Alternatively, you are also welcome to build your mashup using Yahoo! Pipes, Ning, or QEDWiki. You will need a Yahoo! account to use this service.

Project 3

Due Date: Saturday, 21 April


Familiarity with

  • Dojo Toolkit
  • AJAX
  • JavaScript Object Notation (JSON)
  • Social bookmarking,
  • Remixing
  • Automated testing, JsUnit testing framework


In this project, you will develop a browser-based remix of the social bookmarking application. A remix is a wrapper around an existing application that exposes the functionality of the existing application in a novel way.

Functional Requirements (50%)

Your remix should have the following user interface elements:
  • text field for userid
  • text field for max number (default 20) of matching bookmarks (having all selected tags) to fetch
  • button for obtaining that user's tags (and initial list of bookmarks)
  • left list for displaying unselected tags
  • buttons for adding and removing tags to and from the selection
  • right list for displaying selected tags
  • element for displaying the current number of matching bookmarks
  • section for the bookmarks themselves shown as links
Your remix should update dynamically if any of the following events happen:
  • change of userid
  • tags selected or unselected
  • change of max number of matches
  • one minute has elapsed (periodic update)
(You don't need your own userid for this project but may want to get one anyway.)

Your system must also satisfy the nonfunctional requirements stated below.

Look and Feel (10%)

The look and feel of the application must be both attractive and effective. In particular:
  • There should be no unnecessary reloading of pages.
  • There should be no unnecessary alerts or popups.

Nonfunctional Requirements (15%)

  • All content must be valid XHTML 1.1 documents. You are advised to use a validating editor or the W3C Validation Service to ensure that your content is valid. For convenience, you may want to place a link on each document that runs the validation service on this document. Your document should state the correct document type at the top.
  • All rendering styles must be provided using a single shared valid CSS2 style sheet. There must not be any rendering styles in the documents themselves. You are advised to use a validating editor or the W3C CSS Validation Service to verify that your style sheet is valid.
  • All code must be provided in the form of external JavaScript source files. The code must use the Dojo Toolkit's object-oriented capabilities and a model-view-controller (MVC) architecture.

Automated Testing (15%)

Use the JsUnit testing framework to test your model class in ways that cover the scenarios listed above.

Documentation (10%)

The following documentation is required:
  • Sufficient inline documentation (comments) in your JavaScript code for me to comprehend your work



Please submit the complete URL of the home page of your project under project 3 in the assignments section in Blackboard or send me email with the URL.