Presentation

apatheticyogurtΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 4 χρόνια και 19 μέρες)

122 εμφανίσεις

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
D
atabase

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


b
lu
-
ray.com


d
vdreleasedates.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