continuous-integration/drone/push Build is passing
Details
|
2 years ago | |
---|---|---|
Sources | 2 years ago | |
.drone.yml | 2 years ago | |
.gitignore | 2 years ago | |
README.md | 2 years ago | |
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