Wednesday, March 24, 2010

Project 5

Due Date: Wednesday, 28 April, for the in-class demo

Sunday, 2 May, for the final graded submission

Group Project


Familiarity with
  • client-side JavaScript
  • DOM event handling
  • Dojo toolkit
  • AJAX
  • mashups
  • public web APIs


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 Sunday, 4 April, should you have discussed your project choice with the instructor and finalized the project requirements. This project is a great opportunity for your group to get really creative and have lots of fun. (Hint: keep it simple! As many of the examples show, some useful mashups are extremely simple.)

General requirements

For full credit, your mashup should have the following characteristics:
  • data and/or functionality from two or more source APIs (a link to each source must be included in the footer of the application's pages)
  • clear, useful functionality on top of the source data/functionality
  • some form of persistent data (if required for the functionality provided)
Extra credit will be given for mashups with a focus on social justice. You may look for demographics and other suitable APIs here.


Sample project

The default project, in case you prefer not to come up with your own, is a continuation of the food and health themes from Project 3 assigned in an earlier version of this course. The requirements for this option, called the Recipe Sanity Check Mashup, are as follows.
  • The user enters the ingredients of a recipe into a table with a column for the ingredient name and another column for the quantity.
  • The user then presses the "check" button.
  • For each ingredient, the application then shows the following information:

    • energy in kcal for the given quantity
    • some pictures that pop up on demand
  • The application also calculates the total energy for the recipe.
Extra credit is given for the following additional functionality:
  • (Less hard) Links to health-related articles for each ingredient.
  • (Less hard) Storing data for ingredients not yet in the database.
  • (Harder) Storing, retrieving, and searching recipes.
Nonfunctional requirements:
  • XHTML 1.1 compliance.
  • Browser-based mashup in JavaScript with one or more suitable libraries such as Dojo, JQuery, etc.
  • Per-ingredient calory data comes from Google Base, where you can manually enter this information through your Google account. Recipes can be stored there as well.
  • Photos come from a source such as Flickr. You should narrow the search using suitable tags.
  • Health-related articles can come from the British NHS.

Alternative approaches

You are also welcome to build a hosted mashup using platforms such as Yahoo! Pipes or Ning. You will need a Yahoo! account to use Pipes, or a developer account on the other services, and you will learn on your own how to use them.


Please share your group's storage account with the instructor and send the instructor email as soon as your project is ready to be reviewed. The date your message is received counts as the submission date.

No comments: