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