CS 242 Fall 2009 : Assignment 3.2

This page last changed on Oct 22, 2009 by cemeyer2.

Assignment 3.2 – Creating a Web Mashup

Part I – Final Project Proposal

For the last 4 weeks of the semester, each of you will complete your own final project. The project can cover any domain using any language, toolkit, or framework, but you cannot have your final project for this course be part of a project or assignment for another course you are currently taking. Before you can begin your final project, you must first write up a proposal and submit it to your TA for approval. The proposal must contain:

  • Summary of application including functionality, language used, libraries needed, platforms targeted, etc
  • Why you chose this application (i.e. to learn something, to solve a problem…)
  • Who will use this application when it is completed
  • List of features
  • How you plan to test the application (will you use junit, nunit, selenium, etc)
  • Documentation plan
  • A weekly schedule
    • You have 4 weeks to complete the project
    • For each of the 4 weeks, you need to commit to which portions and features will be complete

We expect you to spend the same amount of time each week on the final project that you spend on each of the other assignments so far this semester, so plan out each week accordingly. Your TA might ask you to revise your proposal after submitting it if he thinks that you are trying to do to much or too little. Submit your proposal as a pdf via email to your TA by 8:00 AM on Wednesday, October 28th 2009. You cannot start on your final project until you get approval from your TA, so the earlier you submit it and get approval the earlier you can begin working.

Part II – Creating a Web Mashup

For this week, please commit your code to a directory named Assignment3.2 in your subversion repository by Wednesday, October 28th 2009 at 8:00 AM.

What exactly is a web mashup?

  • An application created by combining data and services from existing web sites
  • A way to transform the Web from an informational platform into a computational platform
    • transform sites into services

Some examples of web mashups:

  • HousingMaps – combines craigslist housing listings with Google Maps
  • TrackThis – combines tracking information from shipping companies with email, text messages, or Facebook
  • Woozor – combines weather data with Google Maps
  • TwTask – combines a task manager with Twitter

Why are web mashups interesting?

  • Raises (and can remove) the bar for what is possible for the individual
  • Provide access to highly developed, robust technologies
  • Provide access to massive amounts of content and types of manipulations

Steps to building a web mashup:

  1. Extract content from existing web sites (done last week)
  2. Process the content using Web services
  3. Render to redirect output to other sinks

Last week, we took data from an existing feed and processed it into a database. This week, you will be reading out of your database and displaying the data in an interesting way using an existing web service. It is up to you to choose which web service you would like to use. You will want to pick one which will best be able to create an interesting application given the data that you have in your database. Some examples of web services you can use are:

If you want to use a web service that is not listed here or is in one of the directories that we provided, post it on the newsgroup so that others can also use your idea.

Note: Many of these APIs such as Google Maps require an API key to use them. Sometimes these keys are bound to a specific address where the API will be used, so you might have to register the URL where you plan on hosting the page, such as http://csil-projects.cs.uiuc.edu/~NETID/ If you do not feel comfortable having to sign up for a key, feel free to use another API that does not require one.

For any of the web services that are location based, such as the maps apis, you will probably also need to use a geocoding api such as the Yahoo! Geocoding API to transform addresses into latitude and longitude coordinates to use with your web service.

Your Task

Your job for this week is to take the data in your database and create a web mashup using it and one other web service. For example, if you have location-based data you can plot it on a map or if you have date based data, you can create a calendar or if you have data that might be in the news, you can create a page linking to relevant articles (on a news site, wikipedia, etc) for each of your records. But, it is not enough to just overlay the data with a web service.

Another requirement of this assignment is to allow the user of your application to customize or filter the data that is displayed. You can use standard HTML form controls (tutorial here) and JavaScript (tutorial here). You can also provide filtering by having your select queries only select out data that the user desires (using WHERE clauses).

In many cases (depending on the web service you use), you will probably want to have a php page that dynamically generates JavaScript containing all the data to be displayed and have static JavaScript on the page that takes the generated data and interacts with the web service you choose.

If you have questions, post them on the newsgroup so everyone can see them or email me if you have a question that is specific to your application.

When you are done, edit the Assignment 3.2 Links to include a link to your application so others can see it.


  • Usabaility
    • It is clear how your program should be used: 2
    • Controls used make sense for your application: 2
  • Documentation
    • Your code contains ample comments: 4
    • Your program provides useful feedback to the user: 4
  • Code Design
    • Your code is modular: 4
    • Functions only do one thing: 2
    • Each function is no longer than 25 lines of code: 2
    • There were no code smells in your code (-2 for each): 10
    • The web service you chose to use makes sense given your data set: 4
  • Functionality
    • You successfully were able to use a 3rd party web service: 4
    • You successfully integrated your database with the web service: 8
    • You provided controls to allow for filtering or customizing of data displayed in your application: 4
  • Participation
    • You actively participated in discussion: 4
    • You came prepared based on your assigned code reading: 4
    • You submitted your assignment on time and to the correct location: 4
Total 62 Points

many thanks to Professor Brian Bailey for his information on web mashups

Document generated by Confluence on Feb 22, 2012 18:18

  1. No comments yet.

  1. No trackbacks yet.