Skip to main content

Vue d’ensemble du système Web

ObjectifBut de cette page

Cette page sertest dela carte globaled’entrée du système Web Uniksim.Uniksim. Elle présentepermet de comprendre rapidement quelles applications existent, comment elles communiquent, où sont stockées les grandes couches, leurs responsabilitésdonnées et lesdans principauxquel fluxchapitre entrechercher elles.lorsqu’un problème survient.

ArchitectureCarte généraleglobale du système

    flowchart LR
        USER[Utilisateur] --> ANG[Frontend Angular]
        ADMIN[Administrateur] --> ANG
    
        ANG -->|HTTP| NEST[NestJS principal :3000]
        applicationANG <-->|Socket.IO| WS[SupportGateway]
        ANG --> UNITY[Unity WebGL]
    
        UNITY -->|HTTP / heartbeat / données jeu| NEST
    
        NEST --> CTRL[Controllers]
        CTRL --> SVC[Services métier]
        SVC --> ORM[TypeORM]
        ORM --> MYSQL[(MySQL)]
    
        SVC --> REDIS[(Redis)]
        SVC --> BC[BrainCloud]
        SVC --> FB[Firebase / FCM]
        SVC --> MAIL[Mail]
        SVC --> AI[Serveur IA :8106]
    
        NEST --> ADMINEXP[Admin Server Express :8105]
        ADMINEXP --> BC
        ADMINEXP --> REDIS
    
        AI --> CHROMA[(Chroma / embeddings)]
        AI --> PROVIDER[Provider IA]
    
        NEST --> STATIC[Frontend Angular compilé]
        STATIC --> USER
    

    Les grandes briques

    Frontend Angular

    Application principale côté navigateur dans uniksimFrontEnd/.

    Elle contient les pages utilisateur et admin, les composants UI, les services HTTP, l’authentification frontend, le support temps réel et l’intégration Unity.

    Backend : application NestJS

    Serveur HTTP principal dans uniksim-back-end/. Le point d’entrée est src/main.ts et l’assemblage global se fait dans src/app.module.ts. Il expose les APIs utilisateur, jeu, administration, support, notifications, push, mail et IA.

    Admin Server Express

    Serveur HTTP auxiliaire séparé dans src/node.js/server/admin_server.js, sur le port 8105. Il sert principalement certaines opérations historiques/BrainCloud, Redis, copie de simulations et SSE.

    Serveur IA

    Le backend attend que le serveur IA soit prêt avant de lancer NestJS. La logique se trouve sous src/node.js/server/ai/. Le système gère génération, embeddings, RAG, contrôle des coûts et intégration au support.

    Unity WebGL

    Le jeu Unity est intégré au Web. Angular affiche le build WebGL et Unity communique avec le backend pour les versions, textes, données utilisateur, heartbeat, classements, images et crash logs.

    Persistance

      MySQL + TypeORM : utilisateurs, rôles, produits, support, installations FCM, etc. Base de donnéesRedis : accèsprésence, viasessions, TypeORMnotifications, rankings et autres données runtime. BrainCloud : plusieurs données historiques et fonctions liées aux simulations. Chroma : recherche vectorielle du système IA/RAG.

      Flux typique d’une requête Web

      sequenceDiagram
          participant U as Utilisateur
          participant A as Angular
          participant C as Controller NestJS
          participant S as Service
          participant D as MySQL / Redis / BrainCloud
      
          U->>A: Action dans l’interface
          A->>C: Requête HTTP
          C->>C: Guard / validation
          C->>S: Appel métier
          S->>D: Lecture / écriture
          D-->>S: Résultat
          S-->>C: Données métier
          C-->>A: Réponse API
          A-->>U: Mise à jour de l’interface
      

      Flux temps réel

      Le système support/notifications utilise Socket.IO et des événements backend. Le frontend maintient son état local et reçoit les entitéschangements sans attendre un prochain GET. Voir les pages Support temps réel et Notifications et Push.

      Build et hébergement

      Le build Angular de production est généré dans uniksim-back-end/src/entities/front, puis NestJS est buildé à son tour. Le backend sert ensuite le frontend compilé avec ServeStaticModule. L’instance de développement hébergée est sim.dev.uniksim.com. Voir Build et déploiement Web.

      Où chercher selon le problème

        Écran, navigation ou composant → chapitre Frontend Angular. TempsEndpoint, réellogique backend, auth :→ WebSocketServeurs viaet les gateways NestJS, notamment pour le support.API. IADonnée SQL ou Redis :→ serveur IA initialisé avant le démarrageBase de NestJS.données et persistance. UnityConstante, WebGLport, environnement :→ buildConfiguration, Unity servi/intégré dans l’application Webenvironnements et communicationconstantes. avecChat, l’API.WebSocket, RAG, provider IA → Support et IA. Unity, notifications, Firebase, services externes → Intégrations et systèmes transversaux. Déploiement / instance demo → Build et déploiement Web.

        Points d’entrée principauxessentiels

        • uniksimFrontEnd/src/main.ts : démarrage Angular.
        • uniksimFrontEnd/src/app/app.module.ts : module racine, déclarations, dépendances et routing principal.
        • uniksim-back-end/src/main.ts : bootstrap NestJS, CORS, limites de payload et démarrage HTTP.
        • uniksim-back-end/src/app.module.ts : assemblage des contrôleurs, services, guards, TypeORM, i18n et fichiers statiques.
        • uniksim-back-end/src/app.controller.ts
        :uniksim-back-end/src/database.providers.ts plusieursuniksim-back-end/src/node.js/server/constantsVariable.js groupesuniksim-back-end/src/node.js/server/admin_server.js d’endpoints HTTP du système.uniksim-back-end/src/node.js/server/ai/

        Flux simplifié

        Utilisateur
           ↓
        Angular
           ↓ HTTP / WebSocket
        NestJS
           ↓
        Services / Guards / Gateways
           ↓
        TypeORM / Redis / Firebase / IA / autres services
           ↓
        Base de données et services externes

        Comment naviguer dans cette documentation

        Voir les chapitres Frontend Angular, Serveurs et API, Support et IA et Intégrations et systèmes transversaux pour les détails.