MediaShelf Web App

Printer-friendly versionPrinter-friendly versionSend to friendSend to friend

After years of switching from platform to platform and language to language, I am starting to make very good progress on my media cataloging application. A brief history....

I am a movie geek. There I've said it. Not as much of a geek as some people I know but I have more than a passing interest. At the last count I my DVD / BluRay collection was hovering around the 550 mark and it has grown since then (only a few weeks back). I have been looking for some time for a decent media cataloging application and for a while, Delicious Library was my application of choice. It allows you to search multiple data sources in order to let you easily add your movies, games, software or just about anything else you can think of to your collection, which can then be exported to a website, CSV file, spreadsheet if necessary. I had several issues with this software though:

  • It's not free
  • It is Mac only (not an issue for me but still should be considered)
  • It's not free
  • Its very one way i.e. you can download data about the item but cannot add to that data
  • It's mot free
  • It was tied to my mac due to the license - I couldn't access my collection on a work PC, netbook or mobile
  • Did I mention it's not free?

My main intention was to build an application with similar functionality to Delicious Library but to make it web based. Back in my uni days I built a very rough prototype of a system using XML, XPath and eXist (an open source XML database), it got me a passing grade but was a very rudimentary system; everything was added manually, nothing was dynamic and you could only search by title. Couple that with the the fact that eXist is very flakey, no one would host it and the fact that you shouldn't really use XML as a database and it doesn't take a genius to work out that it was going to be a non starter!

My next attempt was a Flash based system, built using Flex Builder, using a Drupal site for the back end. My intention was a to build an interface that allowed the user to search the amazon product catalogue for their items and let them save the items as drupal nodes, flagging them as owned so they appeared in a list of items that particular user owned. To my surprise there wasn't really any useful AS3 libraries around that interfaced well with the Amazon AWS API. I tried using SOAP and REST functions from the Flex 3 API to get the data and format it and I got some decent results, but I found that unless the objects came back in the exact same format every time, Flash would barf and the whole system would grind to a halt. I could have thrown in a few try() clauses here and there but I would have needed one for each field - not very efficient! One major positive that came out of my Flex dabblings (aside from refreshing my AS3 skills) was a chance to play with some funky UI elements. I have a nice little drag an drop system in place that would let you search the Amazon product catalog and drag any movies you wanted in your collection into a catchment zone. These would sit in the catchment zone while you searched for more products, much like a shopping cart, until you hid an 'Add to collection' button.

This worked well, but I would have had to have set a limit on the number of items that could be added per submission, detracting form the user experience in my opinion.

Attempt number 3 is the current one and I think I am on to a winner! It is now built entirely in Drupal with no flash in sight. One major contributing factor for dropping Flash (aside from the buggy Amazon SOAP requests) was that I wanted to make this accessible via mobile devices as well. Continuing down a Flash route would have meant I had to develop 2 separate interfaces that did the same thing, the current implementation means that I can simple scale the interface to fit desktop or mobile displays (primarily an iPhone... hey I'm a Mac geek through and through! Deal with it!).

So, for anyone who is interested, here is a current overview of what it does:

  • Searches Amazon product cataloge via the Tarzan PHP library
  • Allows the user to select which amazon locale they want to search
  • Does not allow for duplicate database entries - search mechanism recognises if a product already exists locally and if so adds that one to the users collection
  • Highlights any items you already own in the search results
  • Allows for browsing of movies via Genre
  • Allows for browsing of movies via Actor / Actress
  • Allows you to un-flag any items you no longer own
  • Users can search Amazon catalog or view other users collections for movies they own - still working on the workflow for this
  • Provides the user with a view of their collection along with basic statistics such as total items owned.
  • Collection can be viewed in table or 'shelf' views (grid).
  • Collection can be ordered by genre

Roadmap:

  • Come up with a name and domain that nobodoy has yet! Suggestions welcome
  • Buddylist integration
  • Ability to search for other media such as games, books, CD's
  • Facebook Connect integration / sign in
  • Wishlists - ability to by from amazon
  • iPhone App!!

We will see how it goes, this is being built in my spare time which is rapidly becoming more and more sparse! I will get around to posting a link to the demo site as soon as I am happy its in a beta type state.

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • You may embed videos from the following providers . Just add the video URL to your textarea in the place where you would like the video to appear, i.e. http://www.youtube.com/watch?v=pw0jmvdh.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Insert Flickr images: [flickr-photo:id=230452326,size=s] or [flickr-photoset:id=72157594262419167,size=m].
  • You may use <swf file="song.mp3"> to display Flash files inline
  • Twitter-style @usersnames are linked to their Twitter account pages.
  • Twitter-style #hashtags are linked to search.twitter.com.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.