This is our final solution for the Object Oriented Design course, which was graded 5/5. Music Organizer is a desktop application for managing and playing audio files in a hierachical album structure. It has an undo/redo feature, Search based albums (flagged soundclips, great sound clips)
- Uses Design-by-Contract with java assertions (post/pre conditions)
- Memento Pattern for undo/redo
- Follows Model-View-Controller pattern
- Coded as a pair programming project
- Albums have a tree datastructure
- Iterative methods to removeClipFromSubAlbums and addClipToSubAlbums
- A clip added to a subalbum is automatically added to the parent album
- A clip removed from the parent album is removed from the sub albums
Now this project uses Maven and JavaFX 21 (dependencies in pom file)
- Java JDK 17
- Maven installed Right now the pom file is configured for mac-aarch64:
<javafx.platform>mac-aarch64</javafx.platform>Change:
<javafx.platform>win</javafx.platform> <!-- for Windows -->
<javafx.platform>linux</javafx.platform> <!-- for Linux -->- Clone
git clone https://github.com/AlberthMartin/OOD-Course-MusicOrganizer-App.git
cd OOD-Course-MusicOrganizer-App- Build
mvn clean install- Run
mvn javafx:run