ITunes Project Spring 2008 Requirements

From MWCSWiki

Jump to: navigation, search

ITunes Project Spring 2008 - Requirements

The 'deliverable' for this project is software that emulates iTunes.

Of course it is not realistic to expect a full emulation of iTunes in the time we have left in the semester. What we need to do is to determine what is reasonable in the time we have available. This is a realistic situation, since whenever one sets out on a software setting feasible goals need to be set as soon as possible.

I'm going to set some initial limits on the project and then let you set some others. We will not try to emulate the GUI interface, and we won't be implementing the portion that plays or renders the contents of files.

Your part, by class on Monday, is to let me know whether you will work on this project as an individual or be part of a group ITunes Groups of two or three. If you're working in a group then let me know the members of the group, and the responsibilities of each member. Feel free to name the group. Come to class on Monday with a list of methods or features that will be implemented.

It seems reasonable to me to think of the iTunes software as manipulating a collection of items. So that there are (at least two classes) here. One that defines an item and another that defines a collection of items. Likewise, there are methods that deal with an item (a Tune)and some with the entire collection (a PlayList or a Library). For example, updating the title on an item is a method that is specific to an item. Sorting the items is a method specific to the collection. You may see it differently, and please feel free to take another approach after we've discussed it.

We'll also have to think about obtaining data in a form the software can handle. See if you can find some tools for converting an iTunes library to CSV or some other text format. To export an iTunes playlist to CSV, see: ITunes_library_to_csv. I've found a couple of tools but haven't looked at them in much detail. See http://del.icio.us/ernestackermann/xml+itunes

You can also export an Itunes as a tab delimited file, which can very easily be separated using \n and \t (the \n being new lines, and the \t being new tabs).

Design Details:

Interface

  • Use a GUI interface as much as possible

Objects

  • Tune (title, artist, album, length, rating, genre)
  • Library - a list of Tune objects
  • Playlist - a list of Tune objects

Features

  • Display - playlist, library
  • Add - tune, playlist
  • Remove - tune, playlist
  • Search - on all attributes of a tune as in ITunes
  • Create play list
  • Merge play lists (no duplicates)
  • Sort - and any attribute of a tune
  • Shuffle - playlist
  • Play a tune - optional
Personal tools