Personal Media Library



Personal Media Library (PML) is a Ruby on Rails end-user office/organization application that provides the ability for you to catalog your DVDs, CDs, and Books, all in one database with a Web interface.

Philosophy: The PML should be very easy to navigate, every object related to another, will have a direct link on the screen. Parent and child objects should be displayed when possible, and search results should indicate where the match was found.

DVD support includes the ability to add many chapters to a title, i.e. for Home Videos.

CD support includes ability to quickly add a CD Title, with Artist, and all Tracks using the FreeDB (Free Database CD ROM) lookup service by simply inserting a CD.

FreeDB: http://www.freedb.org/

Book support includes ability to quickly add your books using the Amazon Web Service ISBN lookup service to add Title , Author(s), Pages, Description, Edition and Date Published.

The application and code is freely available via Ruby Forge.

PML: http://rubyforge.org/projects/persmedialib

Screenshots: http://persmedialib.rubyforge.org/screenshots.html


Personal Media Library - unixname::persmedialib

Requirements:

Ruby (http://www.ruby-lang.org/en/20020102.html)

Rails (http://www.rubyonrails.com/)

A Database (you will need one)

- MySQL (http://www.mysql.org/downloads/)

- Others, see http://www.rubyonrails.com/

"For database, you can use MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2, or Firebird"



Developed using:

Ruby: ruby 1.8.4 (2005-12-24) [x86_64-linux]

Rails: Rails 1.1.6

MySQL: MySQL 4.1.10a-Max

Eclipse: Version: 3.1.0, Build id: I20050627-1435 with Plug-ins:

- Radrails 0.7

- Ruby Development Tools (0.8)

- Subclipse 1.0.3

- Smart Development Environment 1.0.1

Linux: Linux S1G 2.6.11.4-21.13-default #1 Mon Jul 17 09:21:59 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux



Existing users -- You MUST Update your database with

> rake migrate



New users -- New Installation:

1. extract and put into a directory where your RAILS projects reside

2. create the database tables using one of the following options (a or b):

2a. Using rake db_schema_import:

- using your favorite database client, create the target data base only, i.e. "mymedia" - NO tables ()

- edit the database.yml, i.e. since development is default, change to read as,

development:
adapter: mysql
database: mymedia
host: localhost
username: root
password:
port: 3306


# Windows example above, MySQL is normally(?) run without a password

- cd to home directory for persmedialib (per step 1 above)

- execute:

> rake db_schema_import






- the tables are now created (see #3 below to 'Properly seed' MusicCategories)






2b. Using the /db/development_structure.sql

- create the database

- create the tables using the /db/development_structure.sql

(this MAY need to be edited/adapted to ceratin databases, and is generated from MySQL today)



3. CDs: populate the the table “musiccategories” before loading CDs from FREEDB using EITHER:

3.a load musiccategories.sql (/db/musiccategories.sql) OR

3.b manually adding these lookup values:

3.c You may need to adjust the cdrom device in the '/config/application.yml' configuration file:

# Linux example

cddrive: /dev/cdrom

#Windows ??? (needs verified by someone else, I don't do Windows)

cddrive: d:\

4. BOOKS: If using the Amazon Web Service (AWS) to populate book data, register for your key (see link below)

and enter it into the '/config/application.yml' configuration file:

awsid: 'ZZZ' (replace ZZZ with your key, 20 character length)



Registration link: http://www.amazon.com/gp/aws/registration/registration-form.html



4.a Book Categories are USER defined and support a 'tree/hierarchy' notion. You can create your hierarchy of categories. (See screenshots for a sample, http://persmedialib.rubyforge.org/screenshots.html#graphics21|graphic )

5. Videos: Lookup values are USER defined for Ratings, Media Types, and Categories.

These are samples from my library.

Sample Ratings:

Rating
Description
G
General Audiences
PG
Parental Guidance
PG-13
Parental Guidance; for over 13 years old
R
Restricted



Sample Media Types:

Type

Description

DVD

Digital Versatile Disk, normally DVD-Video format

S-VHS

Super VHS video tape

S-VHS-C

Super VHS Compact

VHS

VHS video tape

VHS-C

VHS Compact

Sample Video Categories:

Category

Description

Action

Lots of action, chase scenes, etc.

Children's

Animations, fun-filled videos

Comedy

Smile, funny movies that make you laugh

Data

data discs

Fantasy

Pure fantasy and magic

Home Video

Family movies, homemade

Romance

Love stories, etc.

Science Fiction

Science Fiction, and someday fact?



5. Starting

- cd to home directory for persmedialib (per step 1 above)

- execute:

> ruby server/script

- open web browser, enter URL:

http://localhost:3000/




Using: - enjoy! Quickly build up your Library!



Administrivia:


1 Support:


Submit Support requests via RubyForge (Support Requests for persmedialib) or email to john.chufar@verizon.net


http://rubyforge.org/tracker/?atid=8062&group_id=2060&func=browse




2 Feature Requests:


Submit Feature Requests or email to john.chufar@verizon.net


http://rubyforge.org/tracker/?atid=8064&group_id=2060&func=browse




3 Bugs:


Submit Bug Reports or email to john.chufar@verizon.net


http://rubyforge.org/tracker/?atid=8061&group_id=2060&func=browse



Documentation:

1. See Project Home Page at

- http://persmedialib.rubyforge.org/