Princeton University Movie Search Project
Introduction
We are Jen Chen '10 and Alberto Jurado Varela '10 and we teamed up
during the Summer Programming Experience 2007 to build some sort of
computer game. This is actually Jen writing, since Alberto is en route
to Mexico right now. We decided to make a DVD database because of the
difficulty in locating DVDs on the regular Princeton University Library site.
There's no browse function and there's no way to find DVDs unless you
knew exactly what you were looking for. And the Language Resource
Center (LRC) had thousands of DVDs available for free, but since no one
knew what they had, the DVDs there haven't been used as much as they
could've been. Alberto also had connections to Library Staff since he
worked at the LRC during the school year, which made things
significantly easier.
Technical
This project utilized Java, Regular Expressions, PHP,
MySQL, Javascript, AJAX, XML, and HTML of course. The CS department has
graciously hosted our databases and webpage on their Linux server.
We used the CASClient.php code developed by J. Alex Halderman GS for log in. Our ratings system was influenced by the Unobtrusive AJAX Star Rating Bar created by Ryan at Masuga Designs. Some of our information has been gleaned from IMDB. We utilize Princeton Library's Voyager record retrieval.
Overview
Find DVDs you want to watch! We did the grunt work for you.
Instructions
If you are a Princeton student, click the link to log in. If you do not
wish to log in, click the lower link. However, you will not be allowed
to rate movies. If you chose to log in, you will be redirected and need
to log in on the below page.
2. Arrive at the site
There are two options: search or browse and both have search options
(title/keyword, location, format). The search bar is self explanatory.
The browse is accessed through drop-down menus below the search bar.
3. Browsing
You can browse by title (first letter of), language, and genre.
4. Searching
Searching allows you to access more records since
we rely on the library's labeling for browsing. Only around 75% of the
movies are labeled. You can click on the status button to look up
whether the movie is charged or not. If only a few results turn up, the
status will automatically be looked up. Rating movies is also an
option.
Discussion
Our initial challenge was the data. All of the
libraries (twenty-something?) that stock DVDs categorized them in
slightly different ways and with varying notation. In addition, not all
of the DVDs had keywords, so they were without description. After
standardizing the data we did have, we attempted to add the information
that people were really interested in, like plot and directors, to the
information the library provided. However, this information is not
freely available on the internet and if we wanted to implement
something like movie covers, we would be in the land of dubious
legality.
Another obstacle was finding the status of the DVDs.
Initially, we attempted screen-scraping, but this proved to be
especially difficult given the Library search page's myriad built-in
time-out variables. Luckily, we received assistance and were able to
receive the information through XML.
An additional difficulty was the variety of languages.We wrote
the page in PHP, stored the data in a MySQL database, and added dynamic
elements with Javascript and AJAX. And those were just the ones we
ended up using, not the ones we discarded along the way. Juggling the
various lingos was initially difficult since we were only really
familiar with Java, but we soon became familiar with the idea of client
side and server side code.
Acknowledgements
Harlan Yu GS for being our mentor and teaching
us a whole lot of programming. Michael Wu '10 for offering random
suggestions that proved to be very helpful. Sam Albert '08 and Stanley
Yates for offering us a painless way to check DVD statuses. Kevin Wayne
for buying us a PHP/MySQL book and for sponsoring the awesomeness that
is SPE. And for driving us to Six Flags too.