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:
- It must be a more significant project than PS3.
- The web application must have a server-side and client-side components and use Ajax.
- 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:
- 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.
- 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.
- 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.
- 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."
- 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.
- 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