Web Music Player
Web Music Player
Web Music Player
PLAYER
Eriel Thomas
Josh May
Nick Upton
Ray Smith
Vjekoslav Brajkovic
PROJECT IDEA
Project Goal
Our product is a web based music player that allows users
to listen to their music libraries using a server program
on their home computer and a web based client to
connect to that server and stream the music.
PROJECT IDEA
Target Audience
Our target audience is a computer user who wants to listen
to their music remotely without having to carry around a
digital music player. Also, the target user has a decently
high speed internet connection on both ends of the
transaction. The target audience is also skilled enough on
computers to install the program and use the web to sign
in to our web site and use the web client.
PROJECT IDEA
Terminology
User server: The Java program running on the user’s
computer that responds to requests from the web client.
Web client: The Java applet that runs on the web site that the
client uses to listen to their music.
Web server: The web site itself (including the Ruby code and
the MySQL database).
MAJOR FEATURES
Major Features:
Play mp3’s streamed from the user server to the web client
View the music library sorted by various aspects such as: Artists, Album,
Genre, Song Title, etc
Create, save and modify playlists through the web client
Use the user server to choose music to share to the web client
User permissions for listening to music (Guest accounts that limit access
to songs, etc)
Minor Features:
Encrypted TCP/IP Communication
Multi-format support (Ogg Vorbis, FLAC, WMA, etc)
Future Features:
Consolidate music from many different computers together for access
from the web client
IMPLEMENTATION
Programming Languages and Frameworks
Java for the web client and user server
Ruby on Rails for the web server
Swing for the UI
Data Sources
MySQL for the web server
Version Control
SVN for version controls
Testing Suites
JUnit for web client and user server
RSpec for general testing
TEAM ROLES
Feature Teams
Eriel:Music Player and music features like playlists
Nick: UI
Ray: Socket Communication
Josh: Web interface/Website
V: Server side interaction (loading MP3 data, etc)
Testing
Each person will add unit tests for features they worked on as
well as others they didn’t work on as new features are added
to the product.
DESIGN
The different features each person is working on are
implemented as different classes
DESIGN
UI Diagrams