Documentation Coté Client

Cette documentation présente la structure et le fonctionnement du côté client web 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, Firebase pour l'authentification, et des API REST pour la gestion des ressources.

Organisation par Pages

L'application web est composée de 13 pages principales qui constituent les vues de l'application.

0. Page d'Authentification (AuthPageComponent)

Fonctionnalité: Point d'entrée de l'application permettant la connexion et l'inscription des utilisateurs.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

1. Page d'Accueil (MainPageComponent)

Fonctionnalité: Page principale de navigation après authentification, permettant d'accéder aux différentes sections.

Services utilisés:

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 et configuration des paramètres de partie.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

5. Page de Rejoindre (JoinPageComponent)

Fonctionnalité: Liste des parties publiques disponibles et possibilité de rejoindre via code.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

6. 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:

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

8. 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:

9. Statistiques (StatsPageComponent)

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

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

10. Application Principale (AppComponent)

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

Services utilisés:

Composants:

Éléments de la page:

11. Boutique (ShopPageComponent)

Fonctionnalité: Espace d'achat d'articles cosmétiques avec la monnaie virtuelle.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

12. Aide (HelpPageComponent)

Fonctionnalité: Documentation complète et guides d'utilisation accessibles dans l'application.

Services utilisés:

Composants:

Éléments de la page:

Navigation possible vers:

Services Principaux

Services d'Authentification et Utilisateur

AuthService

UserService

SessionService (côté client)

Services Sociaux

FriendsService

Service d'Internationalisation

TranslationService

Services de Communication

SocketService

GameSocketHandlerService

CombatService

ChatService

WaitingRoomService

Services de Gestion de Jeu

GameService

GameCreationService

GameViewService

StatsService

Autres Services

EditService

AutoTileService

JoinCharacterCreationService

HttpInterceptorService

AppInitializationService

Composants Réutilisables

Composants Sociaux

FriendsMenuComponent

UserViewComponent

UserSettingsComponent

Composants d'Interface

EmojiPickerComponent

LanguageToggleComponent

Composants Existants

ButtonComponent

GameBoxComponent

GridComponent

CellComponent

ChatboxComponent

CombatMenuComponent

PlayerInfoComponent

PlayerCommandsComponent

PlayersListComponent

TimerComponent

AlertNotificationComponent

TileInformationComponent

ItemRejectPopupComponent

OneButtonPopupComponent

TwoButtonsPopupComponent

TilesContainerComponent

ItemsContainerComponent

DescriptionEditingComponent

GameInfoComponent

Guards et Sécurité

AuthGuard

NoAuthGuard

Pipes

TranslatePipe

Communication Client-Serveur

La communication avec le serveur est 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
    • FriendsService: Notifications d'amis
  2. HTTP: Utilisé pour la gestion des ressources:

    • GameService: CRUD des jeux via API REST
    • AuthService: Authentification et inscription
    • UserService: Gestion du profil
    • FriendsService: Gestion des amis
  3. Firebase: Authentification

    • AuthService: Authentification Firebase

Entités Principales

Fonctionnalités Clés

Authentification Complète

Système Social

Internationalisation

Économie Virtuelle

Amélioration du Matchmaking