You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Loris OBRY d7f0bd0e5a
continuous-integration/drone/push Build is passing Details
Mise à jour de 'README.md'
2 years ago
Sources Modification carte 2 years ago
.drone.yml modif yml publish 2 years ago
.gitignore Ajouter '.gitignore' 2 years ago
README.md Mise à jour de 'README.md' 2 years ago
XMLFile1.xml Mise à jour de 'XMLFile1.xml' 2 years ago

README.md

Diagramme de classe

@startuml

Class User {
    - String pseudo
    - String mot_de_passe
}

Class Carte {
    - String nom
    - String description
    - String pouvoir
    - String strategies
    - int note
    - String lienImage
    - List<Commentaire> commentaires
    - Set<User> likes
    + void addCommentaire(User)
    + void removeCommentaire(User)
    + bool hasLiked(User)
    + void addLike(User)
    + void removeLike(User)
}

Class Commentaire {
    + String contenu
    + int signale
    + int nblike
    + int nbdislike
    + Set<User> likes
    + bool hasLiked(User)
    + void addLike(User)
    + void removeLike(User)
}

Class Pack {
    + String nom
    + String description
    + int note
    + String lienImage
    + Set<Carte> cartes
    + List<Commentaire> commentaires
    + Set<User> likes
    + void addCommentaire(User)
    + void removeCommentaire(User)
    + bool hasLiked(User)
    + void addLike(User)
    + void removeLike(User)
}

Class Camp {
    + String nom
    + String description
    + String lienImage
    + Set<Carte> cartes
}

User --> Pack
User --> Carte
User --> Commentaire
Commentaire *--> Pack
Commentaire *--> Carte
Pack --|> Carte
Camp --|> Carte

hide circle
allowmixing
skinparam classAttributeIconSize 0
skinparam classBackgroundColor #ffffb9
skinparam classBorderColor #800000
skinparam classArrowColor #800000
skinparam classFontColor #black
skinparam classFontName Tahoma

@enduml

Voici le diagramme de classe général représentant les classes et leurs attributs. Il faut noter que nous avons utiliser les propriété a la place des attributs afin de définir des règles de lecture et d'écriture directement.

Diagramme de classe pour la persistance

@startuml

Class User {
}

Class Carte {
    - List<Commentaire> commentaires
    - Set<User> likes
}

Class Commentaire {
    + Set<User> likes
}

Class Pack {
    + List<Commentaire> commentaires
    + Set<User> likes
}

Class Camp {
}

User --> Pack
User --> Carte
User --> Commentaire
Commentaire *--> Pack
Commentaire *--> Carte
Pack --|> Carte
Camp --|> Carte

hide circle
allowmixing
skinparam classAttributeIconSize 0
skinparam classBackgroundColor #ffffb9
skinparam classBorderColor #800000
skinparam classArrowColor #800000
skinparam classFontColor #black
skinparam classFontName Tahoma

@enduml

es seules données pouvant être modifiées dans le modèle Master-Detail sont les commentaires et les likes des packs et des cartes. Ainsi, ce sont les seules données qui sont enregistrées à chaque modification, ajout ou suppression.

Likes

Chaque utilisateur ne peut 'liker' qu'une fois une carte/pack, on utilise donc un set pour avoir des clés uniques, évitant les doublant. Le set nous permet également d'effectuer des opération de recherche plus rapidement pour verifier si un utilisateur à déjà 'liker' ou non.

Commentaires

Chaque utilisateur peut commenter autant de fois qu'il veut une carte/pack, il peut également supprimer les commentaires qu'il à écrit.

Diagramme de séquence

plantuml``` @startuml actor User participant "User Interface" as UI participant Application participant Pack participant Carte

User -> UI: Sélectionne une carte/pack à liker UI -> Application: Demande de like pour la carte/pack sélectionné(e) Application -> Pack: Vérifie si l'utilisateur a déjà liké le pack alt Pack déjà liké par l'utilisateur Application --> UI: Affiche un message indiquant que le pack a déjà été liké else Application -> Carte: Vérifie si l'utilisateur a déjà liké la carte alt Carte déjà likée par l'utilisateur Application --> UI: Affiche un message indiquant que la carte a déjà été likée else Application -> Pack: Ajoute le like de l'utilisateur au pack Pack --> Application: Confirme l'ajout du like au pack Application -> Carte: Ajoute le like de l'utilisateur à la carte Carte --> Application: Confirme l'ajout du like à la carte Application --> UI: Affiche un message de succès pour le like effectué end end @enduml