aboutsummaryrefslogtreecommitdiff
path: root/report/report.ms
diff options
context:
space:
mode:
Diffstat (limited to 'report/report.ms')
-rw-r--r--report/report.ms77
1 files changed, 77 insertions, 0 deletions
diff --git a/report/report.ms b/report/report.ms
new file mode 100644
index 0000000..5c3b056
--- /dev/null
+++ b/report/report.ms
@@ -0,0 +1,77 @@
+.TL
+jMusicHub - OOP Project Report
+.AU
+Aimeric ADJUTOR
+.AI
+ESIEA
+.AB
+This document comes with a javadoc and files for a program named jMusicHub.
+Here, I'll try to state why I did some stuff the way I did, the tools I used, the difficulties, and so on..
+.AE
+
+.NH
+UML Diagram
+.PP
+You can zoom-in easily since the quality of the diagramm is great
+.
+.PSPIC ../umlDiagram/output.eps 8
+.bp
+.NH
+Student contribution
+.PP
+Since I did it alone, every part of the code has been done by myself.
+
+.PP
+I used different kinds of help when I was confronted to some errors and also to learn new things because I'm new with the Java programming language.
+.PP
+My main sources of knowledge comes from Stackoverflow, javaTpoint, Oracle and w3schools.
+
+.NH
+Work done
+.NH 2
+Tools
+.PP
+For starters, the tools I used for this project are :
+.IP \(bu 2
+Neovim, as my text editor alongside some plugins and snippets to make my life easier.
+.IP \(bu 2
+Void linux, as my OS.
+.IP \(bu 2
+Deoplete, ultisnips and vim-javacomplete2 as my plugins.
+.IP \(bu 2
+Plantuml and groff to, respectively, generate my UML diagram and my report.
+
+.NH 2
+Code
+.PP
+I coded with some freedom as the specifications were sometimes not clear. I suppose it was written this way to mimic specifications done by a client.
+.PP
+My "main" program is jMusicHub.java, it's basically the app you'll want to run to do anything. The other files are just the different objects that we create thanks to jMusicHub.
+.PP
+The whole thing can actually be launched by using the run file (./run). It's just a simple bash program that compile (javac) and launch (java).
+.PP
+Lots of commands are available so a quick peek at the help page (h) is recommended.
+
+.NH 2
+Abstraction and Interface
+.PP
+The abstract class is MusicalElement which is instanciated by Song and AudioBook.
+.PP
+The interface used in this project is the Serializable one. It is used by MusicalElement (therefore, Song and AudioBook), Album and Playlist. It's used to store the objects created into files. One for each types (songs, audiobooks, albums and playlists).
+
+.NH 2
+Exceptions
+.PP
+Most exceptions are handled the same way because they appear on the same patterns.
+.PP
+We basically abort the tasks or create empty objects when necessary and display something to the user to keep him up-to date.
+
+.NH
+Difficulties
+.PP
+I honestly had difficulties everytime I got back on my code to build new stuff.
+The websites, given at the beginning, were really helpful.
+.PP
+The first big difficulty was to understand what was the Serialization and how to use it. It took me some time but thanks to websites and indications given by some classmates I managed to implement it in my code.
+.PP
+Other difficulties were managed by, somehow, finding a solution online or aborting my idea and using other ways to achieve what I was looking for.