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 dansapp.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.jsou 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.tspour le compte,gateway/support.gateway.tspour le support,guards/socketAuth.middleware.tspour leur authentification commune. - Notifications :
service/notification.service.tsest le pipeline générique;service/game-notification.service.tsvalide le destinataire du jeu;dto/notification.dto.tsdé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 dansModels/Notification.tsetModels/Presence.ts. - IA :
node.js/server/ai/contract/,factory/,guard/,usage/etprovider/gemini/. Le SDK Vertex et son adaptation restent dans le provider. - Tests backend :
test/ai/ettest/notification/; configuration partagéetest/jest.config.cjs, configuration IAtest/jest.ai.config.cjs. Exécuternpm test -- --runInBandounpm run test:aidepuis le backend.