diff --git a/README.md b/README.md
index 0ebfaef..da32bae 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
# Linaris_MAUI_SAE_201
+Linaris est disponible sur Windows et Android via Visual Studio.
+
+
#### Description de l'architecture

@@ -28,6 +31,15 @@ Afin de lier nos différents projets, nous avons ajouté des **dépendances**. E
Par ailleurs, nous avons aussi ajouté la dépendance vers **XUnit** pour le projet des *tests unitaires* et la dépendance vers **ToolKit** pour les vues afin de pouvoir utiliser *MediaElement* pour la lecture de médias.
+
+
+Nous récupérons les musiques des utilisateurs par le biais du chemin absolu du système de fichier.
+Nous proposons Linaris sur les plateformes **Windows** et **Android**.
+Enfin, nous avons utilisé *Drone* pour notre **CI** et **CD**. En effet, nous avons ajoutés une pipeline avec un job de **build**, un job de **tests** de l'application et un job d'**inspection de code** pour pouvoir y accéder via *SonarCube*. Pour la CD, nous avons aussi un job pour la génération automatique de **Doxygen**.
+
+
+
+
---
## Diagramme de classe
@@ -645,21 +657,33 @@ comme la sérialisation (**Serialization**) ou encore les stubs (**Stub**).
La **sérialisation** a besoin du **stub** pour pouvoir stocker et charger les informations présentes dans les différents fichiers de sauvergarde.
+Dans ce projet, nous avons les classes Album, Artist, CustomTitle, Genre, InfoTitle, Manager, Playlist et Title, mais aussi l'interface IDataManager.
+
+Stub contient quant à lui StubAlbum, StubArtist, StubCustomTitle, StubInfoTitle, StubManager et StubPlaylist.
+
+Enfin, Serialization contient la classe LinqXmlSerialization
+
#### Linaris
Ce paquet contient nos différentes vues codées en C#/XAML.
Nos vues (*Linaris*) ont besoin de Model afin d'effectuer le data-binding pour que notre application ne soit pas uniquement graphique.
+Linaris contient les classes AlbumPage, App, AppShell, FooterPage, Layout, LocalFilesPage, MainPage, MauiProgram, PlaylistPage et PlaylistsPage.
+
#### Console
Ce paquet contient une application console C#. Elle contient donc nos tests fonctionnels de notre application.
Pour effectuer différents tests fonctionnels sur nos différentes classes du modèle, l'application console (**Console**) a besoin de celui-ci.
+Console ne contient que la classe Program.
+
#### TestUnitaires
Ce paquet contient les tests unitaires de nos différentes classes. Il utilise *xUnit* pour les réaliser.
Pour effectuer ceux-ci, le paquet correspondant (**TestUnitaires**) dépend du modèle.
+TU_Album, TU_Artist, TU_CustomTitle, TU_InfoTitle, TU_Manager, TU_Playlist et TU_Title sont les classes contenues par TestUnitaires.
+
---
## Diagramme de séquence
@@ -694,6 +718,16 @@ Notre sérialisation permet de sauvegarder nos données dans des fichiers *XML*
Cette méthode est appelée lorsque l'utilisateur démarre l'application *Linaris* (MAUI). Celle-ci appelle ensuite les différentes fonctions de chargement codées en *C#* présentes dans la classe *LinqXmlSerialization*. Grâce à la bibliothèque **LINQ_XML**, la sérialisation peut récupérer les données présentes dans les différents fichiers pour les classes **Artist**, **CustomTitle** et **Playlist** et les mettre dans les différentes *ObservableCollection*. Pour les classes **InfoTitle** et **Album**, les données sont récupérées dans les collections des stubs correspondant et les mettre dans les différentes *ObservableCollection*. Les données sont ensuite utilisables par les vues via le **manager**.
+| Step | Explanation |
+| ----------- | ----------- |
+| 1 | L'utilisateur lance l'application via sont téléphone Android ou Windows,lançant le programme de Linaris |
+| 2 | L'événement de création de App appelle la méthode de sérialisation des données |
+| 3 | Le DataManager va charger les données dans des listes, que ce soit des données chargées des stubs ou chargées d'un fichier par le biais du LINQ |
+| 4 | Les listes sont retournées au Manager afin de lui donner l'accès à ces données |
+| 5 | Afin de charger les albums, les titres informatifs et artistes, le DataManager va aussi charger ces données par les stubs |
+| 6 | La liste chargée des informations est retournée au Manager |
+| 7 | Après les chargement, le Manager a accès aux données utilisateurs et aux titres informatifs, albums et artistes, permettant l'affichage des albums sur la page d'accueil au lancement de l'application, mais aussi des autres données sur les différentes vues de Linaris |
+
### NextTitle()
```plantuml
@@ -731,6 +765,17 @@ la fonction **NextTitle** de la classe *Playlist* est appelée. Si le booléen *
la fonction retourne un titre aléatoire en générant un nombre aléatoire compris entre 0 et la taille de la playlist (nombre de titres) grâce à la fonction **RandomGenerator** de la playlist.
À l'inverse, si le booléen *shuffle* est faux, la fonction retourne le titre suivant en incrémentant de 1 l'index du son actuel.
+| Step | Explanation |
+| ----------- | ----------- |
+| 1 | L'utilisateur intéragit avec le bouton de musique suivante du footer |
+| 2 | Cet événement déclenche la méthode NextTitle du code-behind |
+| 3 | Si aucune musique n'est en train d'être jouée, la méthode ne fait rien |
+| 4 | Sinon, le Manager va chercher le morceau suivant de la playlist actuelle |
+| 5 | Si l'option de lecture du morceau en boucle est activée, le même morceau est renvoyé |
+| 6 | Si l'option de lecture en boucle est désactivée mais que la lecture en aléatoire l'est, un morceau aléatoire de la plyalist actuelle est renvoyée en choisissant ce morceau par un index |
+| 7 | Sinon, cela renvoie le morceau à la suite du morceau en cours dans la playlist actuelle |
+| 8 | Le Manager peut donc renvoyer le morceau à jouer au Footer |
+| 9 | Le footer peut donc lancer la lecture du morceau à jouer |
---