Architecture - dudleydehenau/ScapeGame GitHub Wiki

Résumé coaching 3

+ Le groupe montre en démo que backend et frontend choisis sont installés et fonctionnent (au moins les bases).
+ Idéalement le groupe peut également faire le lien pour accéder à la base de données choisie.

+ Le groupe explique dans le wiki quelle est l'architecture et comment le projet est mis en place.
+ Le groupe doit maintenir à jour cette partie au fur et à mesure de l'avancement du projet et des choix effectués, en prévenant le coach.
+ Le schéma DB, ainsi que les autres schémas utiles, seront placés ici (datés!) Et mis à jour au fur et à mesure des changements.

1. Backend

1.1 Organisation du code

[Présentation La structure/hiérarchie des fichiers et dossiers du code source du backend]

backend/
├── controllers/
├── middleware/
├── modèles/
├── routes/
├── utiles/
├── auth.spec.js
├── index.js
├── package-lock.json
├── package.json
├── swagger-output.json
└── swagger.js

1.2 Diagramme de classes UML

[Diagramme de classes]

Modèles et controleurs

image

Composant et service

image

2. Schémas, diagrammes et infos

2.1 Diagrammes liés à la base de données

[Schémas EA / Relationnel de la DB]
image

2.2 Résumé du fonctionnement général de l'application

Relations entre les contrôleurs et les modèles :

  • AuthController <-> User : L'AuthController manipule les utilisateurs, ce qui signifie qu'il est responsable des opérations liées à l'authentification des utilisateurs, telles que la connexion, l'inscription et la déconnexion.
  • ClassementController <-> Scores : Le ClassementController gère les classements, qui sont représentés par la classe Scores. Cela implique qu'il est responsable des opérations de récupération, d'ajout, de mise à jour et de suppression des classements.
  • CommentaireController <-> Post : Le CommentaireController gère les commentaires, qui sont représentés par la classe Post. Il est donc responsable des opérations de gestion des commentaires telles que la récupération, l'ajout, la mise à jour et la suppression.
  • LevelController <-> Level : Le LevelController gère les niveaux de jeu, représentés par la classe Level. Il est chargé des opérations de récupération, d'ajout, de mise à jour et de suppression des niveaux.
  • ScoreController <-> Score : Le ScoreController gère les scores associés aux niveaux de jeu, représentés par la classe Score. Il s'occupe des opérations de récupération, d'ajout, de mise à jour et de suppression des scores. De plus, il est associé à la classe User pour gérer les scores associés à un utilisateur.

Relations entre les composants et les services :

  • AppComponent --> AuthService :

Utilise : AppComponent utilise le service AuthService. Cela signifie que le composant AppComponent dépend du service AuthService pour effectuer des opérations telles que la gestion de l'authentification.

  • AppComponent --> LevelService :

Utilise : AppComponent utilise le service LevelService. Cela indique que le composant AppComponent dépend du service LevelService pour effectuer des opérations telles que la récupération et la gestion des niveaux.

  • LoginComponent --> AuthService :

Utilise : LoginComponent utilise le service AuthService. Cela montre que le composant LoginComponent dépend du service AuthService pour gérer l'authentification des utilisateurs.

  • SignupComponent --> AuthService :

Utilise : SignupComponent utilise le service AuthService. Cela indique que le composant SignupComponent dépend du service AuthService pour effectuer des opérations telles que l'enregistrement des utilisateurs.

  • HomeComponent --> ClassementService :

Utilise : HomeComponent utilise le service ClassementService. Cela signifie que le composant HomeComponent dépend du service ClassementService pour récupérer et gérer les classements.

  • HomeComponent --> CommentaireService :

Utilise : HomeComponent utilise le service CommentaireService. Cela montre que le composant HomeComponent dépend du service CommentaireService pour effectuer des opérations sur les commentaires.

  • HomeComponent --> ScoreService :

Utilise : HomeComponent utilise le service ScoreService. Cela indique que le composant HomeComponent dépend du service ScoreService pour récupérer et gérer les scores.

  • CarouselComponent --> SearchLevelsService :

Utilise : CarouselComponent utilise le service SearchLevelsService. Cela montre que le composant CarouselComponent dépend du service SearchLevelsService pour rechercher des niveaux.

  • ChambreComponent --> CommentaireService :

Utilise : ChambreComponent utilise le service CommentaireService. Cela indique que le composant ChambreComponent dépend du service CommentaireService pour effectuer des opérations sur les commentaires.

  • ChambreComponent --> AuthService :

Utilise : ChambreComponent utilise le service AuthService. Cela montre que le composant ChambreComponent dépend du service AuthService pour gérer l'authentification des utilisateurs.

  • ToolbarComponent --> AuthService :

Utilise : ToolbarComponent utilise le service AuthService. Cela indique que le composant ToolbarComponent dépend du service AuthService pour gérer l'authentification des utilisateurs.

  • ToolbarComponent --> Router :

Utilise : ToolbarComponent utilise le service Router. Cela montre que le composant ToolbarComponent dépend du service Router pour la navigation dans l'application.

  • TriButtonComponent --> SearchLevelsService :

Utilise : TriButtonComponent utilise le service SearchLevelsService. Cela signifie que le composant TriButtonComponent dépend du service SearchLevelsService pour rechercher des niveaux.

  • SearchBarComponent --> LevelService :

Utilise : SearchBarComponent utilise le service LevelService. Cela indique que le composant SearchBarComponent dépend du service LevelService pour effectuer des opérations sur les niveaux.

  • SearchBarComponent --> Router :

Utilise : SearchBarComponent utilise le service Router. Cela montre que le composant SearchBarComponent dépend du service Router pour la navigation dans l'application.

Relations entre les composants

  • AppComponent -- "1" LoginComponent* :

Contient : AppComponent contient un LoginComponent. Cela signifie que le composant AppComponent englobe et intègre le composant LoginComponent.

  • AppComponent -- "1" HomeComponent* :

Contient : AppComponent contient un HomeComponent. Cela montre que le composant AppComponent englobe et intègre le composant HomeComponent.

  • HomeComponent -- "1.." CarouselComponent** :

Contient : HomeComponent contient un ou plusieurs CarouselComponent. Cela signifie que le composant HomeComponent englobe et intègre un ou plusieurs CarouselComponent.

  • HomeComponent -- "1.." ChambreComponent** :

Contient : HomeComponent contient un ou plusieurs ChambreComponent. Cela montre que le composant HomeComponent englobe et intègre un ou plusieurs ChambreComponent.

  • HomeComponent -- "1.." TriButtonComponent** :

Contient : HomeComponent contient un ou plusieurs TriButtonComponent. Cela indique que le composant HomeComponent englobe et intègre un ou plusieurs TriButtonComponent.

2.3 Autres diagrammes de fonctionnement et d'architecture (ou autres informations utiles)

3. Frontend

3.1 Organisation du code

frontend/src/app/
├── models/
├── pages/
├── services/
├── app.component.html
├── app.component.scss
├── app.component.spec.ts
├── app.component.ts
├── app.config.server.ts
├── app.config.ts
├── app.routes.ts

3.2 Apparence

Hub maquette

image


Hub réalisé

image

Bouton tri et filtre maquette

image image


Bouton tri et filtre réalisé

image

Login réalisé

image

Signup réalisé

image

Jeu Patricia

image

Jeu Dudley

image

Jeu Florian

image