MyBroadway

In order to finish my MBA with a concentration in Management Information Systems (MIS), I’m required to take Information Systems. The general concept behind the class is to understand the necessary steps that go into the analysis and design of IT systems. For the second half of the semester, we’ve focused on creating and analyzing Data Flow Diagrams (DFDs) and Entity-Relationship Diagrams (ERDs). Throughout the entire semester, we’ve been working in groups to do analysis of the fictitious MyBroadway Video Rental Company. Each case builds on the previous one – we started looking at a broad overview of the system, then moved into creating DFDs and ERDs to model and mockup a finished product. Instead of having a traditional final for the class, we were given the option to do a final project and presentation. The final project was to implement the databases we designed during the ERD analysis and create a working prototype. My professor gave us two options for creating the database: (1) use Microsoft Access to design the tables and just create basic user interface to test them or (2) use PHP/MySQL to create a functional website to demonstrate how the product would work for both customers and employees. I immediately gravitated towards the PHP option and began coding.

I started by designing a simple layout that was aesthetically pleasing, and added in the basic functionality: register a new account and login to the system. Given that it was supposed to be a movie rental portal, I next had to figure out where to get a decent sized movie library that I could store in my database. After some thinking and googling, I decided to use IMDBs Top 250 as a starting point. I originally thought of writing a scraper from scratch to obtain the relevant information, but quickly found out that IMDB API was freely available. However, in order to use IMDB API, I needed to have the movie list stored somewhere; either in the database or as a text file. A little more googling led me to ScraperWiki, where I found a scraper that was already written to dump the Top 250 into a .CSV file. After uploading the .CSV file to my server, I put together a quick PHP script to parse it out and save the IMDB IDs into a table. Now I was in business – another quick script to run the IDs through IMDB API and I had a working movie database. I also ended up saving the movie posters from IMDB locally on my server to avoid hotlinking them every time the page was loaded. After getting the movies all put together, I started building out the rest of the functionality: rent/buy movies, checkout, request a new title, view/return rentals, view purchases, and view transaction history. To reduce the amount of reloads the user would have when navigating the site, I ended up linking almost all of the operations to AJAX requests that queried PHP scripts and updated the DOM using jQuery.

Some of the other fun features that stand include:

  • Facebook/Google+ like notifications for when items are in the cart or rentals are overdue.
  • A ‘Quick Cart’ dropdown that appears when the notification for the Shopping Cart is clicked.
  • A few CSS3 hacks to create a wrapping effect around the body of the page.
  • Embedded Trailers when viewing the details of a single movie.
  • A scrolling interface for the movies page that allows the user to view all of the movies in the catalog without reloading the page
  • “Employee” reviews of movies, with a 5-star rating system.
  • The ability to request a new movie, or vote for a movie requested by another customer.
  • Similar Movies (when on a Movie detail page) and Suggestions calculated on the fly based off of the genre of the current movie or previous transactions, respectively.

I’m sure I left a few things out – I’ve been working on the site for about 3 weeks now, so I know what I’m expecting to see at this point. Overall, it was a fun project to work on, and it allowed me to test out some new features that I probably wouldn’t have had the time to on a real production site. Anyway, you can check out the working prototype here – just register an account and start playing around with it. Any questions or comments, leave me a post below.

This entry was written by Marc Budofsky , posted on Wednesday November 30 2011at 06:11 am , filed under Binghamton University, Javascript, PHP, Programming, Web Design and tagged , , , , , , , , , . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>