Skip to main content

Structure des projets et dossiers

Objectif

Cette page indique où chercher dans le code selon le type de changement ou de bug. Elle ne remplace pas les pages détaillées des sous-systèmes.

Vue des deux projets principaux

flowchart TD
    ROOT[uniksimweb] --> FE[uniksimFrontEnd]
    ROOT --> BE[uniksim-back-end]

    FE --> FEA[src/app]
    FEA --> P[Pages]
    FEA --> C[Components]
    FEA --> POP[Popup]
    FEA --> FS[service]
    FEA --> FM[Models]

    BE --> BES[src]
    BES --> CTRL[app.controller.ts]
    BES --> MOD[app.module.ts]
    BES --> SV[service]
    BES --> ENT[entities]
    BES --> GW[gateway]
    BES --> G[guards]
    BES --> NODE[node.js/server]
    BES --> EMB[embedding]

Frontend : uniksimFrontEnd

  • src/app/Pages/ : écrans complets et routes principales.
  • src/app/Components/ : composants réutilisables.
  • src/app/Popup/ : popups et dialogues.
  • src/app/service/ : logique frontend partagée, accès API, auth, support, notifications, présence, etc.
  • src/app/Models/ : modèles TypeScript.
  • src/app/constants/ : constantes frontend.
  • src/assets/ : ressources statiques, incluant le build Unity WebGL.
  • src/environments/environment.ts : URLs/backend disponibles côté Angular.
  • angular.json : build Angular et destination du build production.

Backend : uniksim-back-end

  • src/main.ts : bootstrap NestJS.
  • src/app.module.ts : enregistrement global des modules, contrôleurs, services et intégrations.
  • src/app.controller.ts : contrôleurs HTTP principaux.
  • src/service/ : logique métier.
  • src/entities/ : entités TypeORM.
  • src/gateway/ : WebSockets/Socket.IO.
  • src/guards/ : autorisation/authentification backend.
  • src/mapper/ : conversion entre données internes et réponses API.
  • src/dto/ : DTOs et contrats d’entrée/sortie.
  • src/node.js/server/ : couche historique/auxiliaire : BrainCloud, constantes, Admin Server, IA, Redis, etc.
  • src/embedding/ : ingestion et documentation destinée au RAG.
  • src/migrations/ : changements de schéma/versionnement DB lorsque utilisés.
  • src/front/ : frontend Angular compilé; ne pas modifier manuellement.

Où commencer selon le besoin

  • Nouvelle page Angular → Pages/ + routing dans app.module.ts.
  • Nouveau composant réutilisable → Components/.
  • Nouvel appel API → service Angular approprié puis controller/service NestJS.
  • Nouvelle donnée SQL → entities/, service/repository et schéma DB.
  • Temps réel → gateway/ côté backend et service Socket.IO côté frontend.
  • Comportement IA → node.js/server/ai/, embedding/ et services support concernés.
  • Paramètre global → constantsVariable.js ou fichier d’environnement.

Règle pratique

Avant d’ajouter un nouveau fichier ou une nouvelle abstraction, vérifier si le comportement appartient déjà à un dossier/service existant. Le projet contient plusieurs couches historiques; dupliquer une responsabilité peut rendre les flux beaucoup plus difficiles à suivre.

Organisation vérifiée au 30 septembre 2026

  • Backend : gateway/account.gateway.ts pour le compte, gateway/support.gateway.ts pour le support, guards/socketAuth.middleware.ts pour leur authentification commune.
  • Notifications : service/notification.service.ts est le pipeline générique; service/game-notification.service.ts valide le destinataire du jeu; dto/notification.dto.ts définit l’enveloppe.
  • Angular : service/realtime/ pour le transport, service/account/ pour le temps réel du compte, service/support/ pour les conversations et tickets; contrats séparés dans Models/Notification.ts et Models/Presence.ts.
  • IA : node.js/server/ai/contract/, factory/, guard/, usage/ et provider/gemini/. Le SDK Vertex et son adaptation restent dans le provider.
  • Tests backend : test/ai/ et test/notification/; configuration partagée test/jest.config.cjs, configuration IA test/jest.ai.config.cjs. Exécuter npm test -- --runInBand ou npm run test:ai depuis le backend.