Projects‎ > ‎

Web 2.0 Mashup

Provide your own online service.  Mash it with a third-party service.  Display the results.

You may use any programming language you want.  You may target any machine you want (including your vm or home computer), or you may deploy to a cloud service.  For example, some students in the past have used Java + GWT + App Engine for this project.  Just make sure it is accessible from TigerNet.

You will be presenting your project in class when finished.  You will be required to demonstrate that your project satisfies the following requirements.


  1. use a database* to store some interesting data
  2. provide a REST API (Atom, RSS, XML, JSON, JSONP, etc) to information in your database
  3. implement an interactive client-side mashup which uses your API and a third-party JSONP API
*alternatively, you can generate data on the fly, store data temporarily in memory, read from a file, proxy data from another source (e.g. scrape from another site), or provide some function instead of serving stored data.  If you choose to proxy data from another source, make sure your API differs substantially from the source API (if there is one).


Your API must be parameterized in some way; it can't just return the same data for every request.  The parameter(s) can be search terms, filters, etc, and should be passed to the server as part of the GET string.  Likewise, your client UI must allow the user to specify the parameters in some meaningful way.

Make sure your GET requests are idempotent.  You are not required to implement POST/PUT/DELETE methods, tho that'd be cool!

Third-Party API

You can use any third-party service for the other half of your mashup.  Keep in mind that it probably should use JSONP and must be "mashed" client-side, in the browser.

Also, to be considered a real "mashup", your client must send data from one service to the other.  It is okay if the third-party service is just for visualization purposes, e.g. Google's Chart API, so long as you are actually sending a request to third-party servers and not just importing a JavaScript library.

Additional Graduate Student Requirement

If you are enrolled in the 7xxx version of this course, you must additionally provide online documentation of your REST API.  This should be written in HTML and hosted on your server.

Group Option

You may work as a group on this project under the following conditions:

  1. each member must implement separate and distinct JSONP REST APIs for Requirement 2 above (including separate databases)
  2. your mash-up must use each REST API in some way; additional third-party APIs are also allowed (for visualization, for example)
You can work together on all parts of the project.  You only need one client.  If you'd like to work in groups of 3 or more, please talk to me first.