






Hotspots: Admin Pages | Turn-in Site |
Current Links: Case Final Project Summer 2007
Spring 2001 Project Milestones
See Spring 2001 Project Assignment Description for the overview description of the project.
Milestone P1: Creating and Playing SoundFileGroups - Due January 30 in class.
This is an INDIVIDUAL milestone - everyone must turn in a separate project.
Define a SoundFileGroup class that can respond to the following protocol:
- s := SoundFileGroup match: #('.mp3' '.midi') from: 'e:\soundfiles\' binds s to a SoundFileGroup of all files whose filenames contain the match substrings anywhere in the subdirectory structure starting with the from path.
- s printString returns a String containing the full pathname of each of the files in the SoundFileGroup s.
- s fileArray returns an array of strings, each of which is the full pathname of each of the files in the SoundFileGroup s.
- s playAndWait plays each of the found files, and doesn't return control to the user until all the found files are done.
- s startPlaying starts playing the found files and returns access to the user.
- s stopPlaying stops playing the found files that are playing in the background.
In class, please turn-in well-documented, hardcopy source code (at least two lines of comments for each non-accessor method, in-line comments at significant portions) with your name, section, and student number on it. In addition, before class time, turn-in your code using the Spring 2001 Turnin Information with the code 'P1'.
NOTE ADDITION TO ASSIGNMENT
We're going to make it a requirement that your project has to work cross-platform. It's pretty easy to do this, e.g., FileDirectory slash will return the path delimiter for the current platform ("/" for *nix, ":" for Mac, "\" for those other OS...:-). Mark Guzdial
Grading:
- 20% Good Smalltalk style: 10% Good reuse, 5% variable names start with lowercase letters, 5% good comments.
- 80% Correct implementation:
- 10% Correct filename matching
- 10% Correct subdirectory walk
- 10% Successful printString implementation: returns a String, contains all files
- 5% Successful fileArray implementation: returns an Array, contains all files as String pathnames
- 25% Successful playAndWait: Can play MIDIs (10%), can play MP3 (10%), can play WAV and AIFF (5%)
- 20% Successful startPlaying and stopPlaying
Questions on Sp2001 P1 Milestone
Milestone P2: An Interface for SoundFileGroups - Due Feb 13 in class
Your teams must be defined by this date. Use the page Sp2001 Team-Forming Discussion for advertising and forming your team. A team can be no more than four people, no fewer than two, with members from any section of 2340. No team divorces will be allowed after P3! Please pick a Team Name.
You must now provide an interface for P1 (you can pick any team members' P1 to extend, or you can start from scratch, or you can combine team members' P1). From the command JukeBox start, the user should be given an interface where she can:
- Choose a directory to start a search from
- Type some strings to serve as search patterns
- See the files resulting from the search
- Start playing the files
- Stop playing the files.
In class, please turn-in:
- CRC Card analysis of UI system: Classes considered and rejected, and CRC cards for each class in the user interface. It's REQUIRED to hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram of UI classes with a description of each class and what it's methods do.
- Well-documented, hardcopy source code (at least two lines of comments for each non-accessor method, in-line comments at significant portions) with your Team Name and all team members' names, sections, phone numbers, and student numbers on it. The phone numbers are for us to use if teams lose touch with one another.
In addition, before class time, turn-in your code using the Spring 2001 Turnin Information with the code 'P2'.
Grading:
- 20% Good CRC card analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 30% Good UML class diagram: Correct usage of notation (10%), detailed and understandable descriptions and names (20%).
- 10% Well-documented and good style source code
- 40% Working system: 10% for selecting directory in some reasonable way, 10% for making the match and seeing the files, 20% for playing and stopping files
Note: If the TAs can't figure out how to do these things, they don't have to give you the points. The UI must be usable.
Questions on Sp2001 P2 Milestone
Milestone P3: Group Design and Plan - Due Feb 20 in class
Teams must turn in a HARDCOPY detailed group plan. This should include:
- CRC card analysis for ENTIRE system (through P5). It's REQUIRED to hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram for ENTIRE system with descriptions for each class. You may use any other UML diagrams in addition to a class diagram that you would like in order to describe your system.
- Description of what each team member is going to be responsible for.
- Internal group timeline with dates and milestones
Obviously, the design will change over the following months, but we want to see that you've thought through everything UP FRONT.
Hardcopy, with TEAM NAME on front at class time.
Grading:
- 25% Good CRC Card Analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 25% Good UML class diagram and descriptions: Correct usage of notation (10%), detailed and understandable descriptions and names (15%).
- 30% Clear definition of team member responsibilities: Can you tell who will do which pieces of system (as defined in UML and descriptions)? Will you be able to figure out whose part failed if there's a failure?
- 20% Believable and detailed group timeline: Could someone figure out from this what they're supposed to be doing each week? Can a team member figure out what they're supposed to have done each week from this?
Questions on Sp2001 P3 Milestone
Milestone P4: Web-based Interface - Due March 13 in class
Your team is now to implement all of the functionality of P2, but as a Web-based interface. After the user executes JukeBox playStart, users should be able to access your computer as a server from Netscape or IE with http://yourIP:8080/jukebox. They should be able to do all of the same things as P2, but from a web-based interface. You can use PWS or Comanche, but don't assume that the TAs have anything more than a raw 2.8 image (i.e., if you want Comanche, include it in your fileout). YOU ONLY HAVE TO DEAL WITH MP3 AND MIDI HERE! NO WAV OR AIFF!
Implementing Jukeboxes in Browsers
In class, please turn-in:
- CRC Card analysis of UI system: Classes considered and rejected, and CRC cards for each class in the user interface. It's REQUIRED to hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram of UI classes with a description of each class and what it's methods do.
In addition, before class time, turn-in your code using the Spring 2001 Turnin Information with the code 'P4'.
Grading:
- 15% Good CRC card analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 25% Good UML class diagram: Correct usage of notation (10%), detailed and understandable descriptions and names (20%).
- 10% Well-documented and good style source code
- 50% Working system: 20% for selecting directory in some reasonable way, 10% for making the match and seeing the files, 20% for playing and stopping files. Note: If the TAs can't figure out how to do these things, they don't have to give you the points. The UI must be usable.
Questions on Sp2001 P4 Milestone
Milestone P5: PlayLists - Due March 27 in class
Your users don't want to do searches every time that they want to play songs. Rather, they'd like to:
- Do a search and name the result as a PlayList
- Be able to do more searches and include the results into a PlayList
- Be able to selectively remove files from a PlayList
- Be able to save and load PlayLists
You are to provide the above functionality, for both your Squeak-based and Web-based interfaces.
In class, please turn-in:
- CRC Card analysis of UI system: Classes considered and rejected, and CRC cards for each class in the user interface. It's REQUIRED to hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram of UI classes with a description of each class and what it's methods do.
In addition, before class time, turn-in your code using the Spring 2001 Turnin Information with the code 'P5'.
Grading:
- 15% Good CRC card analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 25% Good UML class diagram: Correct usage of notation (10%), detailed and understandable descriptions and names (20%).
- 10% Well-documented and good style source code
- 50% Working system: 20% that all of the P2/P4 functionality continues to work, 10% for being able to include searches into PlayLists, 10% for being able to delete files from PlayLists, 10% for being able to save and load PlayLists.
Note: If the TAs can't figure out how to do these things, they don't have to give you the points. The UI must be usable.
Questions on Sp2001 P5 Milestone
Milestone P6: The Web is Your Disk - Due April 12 in class
Your users no longer want to just have their own disk as their source. They want to do searches on sound websites like http://www.mp3.com and http://www.listen.com. Provide the user the ability to:
- Select a website from the ones that you provide (at least these two must be provided).
- UPDATED!: Provide a field for the user to specify HOW MANY matches to return (to avoid returning thousands of responses to the search string "mp3").
- Do a search
- Add the files found into the PlayList
- Play the files from the PlayList
You are to provide the above functionality, for both your Squeak-based and Web-based interfaces.
In class, please turn-in:
- CRC Card analysis of UI system: Classes considered and rejected, and CRC cards for each class in the user interface. It's REQUIRED to hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram of UI classes with a description of each class and what it's methods do.
In addition, before class time, turn-in your code using the Spring 2001 Turnin Information with the code 'P6'.
Grading:
- 15% Good CRC card analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 25% Good UML class diagram: Correct usage of notation (10%), detailed and understandable descriptions and names (20%).
- 10% Well-documented and good style source code
- 50% Working system: 10% for selecting website in some reasonable way, 10% for making the match and seeing the files, 20% for playing and stopping files
Note: If the TAs can't figure out how to do these things, they don't have to give you the points. The UI must be usable.
Note2: REASONABLE ERROR MESSAGES MUST BE GENERATED! If you can't do the search for some reason (e.g., website changes its format), it's acceptable to inform the user of that. Core dump or debugger notifier are not acceptable error messages.
For help, see How to Mine Web Pages
Questions on Sp2001 P6 Milestone
Milestone P7: Disk or Web is Invisible - Due April 24 in class
You must now provide the PlayList functionality (saving/loading, deleting files, everything) for files from the Disk or the Web. In other words, whether the files are coming from the server's local disk or the Web should become invisible. In addition, add at least one other website that has MP3 or MIDI sound files on it.
You are to provide the above functionality, for both your Squeak-based and Web-based interfaces.
In class, please turn-in:
- CRC Card analysis of UI system: Classes considered and rejected, and CRC cards for each class in the user interface. It's REQUIRED to hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram of UI classes with a description of each class and what it's methods do.
In addition, before class time, turn-in your code using the Spring 2001 Turnin Information with the code 'P6'.
Grading:
- 10% Good CRC card analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 25% Good UML class diagram: Correct usage of notation (10%), detailed and understandable descriptions and names (20%).
- 10% Well-documented and good style source code
- 55% Working system: 5% for additional website, 20% that all of the P2/P4/P6 functionality continues to work, 10% for being able to include Web searches into PlayLists, 10% for being able to delete files from PlayLists, 10% for being able to save and load PlayLists.
Note: If the TAs can't figure out how to do these things, they don't have to give you the points. The UI must be usable.
Note2: REASONABLE ERROR MESSAGES MUST BE GENERATED! If you can't do the search for some reason (e.g., website changes its format), it's acceptable to inform the user of that. Core dump or debugger notifier are not acceptable error messages.
Questions on Sp2001 P7 Milestone
Links to this Page