aboutsummaryrefslogtreecommitdiff
path: root/report/report.ms
diff options
context:
space:
mode:
Diffstat (limited to 'report/report.ms')
-rw-r--r--report/report.ms43
1 files changed, 38 insertions, 5 deletions
diff --git a/report/report.ms b/report/report.ms
index 7b5da9c..2f8e637 100644
--- a/report/report.ms
+++ b/report/report.ms
@@ -1,9 +1,12 @@
.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..
@@ -16,13 +19,17 @@ You can easily clone the project from there.
.NH
UML Diagram
+
.PP
-You can zoom-in easily since the quality of the diagramm is great
+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.
@@ -33,21 +40,27 @@ My main sources of knowledge comes from Stackoverflow, javaTpoint, Oracle and w3
.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.
+Neovim, as my text editor alongside some plugins and snippets to make my life easier.
+.IP \(bu 2
+Deoplete, ultisnips and vim-javacomplete2 as my vim plugins.
.IP \(bu 2
Plantuml and groff to, respectively, generate my UML diagram and my report.
.NH 2
Code
+
+.NH 3
+Generalities
+
.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
@@ -57,8 +70,23 @@ The whole thing can actually be launched by using the run file (./run). It's jus
.PP
Lots of commands are available so a quick peek at the help page (h) is recommended.
+.NH 3
+Classes and enums
+.PP
+I made four classes that are meant to be Serialized : Song, AudioBook, Album and Playlist.
+.PP
+Those are instanciated into objects a lot since they're the base of an app managing songs and other elements evolving around it.
+.PP
+Song and AudioBook both extend the MusicalElement which is an abstraction class. But Album and Playlist are standalone, they're just implementing Serializable like MusicalElement.
+
+.PP
+The other files contains the enums. There is Genre for Song but also Category and Language used as attributes for AudioBook.
+
+.bp
+
.NH 2
Abstraction and Interface
+
.PP
The abstract class is MusicalElement which is instanciated by Song and AudioBook.
.PP
@@ -66,15 +94,20 @@ The interface used in this project is the Serializable one. It is used by Musica
.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.
+.PP
+I did this to both, debug my code while testing it and to make informative messages to the user so he can know what's going on behind the program.
.NH
Difficulties
+
.PP
-I honestly had difficulties everytime I got back on my code to build new stuff.
+I honestly had difficulties everytime I got back on my code to build new stuffs.
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.