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 e1ba6c2596
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

@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)
alt Sélection d'un pack
    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 -> Pack: Ajoute le like de l'utilisateur au pack
        Pack --> Application: Confirme l'ajout du like au pack
        Application --> UI: Affiche un message de succès pour le like du pack
    end
else Sélection d'une carte
    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 -> 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 de la carte
    end
end
@enduml