CSCE 590: Final Project

Due: Thursday 1 May 2008 @2pm

Choose your Own

For the final project you get to choose your own project, as long as I approve it. All projects must meet the following criteria:

  1. It must be a more significant project than PS3.
  2. The web application must have a server-side and client-side components and use Ajax.
  3. It must incorporate some other third-party API, see this list of existing web apis.

No Ideas?

If you are having trouble coming up with your own billionaire-by-29 idea for a web application, here are some that I've come up with:

  1. Who's turn is it to bring the beer? Your club meets every week and a different person must bring the beer. You want to make it equitable so that, over time, everyone has the same number of turns but you also want to be flexible so if someone can't make it a particular week then someone else gets assigned. What you need is a web application that performs this scheduling automatically for you and outputs both a general calendar (as an ICalendar feed) for your club as well as specific calendars for each member so they subscribe to their own feed using their preferred calendaring software and this will remind them when they need to bring the beer.

    Of course, you quickly realize that this is a very common problem, for example, physicians, plumbers, security guards, and many other businesses need to create similar schedules where one person is on-call every night. Thus, you decide to generalize this problem a bit and let any number of users create accounts on your website and create their own schedules.
  2. What's the going price for a wii? After failing to buy a wii at Target on opening day you decide to try eBay but a quick check of the many auctions reveals that the price is too high. You decide to wait until the price comes down but then quickly tire of visiting the ebay every day to check 5-10 auctions to find the average clearing price. You realize that what you need is to create a stock ticker symbol for the wii and set its price based on the data you gather from the ebay api.

    Of course, you quickly realize that if you can do this for the wii you can do it for any keyword or combination. Thus, you create a web site that lets users enter keywords and returns them the going price for those "items" (minus some noise since these are only keyword searches). You also have some permanent keywords which you search every five minutes and whose historical values you record. Thus you can provide users with historical prices for items such as: nintendo wii, superman action comic, original apple II, final four tickets, etc.
  3. A real gamecock facebook app. Tired of all the generic "college sports" facebook you decide to build a facebook application that is specifically designed for the gamecock fan. You start looking for animations of burning tigers.
  4. Online gradebook. You keep the grades for the class you teach in a google spreadsheet, which is great because you can share it with your TAs and they can enter and modify grades as needed. But when it comes time to tell each student their own grade there is a problem as google spreadsheet only lets one either make the whole spreadsheet public, not a specific row. Thus, you decide to build a web application which will let teachers create accounts and then tie these accounts to their google spreadsheets. They can then go to the website and tell it "this column contains email addresses, this one the grades, and this one the comments associated with that grade, email each student their grade and comment."
  5. Online head-to-head Soduko. After your delight in getting PS3 to work you start to wonder what other simple games could benefit from similar treatment. You immediately that Soduko would be great in a tournament setting where both people are trying to solve the same puzzle and they can see the numbers that the other one has entered. The one who enters the most correct numbers by the end is the winner. Players tell you that a fun thing to do is to enter wrong number to try and throw off their opponent.

    You also have similar ideas for many other simple games.
  6. Automated Javascript tests. You are topcoder. You have had a lot of fun solving the simple programming puzzles they give on their website. You also realize that the Java applet they use for competition would also be a great way to quiz student on their JavaScript knowledge. Thus, you decide to implement a simpler version.

    Your website presents students with simple problems and gives them a textarea where they can write their solutions in Javascript. You then run this code (Javascript eval to the rescue!) and make sure that the output matches the required output given the required input. You record how long it takes the students to finish the problem and your server then gives students a grade for their whole test.

Presentation

We will meet in the classroom on Thursday 1 May 2008 @2pm (our scheduled Final exam time) for your demos.



José M. Vidal
Last modified: Thu Apr 3 16:03:45 EDT 2008