CST2550 May Resit/Deferral Coursework 2 1 May Coursework 2 November 26, 2020 1 Brief Task Description Design and implement software for a DJ which allows searching a large number of songs by artist...

Design and implement software for a DJ which allows searching a large number of songs by artist name and adding songs to a ‘play-list’. ALL TASKS NEED TO BE COMPLETED !!!. Needs to be written in Java code on Emacs. Software needs to operate and run on Linux Lab Setup - Virtual Box.


CST2550 May Resit/Deferral Coursework 2 1 May Coursework 2 November 26, 2020 1 Brief Task Description Design and implement software for a DJ which allows searching a large number of songs by artist name and adding songs to a ‘play-list’. When playing it should play the audio of the songs in the play-list in order. You should consider the most appropriate data structure(s) and algorithm(s) to implement these features. Your design, including analysis of the time complexity of your solution, will be presented as a five minute recorded screencast of you describing the work whilst showing your presentation slides. 2 Submission You must submit a single PDF file of your presentation slides; a single mp4 file of your presentation and a single zip file of your source code. The presentation should be a screencast recording showing your presentation slides with you clearly describing your work. The maximum length of the presentation is five minutes (if it is longer only the first five minutes will be marked). The structure of the presentation is described later in this document. Note: • Only source code (.java) files should be included in the zip file, not IDE files (any other files will not be used when marking your work) • All code should be written by you, e.g. no scene builder/FXML files should be included • No third party libraries/jar files should be used • Code must compile and run on the Linux lab setup, code which does not compile on the lab setup will achieve a maximum of 40% • As anonymous marking will be applied, you should not include your name in your source code, presentation or presentation slides • To allow anonymous marking you should name your submitted files using your student ID, e.g. M0012345.zip, M0012345.mp4 and M0012345.pdf 3 Scenario A DJ requires software to create play-lists by searching for songs and inserting them in the given position in the play-list. At initial release, it is expected that there will be several million songs, and the number will continue to grow with time. The list of songs (and mp3 files) will be sourced separately, so you do not need to focus on creating these (a sample song list and single audio file will be provided for development and testing). This data should not be hardcoded in your program and it should be possible to load another file instead of this sample file without recompilation (e.g. using a command line argument). The song list file will be formatted as one song per line, and will include (separated by tabs): • song title 2 • artist • playing time • mp3 file name You can assume that no two songs have the same title. The application should have an intuitive user interface which allows the user to search for a song by artist name and add songs to a specified position of the play-list. The user should have controls to start and stop the play-list. When a song is played it should be removed from the play-list. The user should also be able to add songs to the play-list; delete songs from the play-list and change the order of the remaining songs in the play-list. The most common functions are • search song in library (by artist name) • add song to play-list • play songs in play-list (in order) • reorder or delete songs in the play-list therefore, performance should be taken into consideration. 4 Detailed description It is recommended that you complete the tasks in the following order as the later sub-tasks will require the earlier ones. 4.1 Song class Implement a class to hold the details of a song, each line from the data list will be used to initialise an object of type ‘Song’. 4.2 Design and Implement Logic Select appropriate data structures and design the class(es) and methods to use these data structures to achieve the required functionality: • add song(s) to song library • search song library for a song by artist name • add song to a given position in the play-list • play next song in (and remove from) play-list • retrieve songs in play-list (to view) • reorder songs in the play-list • delete song from play-list When selecting data structure(s) to use in your solution, you should consider the time complexity, especially the most frequently used functionality. Analysis of the time complexity should be included in your presentation with your design. You should then implement your design and test it with the sample data. 3 4.3 Graphic user interface Design and implement a GUI using JavaFX. The GUI should make use of the class(es) you implemented to enable required functionality of the system. The GUI will have an intuitive user interface to execute the functionality previously mentioned. 5 Presentation structure The five minute presentation should include the following: • Introduction – brief description of what the presentation will be about (not the coursework task specification) – brief description of the layout of the rest of the presentaiton • Design, including – description of data structures to be used – pseudo code – analysis of time complexity of solution – GUI mock-ups/wireframe diagrams (not screen shots of final application) • Testing – statement of the testing approach(es) used – description of how this testing approach was applied – evidence of testing, e.g. testing result tables • Conclusion – summary of work done – limitations of your approach and critical reflection of your work – how you would approach a similar project differently in future 6 Marking The presentation and code will be marked according the to attached marking scheme. Marking will be anonymous, i.e. the marker will not see the name of the student while marking. 7 Marking Scheme 7.1 Presentation Item Marks Introduction 7 Design (including time-complexity analysis) 15 Testing 8 Conclusion 10 Clear and logical flow of presentation 5 Layout and clarity of presentation slides 5 7.2 Code Item Marks 4 Code quality (e.g. comments, naming, layout, exception handling, etc.) 5 Search for song (by artist name) 8 Add song to play-list 7 Reorder songs in play-list 5 Play play-list (play next song in play-list and remove song from play-list) 6 Controls while playing (start and stop) 4 Display play-list 4 Delete a song from play-list 4 Intuitive user interface 7
Jan 10, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here