Documentation Coté Client

Cette documentation présente la structure et le fonctionnement du côté client de l'application, organisée autour des principales pages et fonctionnalités de manière globale. Pour consulter la documentation détaillée de chaque page, cliquez sur le titre correspondant.

Architecture Générale

L'application est développée avec Angular et suit une architecture modulaire. Elle est composée de:

L'application utilise principalement Socket.IO pour les communications en temps réel avec le serveur, particulièrement pour le jeu, le clavardage et les mises à jour d'état.

Organisation par Pages

1. Page d'Accueil (MainPageComponent)

Fonctionnalité: Point d'entrée de l'application permettant de naviguer vers les autres sections.

Services utilisés: JoinCharacterCreationService: Permet de rejoindre une partie existante

Composants:

Éléments de la page:

Navigation possible vers:

2. Administration des Jeux (AdminPageComponent)

Fonctionnalité: Interface pour gérer les jeux disponibles (création, édition, suppression).

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

3. Édition de Jeu (EditionPageComponent)

Fonctionnalité: Interface pour créer ou modifier un jeu (grille, tuiles, items).

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

4. Création de Partie (GameCreationPageComponent)

Fonctionnalité: Sélection d'un jeu pour lancer une partie.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

5. Création de Personnage (CharacterCreationPageComponent)

Fonctionnalité: Création du personnage avant de rejoindre une partie.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

6. Salle d'Attente (WaitingRoomPageComponent)

Fonctionnalité: Interface où les joueurs se regroupent avant le début de la partie.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

7. Vue de Jeu (GameViewPageComponent)

Fonctionnalité: Interface principale du jeu où se déroule la partie.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

8. Statistiques (StatsPageComponent)

Fonctionnalité: Affichage des statistiques après une partie.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

9. Application Principale (AppComponent)

Fonctionnalité: Composant racine contenant le routeur et les animations de transition.

Services utilisés:

Composants:

Éléments de la page:

Communication Client-Serveur

La communication avec le serveur est principalement gérée via:

  1. Socket.IO: Services implémentant la communication en temps réel:

    • SocketService: Service principal gérant les connexions
    • GameSocketHandlerService: Événements liés au jeu
    • CombatSocketService: Gestion des combats
    • ChatService: Messagerie
    • WaitingRoomService: Gestion de la salle d'attente
  2. HTTP: Utilisé principalement pour la gestion des jeux:

    • GameService: CRUD des jeux via API REST

Entités Principales