The purpose of this extension of the second project assignment is
several-fold. One primary goal is to give you the opportunity to
complete a project assignment. Additionally, you should be
continuing to improve your Java coding skills, gain familiarity with
your favorite development environment, and get used to working with CVS.
First, you will want to setup a new
CVS environment (as directed last week). It is important that you
change your CVSROOT to
point to: /home/cs130exp/projects. You should create a new (cvs)
project for this assignment so that you can create new projects in the
future for other assignments. Use the CVS tutorial to help you
with importing and adding files as you develop the rapid prototype.
Personalized Music DJ
For project 2b, you will need to integrate your code with a music
player and add some additional functionality to what was required for
Project 2. Although we discussed in class that you should never
reuse code from a rapid prototype, we might think of this as still
working on the rapid prototype and since I want you to improve your
Java coding skills, you may use whatever parts of your existing code
As further background on this project, and as an example of a final
exam for this course, I am providing last
year's final as well as an ideal solution submitted by Nicholas
project plan, and training plan. Note,
your prototype is not required to implement all of the features
discussed in the Final. Work only on the requirements specified
here and, where appropriate, in last week's assignment.
In addition to previous requirements:
2b.1. The user interface should also have a pause/resume button.
When a song is playing, clicking the pause button should pause the
player. When paused, pressing the play or resume button should
restart the song from where it was. It is ok if you want to make
this a single button that toggles its label and function.
2b.2. Contrary to the previous requirements, the thumbs down button
should interrupt the song and begin the next one. (That is, from
the user's perspective, the behavior of the thumbs down and the skip
buttons are the same.)
2b.3. I will provide a folder of songs. Your prototype must
process that folder and play the songs in that folder. That is,
if I provide fifteen songs, all fifteen must stand a chance of getting
played. Similarly, if I give you a folder with a hundred songs.
2b.4. It would be desirable to support both mp3 and ogg song
formats. However, you may focus on a single format, provided that
you inform me of your choice 48 hours prior to the deadline.
As you work on this project, be sure
to use appropriate documentation in the code and informative log
messages when committing changes in CVS.
Submission Instructions You will not need to do anything special for
submission. At the deadline, I will checkout the the current
code-base and test it. (You will want to be sure all changes are
committed to CVS.)