Princeton University Movie Search Project


the site


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

1. Go to the site

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.