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.
208 lines
5.9 KiB
208 lines
5.9 KiB
[retour au README.md](../../README.md)
|
|
[Retour aux Documents](../README_DOCUMENTS.md)
|
|
|
|
# Diagrammes nécéssaires à notre projet
|
|
|
|
## Diagrammes de classes
|
|
- [issue028 - Importation de fichiers .fit](DiagrammeDeClasses/README_issue028.md)
|
|
|
|
- Diagramme de classe pour l'ajout d'amis
|
|
```plantuml
|
|
class User {
|
|
+ name : string
|
|
}
|
|
|
|
User "1" --> "*" User: friends
|
|
User "1" --> "*" Notification: notifications
|
|
User "1" --> "*" Ask: friendRequests
|
|
class Notification {
|
|
- text : string
|
|
}
|
|
|
|
interface INotifier {
|
|
+ notify() : void
|
|
}
|
|
|
|
INotifier --|> Observer
|
|
|
|
abstract class UserManager {
|
|
- currentUser : User
|
|
+ deleteFriend(userId : int) : void
|
|
+ addFriend(userId : int) : void
|
|
+ respondToFriendRequest(requestId : int, choice : bool) : void
|
|
+ getFriends(userId : int) : User[]
|
|
}
|
|
|
|
class Ask {
|
|
- fromUser : int
|
|
- toUser : int
|
|
}
|
|
|
|
Ask --|> Subject
|
|
|
|
abstract class Subject {
|
|
+ attach(o : Observer) : void
|
|
+ detach(o : Observer) : void
|
|
+ notify() : void
|
|
}
|
|
|
|
Subject "1" --> "*" Observer
|
|
interface Observer {
|
|
+ update() : void
|
|
}
|
|
|
|
UserManager ..> User
|
|
UserManager o-- IUserRepository
|
|
UserManager o-- INotifier
|
|
|
|
interface IUserRepository {
|
|
+ findByUsername(username : string) : User
|
|
+ addUser(user : User) : bool
|
|
}
|
|
|
|
IUserRepository ..> User
|
|
```
|
|
## Diagrammes de séquence
|
|
- Envoi de demande d'ami :
|
|
```plantuml
|
|
actor User as u
|
|
boundary View as v
|
|
control Controller as c
|
|
entity Model as m
|
|
|
|
u->v:/Friend
|
|
v->c:Get : /Friends
|
|
c->m:getFriends(userId)
|
|
m-->c::friends : User[]
|
|
c-->v:renderView(Friends)
|
|
v-->u:
|
|
u->v:input : name
|
|
v->c:Get : searchFriends? pseudo=name
|
|
c->m:searchUser(name:string)
|
|
m->m:notify(from : user, to : user, action : action)
|
|
m-->c:OK
|
|
c-->v:OK
|
|
v-->u:OK
|
|
```
|
|
- Accepter une demande d'ami :
|
|
```plantuml
|
|
actor User as u
|
|
boundary View as v
|
|
control Controller as c
|
|
entity Model as m
|
|
|
|
m->c:RecevoirDemandeAmi(idUser)
|
|
c->v:AfficherDemandeAmi(idUser)
|
|
v->u:PageDemandeAmi(idUser)
|
|
u-->v:RepondreDemandeAmi(bool)
|
|
v-->c:EnregistrerReponse(bool)
|
|
c-->m:EnvoyerReponse(bool)
|
|
```
|
|
|
|
- Supprimer un ami :
|
|
```plantuml
|
|
actor User as u
|
|
boundary View as v
|
|
control Controller as c
|
|
entity Model as m
|
|
|
|
u->v: Request Friends Page
|
|
v->c: Get /Friends
|
|
c->m: getFriends(userId)
|
|
alt successful retrieval
|
|
m-->c: friendsList: User[]
|
|
else retrieval failed
|
|
m-->c: error
|
|
end
|
|
c-->v: renderView(friendsList)
|
|
v-->u: Display Friends
|
|
|
|
u->v: clickDeleteFriend(idUser)
|
|
v->c: Post: deleteFriend(idUser)
|
|
c->m: deleteFriend(idUser)
|
|
alt successful deletion
|
|
m-->c: updatedFriendsList: User[]
|
|
else deletion failed
|
|
m-->c: error
|
|
end
|
|
c-->v: renderView(updatedFriendsList)
|
|
v-->u: Display Updated Friends
|
|
```
|
|
## Diagrammes de cas d'utilisation
|
|
- Cas d'utilisation pour la gestion du compte et des amitiés
|
|
```plantuml
|
|
left to right direction
|
|
:Athlete: as a
|
|
|
|
a --> (Ajouter un ami)
|
|
a --> (Supprimer un ami)
|
|
a --> (Voir mes amis)
|
|
a --> (Modifier mes informations)
|
|
(Ajouter un ami)->(Saisir le nom de l'ami)
|
|
(Supprimer un ami)..>(S'authentifier) : <<include>>
|
|
(Ajouter un ami)..>(S'authentifier) : <<include>>
|
|
(Voir mes amis)..>(S'authentifier) : <<include>>
|
|
(Voir mes amis)..>(Lister les amis) : <<include>>
|
|
(Modifier mes informations)..>(Informations personnelles) : <<extends>>
|
|
(Modifier mes informations)..>(Informations de connexion) : <<extends>>
|
|
(Lister les amis)..>(Voir son profil) : <<include>>
|
|
(Voir son profil)..>(Voir ses activités) : <<extends>>
|
|
(Voir son profil)..>(Voir ses statistiques) : <<extends>>
|
|
(S'authentifier)..>(S'inscrire) : <<extends>>
|
|
(S'authentifier)..>(Se connecter) : <<include>>
|
|
(S'inscrire)..>(Inscription Athlète) : <<include>>
|
|
```
|
|
|
|
- Cas d'utilisation pour la gestion des activités et données
|
|
```plantuml
|
|
left to right direction
|
|
:Athlete: as a
|
|
|
|
a --> (Importer des données)
|
|
(Importer des données) .> (Saisir la source) : <<include>>
|
|
a --> (Exporter mes données)
|
|
(Exporter mes données) .>(Exporter toutes les activités): <<extends>>
|
|
(Exporter mes données) ..>(Exporter une activité): <<include>>
|
|
a --> (Ajouter une activité)
|
|
(Ajouter une activité) ..>(Saisir un titre et une description): <<include>>
|
|
(Ajouter une activité) ..>(Saisir le type d'activité): <<include>>
|
|
(Ajouter une activité) .>(Saisir la source): <<include>>
|
|
(Saisir la source) ..>(Saisir le matériel utilisé): <<include>>
|
|
(Ajouter une activité) ..>(Saisir la visibilité): <<include>>
|
|
a --> (Voir une activité)
|
|
(Voir une activité) ..>(Exporter l'analyse): <<extends>>
|
|
(Voir une activité) ..>(Saisir la visibilité): <<extends>>
|
|
a --> (Supprimer une activité)
|
|
(Importer des données) ...>(S'authentifier): <<include>>
|
|
(Exporter mes données) ...>(S'authentifier): <<include>>
|
|
(Ajouter une activité) ...>(S'authentifier): <<include>>
|
|
(Voir une activité) ...>(S'authentifier): <<include>>
|
|
```
|
|
|
|
- Cas d'utilisation pour la suivi d'une équipe sportive
|
|
```plantuml
|
|
left to right direction
|
|
:Coach: as a
|
|
|
|
a --> (Ajouter un athlète)
|
|
a --> (Supprimer un athlète)
|
|
a --> (Afficher ses athlètes )
|
|
a --> (Afficher les activités de tous les athlètes)
|
|
(Ajouter un athlète).>(Validation par l'athlète) : <<include>>
|
|
(Ajouter un athlète)..>(S'authentifier) : <<include>>
|
|
(Supprimer un athlète)..>(S'authentifier) : <<include>>
|
|
(Afficher ses athlètes )..>(S'authentifier) : <<include>>
|
|
(Afficher les activités de tous les athlètes)..>(S'authentifier) : <<include>>
|
|
(S'authentifier)..>(S'inscrire) : <<extends>>
|
|
(S'inscrire).>(Inscription Coach) : <<include>>
|
|
(S'authentifier)..>(Se connecter) : <<include>>
|
|
(Afficher ses athlètes )..>(Voir les activités d'un athlète) : <<extends>>
|
|
(Afficher ses athlètes )..>(Voir les stats d'un athlète) : <<extends>>
|
|
(Afficher les activités de tous les athlètes)..>(Sélectionner une activité) : <<include>>
|
|
(Sélectionner une activité)..>(Voir l'analyse) : <<extends>>
|
|
(Sélectionner une activité)..>(Exporter l'analyse) : <<extends>>
|
|
(Voir les activités d'un athlète)..>(Voir l'analyse) : <<extends>>
|
|
(Voir les activités d'un athlète)..>(Exporter l'analyse) : <<extends>>
|
|
```
|
|
## Base de Données
|
|
- [BDD] |