Movie Management Database Program Danny Solomon Capstone Project Advisor: Dr. C. David Shaffer.

Post on 12-Jan-2016

222 views 1 download

Transcript of Movie Management Database Program Danny Solomon Capstone Project Advisor: Dr. C. David Shaffer.

Movie Management Database Program

Danny Solomon Capstone Project

Advisor: Dr. C. David Shaffer

Outline• Description of the Problem• Features / Problems of Other Programs• Purpose of Project• Implementation• Acquiring Video Release Information• Filtering and Reordering Movies• Tagging Movies• Netflix• Comparing with Another User’s Database

Description of the Problem

• Serious movie collectors need a tool to organize and search their collection

• There are many movie database programs out there, but none of them feature everything a user desires

• I wanted to develop a simple-to-use program with improved and new features

Features of Other Programs

• Movie Collector (MC) (Desktop Application)– Has many filtering options.– Implements a search bar

• Coollector (C) (Desktop)– Most comprehensive tool in terms of movie

information provided• Blu-ray.com’s My Movies (MM) (Web-based)– User collection comparisons• But not specific movies

Common Problems with Similar Programs

• Few sorting, filtering, or searching options (MM, C)

• Only one video format could be entered per movie (All)

• Mishandles or does not recognize multi-movie sets (C, MC)

• Lack of information for multi-movie sets (C, MC)

Purpose of Project

• Improve upon options previous movie collection programs feature

• Add features to better handle multi-movie sets• Add new options, including access to Netflix and

User Database Comparing

Implementation

• Program written in Java– User Interface– Web Service Interfaces • api.rottentomatoes.com• api.tmdb.com

– Libraries • Netflix (John Haren, Lysergic Java)• JSON (Douglas Crockford )• SQLite – jdbc

• SQLite Database to store data

Acquiring Video Release Information• Uses UPC• Screen-Scraping– blu-ray.com– dvdreleasedates.com

Acquiring Video Release Information

• Combine information extracted from screen-scraping the previously mentioned websites in addition to these APIs– http://developer.rottentomatoes.com/• Rotten Tomatoes (http://www.rottentomatoes.com/)

– http://docs.themoviedb.apiary.io/• The Movie Database (http://www.themoviedb.org/)

Acquiring Video Release Information

Acquiring Video Release Information

• Once complete, the user is able to edit any information he or she wants before adding the movie to the database by using the interface pictured in the next slide.

Multi-Movie Sets• When a user enters a barcode that refers to a

multi-movie set (i.e. Star Wars Trilogy) , the process is a little different.

• My program acquires information from Blu-ray.com on each individual movie in the set.

• The database is designed to maintain which movies are part of a set.

Filtering & Reordering Movies

• The “Reorder By” buttons simply reorder the current list of movies by the labeled attribute.

• Examples– Title reorders by alphabetical order and reverse– Year reorders by oldest to newest and reverse– And so on…

Filtering & Reordering Movies• The “Filter By” buttons divide the list• For example, clicking on “Genres” first

displays a list of genres in the current list

Filtering & Reordering Movies

• Then selecting “Action & Adventure” will bring up a list of all the action movies in the previous list

Filtering & Reordering Movies• After this, the user can then further divide

the list by format in a similar fashion.• This way, it is possible for the user to bring up

a list of all action movies they own on DVD

Filtering & Reordering Movies• As the user filters through the list, the GUI will add

buttons that represent the filtering traversal.• Each button will be clickable so that the user can

easily go back to a previous filtering option

Filtering & Reordering Movies• I added keyboard commands to implement

“and” (CTRL + Click) and “or” (ALT + Click)• This way, the user can bring up more complex

lists. Examples:– All movies on Blu-ray OR DVD– All movies in categorized as “Comedy” and

“Drama”

Tagging Movies• Each movie can be “tagged” (much like

YouTube videos) with descriptive phrases and/or character names

• Many tags come from the APIs, but the user can add his/her own at the Add Movie dialog

• A user can search movies by these tags. Examples:– All movies based on a novel– All movies featuring James Bond

Netflix• None of the movie database programs

interface with Netflix.• The Netflix Queues can become rather difficult

to navigate when the queue grows large

Netflix Application

• My goal was to integrate Netflix into my database program, but Netflix’s terms and conditions stated the application must be separate.

• Gives user the ability to filter through his/her Netflix Queues the same way he/she filters through the database

• Easier to see what movies are in Queue• Reused as much of the existing code as

possible

Database Comparing

• Implements a method for a user to compare his/her collection with another user’s

• Uses three-way split-screen (Venn Diagram) design for viewing databases

• Can also compare collections by statistics

Future Work

• Add more database comparing statistics• Get the “Filter By” buttons working for other

applications• Improve way cast and crew info is displayed• Improve filtering • Redesign/Redo some features• Implement way for the user to reorganize the

Queue if they please