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.
202 lines
6.6 KiB
202 lines
6.6 KiB
[retour au README.md](../../../README.md)
|
|
[Retour au diagramme de classes](../README_DIAGRAMMES.md)
|
|
|
|
# Introduction au Diagramme de Classes : Plateforme de Gestion d'Activités Sportives
|
|
|
|
Bienvenue dans l'écosystème dynamique de notre plateforme de gestion d'activités sportives ! Ce diagramme de classes offre une vision complète des entités et des relations qui façonnent l'expérience des utilisateurs au sein de notre système.
|
|
|
|
**Entités Principales :**
|
|
|
|
- **Utilisateur (User) :** Représente les individus inscrits sur notre plateforme, avec des détails personnels tels que le nom, le prénom, l'email, etc. Chaque utilisateur a un rôle spécifique (Athlete, Coach) qui détermine ses interactions au sein de l'application.
|
|
|
|
- **Rôle (Role) :** Classe abstraite qui définit les rôles spécifiques des utilisateurs (Athlete, Coach). Contient des méthodes pour gérer les amis, les entraînements, et les demandes.
|
|
|
|
- **Athlète (Athlete) :** Spécialisation de la classe Role, représentant les utilisateurs actifs qui enregistrent des activités sportives, des statistiques, et interagissent avec d'autres athlètes.
|
|
|
|
- **Activité (Activite) :** Contient des détails sur une activité sportive tels que le type, la date, la durée, la fréquence cardiaque, etc.
|
|
|
|
- **Notification (Notification) :** Messages pour informer les utilisateurs des actions importantes.
|
|
|
|
- **Entraînement (Entrainement) :** Sessions planifiées d'activités physiques avec des détails comme la date, la localisation, la description, et les retours.
|
|
|
|
- **Statistique (Statistique) :** Informations détaillées sur les performances sportives d'un athlète, comprenant la distance totale, le poids, le temps total, la fréquence cardiaque, etc.
|
|
|
|
- **Source de Données (SourceDonnees) :** Représente les sources utilisées pour collecter des données, telles que les montres connectées.
|
|
|
|
**Relations Clés :**
|
|
|
|
- Les Utilisateurs ont un rôle spécifique (Athlete, Coach) qui détermine leurs fonctionnalités.
|
|
|
|
- Un Athlète peut enregistrer plusieurs Activités, Statistiques, et interagir avec différentes Sources de Données.
|
|
|
|
- Les Entraînements sont liés aux Utilisateurs, permettant une planification efficace.
|
|
|
|
- Les Notifications informent les Utilisateurs des événements importants.
|
|
|
|
Explorez ce diagramme pour comprendre comment notre plateforme offre une expérience complète, de la gestion des utilisateurs à l'enregistrement des activités sportives et au suivi des performances.
|
|
|
|
|
|
```plantuml
|
|
@startuml
|
|
class User {
|
|
- id: int
|
|
- username: String
|
|
- nom: string
|
|
- prenom: string
|
|
- email: string
|
|
- motDePasse: string
|
|
- sexe: string
|
|
- taille: float
|
|
- poids: float
|
|
- dateNaissance: \DateTime
|
|
+ getId(): int
|
|
+ getUsername(): string
|
|
+ setUsername(string $username): void
|
|
+ setId(int $id): void
|
|
+ getNom(): string
|
|
+ setNom(string $nom): void
|
|
+ getPrenom(): string
|
|
+ setPrenom(string $prenom): void
|
|
+ getEmail(): string
|
|
+ setEmail(string $email): void
|
|
+ getMotDePasse(): string
|
|
+ setMotDePasse(string $motDePasse): void
|
|
+ getSexe(): string
|
|
+ setSexe(string $sexe): void
|
|
+ getTaille(): float
|
|
+ setTaille(float $taille): void
|
|
+ getPoids(): float
|
|
+ setPoids(float $poids): void
|
|
+ getDateNaissance(): \DateTime
|
|
+ setDateNaissance(\DateTime $dateNaissance): void
|
|
+ getRole(): Role
|
|
+ setRole(Role $role): void
|
|
+ addNotification($notification): void
|
|
+ deleteNotification($index): void
|
|
+ isValidPassword(string $password): bool
|
|
+ __toString(): string
|
|
}
|
|
abstract class Role {
|
|
- id: int
|
|
- usersRequests: array
|
|
+ getUsersList(): array
|
|
+ getUsersRequests(): array
|
|
+ addUsersRequests(RelationshipRequest $request): void
|
|
+ removeRequest(RelationshipRequest $req): bool
|
|
+ CheckAdd(User $user): bool
|
|
+ addUser(User $user): bool
|
|
+ removeUser(User $user): bool
|
|
+ addTraining(Training $training): bool
|
|
+ getTrainingsList(): array
|
|
}
|
|
abstract class Coach extends Role {
|
|
}
|
|
class CoachAthlete extends Coach {
|
|
+ CheckAdd(User $user): bool
|
|
}
|
|
class Athlete extends Role {
|
|
+ getActivities(): array
|
|
+ addActivity(Activity $myActivity): bool
|
|
+ CheckAdd(User $user): bool
|
|
}
|
|
class Activite {
|
|
- idActivity: int
|
|
- type: String
|
|
- date: \DateTime
|
|
- heureDebut: \DateTime
|
|
- heureFin: \DateTime
|
|
- effortRessenti: int
|
|
- variability: float
|
|
- variance: float
|
|
- standardDeviation: float
|
|
- average: int
|
|
- maximum: int
|
|
- minimum: int
|
|
- avrTemperature: float
|
|
- hasAutoPause: bool
|
|
+ getIdActivity(): int
|
|
+ getType(): String
|
|
+ getDate(): \DateTime
|
|
+ getHeureDebut(): \DateTime
|
|
+ getHeureFin(): \DateTime
|
|
+ getEffortRessenti(): int
|
|
+ getVariability(): float
|
|
+ getVariance(): float
|
|
+ getStandardDeviation(): float
|
|
+ getAverage(): float
|
|
+ getMaximum(): int
|
|
+ getMinimum(): int
|
|
+ getAvrTemperature(): float
|
|
+ setType(String $type): void
|
|
+ setEffortRessenti(int $effortRessenti): void
|
|
+ __toString(): String
|
|
}
|
|
class Notification {
|
|
- type: string
|
|
- message: string
|
|
- toUserId: int
|
|
+ getType(): string
|
|
+ setType(string $type): void
|
|
+ getMessage(): string
|
|
+ setMessage(string $message): void
|
|
+ getToUserId(): int
|
|
+ setToUserId(int $toUserId): void
|
|
+ __construct(int $toUserId,string $type, string $message)
|
|
+ __toString(): string
|
|
}
|
|
class Entrainement {
|
|
- idTraining: int
|
|
- date: \DateTime
|
|
- latitude: float
|
|
- longitude: float
|
|
- description: String
|
|
- feedback: String
|
|
+ getId(): int
|
|
+ getDate(): \DateTime
|
|
+ getLocation(): String
|
|
+ getDescription(): String
|
|
+ getFeedback(): String
|
|
+ __toString(): String
|
|
}
|
|
class Statistique {
|
|
- idStat: int
|
|
- distanceTotale: float
|
|
- poids: float
|
|
- tempsTotal: time
|
|
- FCmoyenne: int
|
|
- FCmin: int
|
|
- FCmax: int
|
|
- cloriesBrulees: int
|
|
+ getIdStat(): int
|
|
+ getDistanceTotale(): float
|
|
+ getPoids(): float
|
|
+ getTempsTotal(): time
|
|
+ getFCmoyenne(): int
|
|
+ getFCmin(): int
|
|
+ getFCmax(): int
|
|
+ getCloriesBrulees(): int
|
|
+ __toString(): String
|
|
}
|
|
class SourceDonnees {
|
|
- idSource: int
|
|
- nom: String
|
|
- type: String
|
|
- precision: enum
|
|
- dateDerniereUtilisation: \DateTime
|
|
+ getIdSource(): int
|
|
+ getNom(): String
|
|
+ getType(): String
|
|
+ getPrecision(): enum
|
|
+ getDateDerniereUtilisation(): \DateTime
|
|
+ __toString(): String
|
|
}
|
|
User -> Role : role
|
|
Role -> User : usersList
|
|
Athlete -> Statistique : statsList
|
|
Athlete -> Activite : activityList
|
|
Athlete -> SourceDonnees : sdList
|
|
User -> Notification : notificationList
|
|
User -> Entrainement : trainingsList
|
|
Activite -> SourceDonnees : maSource
|
|
@enduml
|
|
``` |