diff --git a/microservices/cors.conf b/microservices/cors.conf
index c51cb1a7789678de68b34b7fd56c0fc83db4ce74..b0c36cc2dee9ddf19af594e81009754c9fcd69d5 100644
--- a/microservices/cors.conf
+++ b/microservices/cors.conf
@@ -1,10 +1,8 @@
-# Autoriser toutes les origines
 add_header 'Access-Control-Allow-Origin' '*' always;
 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
 add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always;
 add_header 'Access-Control-Max-Age' 1728000 always;
 
-# Gérer les pré-requêtes OPTIONS correctement
 if ($request_method = 'OPTIONS') {
     add_header 'Access-Control-Allow-Origin' '*' always;
     add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
diff --git a/microservices/creation_qcm/src/routes/CreationQcm.ts b/microservices/creation_qcm/src/routes/CreationQcm.ts
index 5a77950e8587df3f66113564e7a17e0f80754d07..71cd45e14c45c474891191521014eba38742dcc8 100644
--- a/microservices/creation_qcm/src/routes/CreationQcm.ts
+++ b/microservices/creation_qcm/src/routes/CreationQcm.ts
@@ -9,181 +9,172 @@ import { MessageRoute } from './MessageRoute.js';
 const router: express.Router = express.Router();
 // router.use(verifyJWT)
 
+// 🚀 Route pour créer un QCM
 router.post('/QCM', verifyJWT, async (req: express.Request, res: express.Response) => {
     console.log(`[LOG] Ajout QCM avec les données:`, req.body);
-    const { qcm, idUser } = req.body;
-    console.log(qcm, idUser, qcm["nomQcm"], qcm["randomQuestion"], qcm["tempsMax"])
-    if (!qcm || !idUser || !qcm["nomQcm"] || qcm["randomQuestion"] === undefined || qcm["tempsMax"] === undefined)
-    {
-        res.status(400).send({ error:  MessageRoute.misPara });
-        return
-    }
-    const codeAcces: number = getRandomNumber(1000, 9999);
-    const qcmCreate = await db.qcmTable.create({
-        data: {
-            nomQCM :  qcm["nomQcm"],
-            codeAcces : codeAcces,
-            randomOrder : qcm["randomQuestion"],
-            temps : qcm["tempsMax"],
-            idUserCreator : idUser,
+    try {
+        const { qcm, idUser } = req.body;
+        if (!qcm || !idUser || !qcm["nomQcm"] || qcm["randomQuestion"] === undefined || qcm["tempsMax"] === undefined) {
+            console.error(`[ERROR] Paramètres manquants pour la création du QCM`);
+            return res.status(400).send({ error: MessageRoute.misPara });
         }
-    });
-    res.status(200).send({id: qcmCreate.idQCM});
+
+        const codeAcces: number = getRandomNumber(1000, 9999);
+        const qcmCreate = await db.qcmTable.create({
+            data: {
+                nomQCM: qcm["nomQcm"],
+                codeAcces: codeAcces,
+                randomOrder: qcm["randomQuestion"],
+                temps: qcm["tempsMax"],
+                idUserCreator: idUser,
+            }
+        });
+
+        console.log(`[SUCCESS] QCM créé avec l'ID: ${qcmCreate.idQCM}`);
+        res.status(200).send({ id: qcmCreate.idQCM });
+
+    } catch (error) {
+        console.error(`[ERROR] Erreur lors de la création du QCM:`, error);
+        res.status(500).send({ error: MessageRoute.serverError });
+    }
 });
 
+
+// 🚀 Route pour mettre à jour un QCM
 router.put('/QCM', verifyJWT, async (req: express.Request, res: express.Response) => {
-    console.log(`[LOG] Traitement de la création de QCM avec les données:`, req.body);
-    const { qcm } = req.body;
-    console.table(qcm)
-    if (!qcm || !qcm["nomQcm"] || qcm["randomQuestion"] === undefined || qcm["tempsMax"] === undefined || qcm["idQcm"] === undefined)
-    {
-        res.status(400).send({ error:  MessageRoute.misPara });
-        return
-    }
-    const infoQcm = await db.qcmTable.findFirst({
-        where: {
-            idQCM: qcm["idQcm"],
+    console.log(`[LOG] Mise à jour QCM avec les données:`, req.body);
+    try {
+        const { qcm } = req.body;
+        if (!qcm || !qcm["nomQcm"] || qcm["randomQuestion"] === undefined || qcm["tempsMax"] === undefined || qcm["idQcm"] === undefined) {
+            console.error(`[ERROR] Paramètres manquants pour la mise à jour du QCM`);
+            return res.status(400).send({ error: MessageRoute.misPara });
+        }
+
+        const infoQcm = await db.qcmTable.findFirst({ where: { idQCM: qcm["idQcm"] } });
+        if (!infoQcm) {
+            console.error(`[ERROR] QCM introuvable avec l'ID: ${qcm["idQcm"]}`);
+            return res.status(404).send({ error: MessageRoute.qcmDoesntExist });
         }
-    });
-    
-    if(!infoQcm)
-    {
-        res.status(404).send({ error: MessageRoute.qcmDoesntExist });
-        return
+
+        checkUser(req, res, infoQcm.idUserCreator, "This is not your QCM");
+
+        const qcmUpdate = await db.qcmTable.update({
+            where: { idQCM: qcm["idQcm"] },
+            data: {
+                nomQCM: qcm["nomQcm"],
+                randomOrder: qcm["randomQuestion"],
+                temps: qcm["tempsMax"],
+            },
+        });
+
+        console.log(`[SUCCESS] QCM mis à jour:`, qcmUpdate);
+        res.status(200).send(qcmUpdate);
+    } catch (error) {
+        console.error(`[ERROR] Erreur lors de la mise à jour du QCM:`, error);
+        res.status(500).send({ error: MessageRoute.serverError });
     }
-    checkUser(req, res, infoQcm?.idUserCreator, "This is not your QCM");
-    const qcmCreate = await db.qcmTable.update({
-        where: {
-            idQCM: qcm["idQcm"]
-        },
-        data: {
-            nomQCM :  qcm["nomQcm"],
-            randomOrder : qcm["randomQuestion"],
-            temps : qcm["tempsMax"],
-        },
-    });
-    res.status(200).send(qcmCreate);
 });
 
 
+// 🚀 Route pour ajouter une question numérique
 router.post('/numeric_question', verifyJWT, async (req: express.Request, res: express.Response) => {
     console.log(`[LOG] Ajout de question numérique avec les données:`, req.body);
-    const { question, idQcm } = req.body;
-   
-    console.log(question, idQcm);
-    if (!idQcm || !question || !question["question"] || question["nbPtsNegatif"] === undefined || question["nbPtsPositif"] === undefined || question["valNum"] === undefined || question["position"] === undefined)
-    {
-        res.status(400).send({ error:  MessageRoute.misPara });
-        return
-    }
-    const infoQcm = await db.qcmTable.findFirst({
-        where: {
-            idQCM: idQcm
+    try {
+        const { question, idQcm } = req.body;
+        if (!idQcm || !question || !question["question"] || question["nbPtsNegatif"] === undefined || question["nbPtsPositif"] === undefined || question["valNum"] === undefined || question["position"] === undefined) {
+            console.error(`[ERROR] Paramètres manquants pour la question numérique`);
+            return res.status(400).send({ error: MessageRoute.misPara });
         }
-    });
-    if(!infoQcm)
-    {
-        res.status(404).send({ error: MessageRoute.qcmDoesntExist });
-        return
-    }
-    checkUser(req, res, infoQcm.idUserCreator, MessageRoute.cantCreate);
-    const type = await db.type.findFirst({
-        where: {
-            nomType: "numerique"
-        },
-    });
-    if(!type)
-    {
-        res.status(500).send({ error: 'Server error' });
-        return
-    }
-    const qcmCreate = await db.question.create({
-        data: {
-            nbPtsNegatif: question["nbPtsNegatif"],
-            nbPtsPositif: question["nbPtsPositif"],
-            position: question["position"],
-            isMultiple: false,
-            question: question["question"],
-            idQCM: idQcm,
-            idType: type["idType"],
-            numeric: question["valNum"],
-            randomOrder: false,
+
+        const infoQcm = await db.qcmTable.findFirst({ where: { idQCM: idQcm } });
+        if (!infoQcm) {
+            console.error(`[ERROR] QCM introuvable avec l'ID: ${idQcm}`);
+            return res.status(404).send({ error: MessageRoute.qcmDoesntExist });
         }
-    });
-    res.status(200).send({id: qcmCreate.idQuestion});
+
+        checkUser(req, res, infoQcm.idUserCreator, MessageRoute.cantCreate);
+
+        const type = await db.type.findFirst({ where: { nomType: "numerique" } });
+        if (!type) {
+            console.error(`[ERROR] Type 'numerique' introuvable`);
+            return res.status(500).send({ error: 'Server error' });
+        }
+
+        const questionCreate = await db.question.create({
+            data: {
+                nbPtsNegatif: question["nbPtsNegatif"],
+                nbPtsPositif: question["nbPtsPositif"],
+                position: question["position"],
+                isMultiple: false,
+                question: question["question"],
+                idQCM: idQcm,
+                idType: type["idType"],
+                numeric: question["valNum"],
+                randomOrder: false,
+            }
+        });
+
+        console.log(`[SUCCESS] Question numérique créée avec l'ID: ${questionCreate.idQuestion}`);
+        res.status(200).send({ id: questionCreate.idQuestion });
+
+    } catch (error) {
+        console.error(`[ERROR] Erreur lors de la création de la question numérique:`, error);
+        res.status(500).send({ error: MessageRoute.serverError });
+    }
 });
 
+
+// 🚀 Route pour ajouter une question vrai/faux
 router.post('/true_false_question', verifyJWT, async (req: express.Request, res: express.Response) => {
     console.log(`[LOG] Ajout question true_false avec les données:`, req.body);
     try {
         const { question, idQcm } = req.body;
-        console.table(req.body)
-        console.log(question, idQcm)
-        if (!idQcm || !question || !question["question"] || !question["nbPtsNegatif"] === undefined || !question["nbPtsPositif"] === undefined || question["isVraiFaux"] === undefined || question["valVraiFaux"] === undefined) {
-            res.status(400).send({ error:  MessageRoute.misPara });
-            return
+        if (!idQcm || !question || !question["question"] || question["nbPtsNegatif"] === undefined || question["nbPtsPositif"] === undefined || question["isVraiFaux"] === undefined || question["valVraiFaux"] === undefined) {
+            console.error(`[ERROR] Paramètres manquants pour la question vrai/faux`);
+            return res.status(400).send({ error: MessageRoute.misPara });
         }
-    
-        const infoQcm = await db.qcmTable.findFirst({
-          where: {
-            idQCM: idQcm
-          }
-        });
-    
+
+        const infoQcm = await db.qcmTable.findFirst({ where: { idQCM: idQcm } });
         if (!infoQcm) {
-            res.status(400).send({ error:MessageRoute.qcmDoesntExist});
-            return
+            console.error(`[ERROR] QCM introuvable avec l'ID: ${idQcm}`);
+            return res.status(404).send({ error: MessageRoute.qcmDoesntExist });
         }
+
         checkUser(req, res, infoQcm.idUserCreator, MessageRoute.cantCreate);
-        
-        const type = await db.type.findFirst({
-          where: {
-            nomType: "vraiFaux"
-          }
-        });
-    
+
+        const type = await db.type.findFirst({ where: { nomType: "vraiFaux" } });
         if (!type) {
-            res.status(500).send({ error: 'Server Problem: Type not found' });
-            return
+            console.error(`[ERROR] Type 'vraiFaux' introuvable`);
+            return res.status(500).send({ error: 'Server Problem: Type not found' });
         }
-    
-    
+
         const questionCreate = await db.question.create({
-          data: {
-            nbPtsNegatif: question["nbPtsNegatif"],
-            nbPtsPositif: question["nbPtsPositif"],
-            position: 0,
-            isMultiple: false,
-            question: question["question"],
-            idQCM: idQcm,
-            idType: type["idType"],
-            randomOrder: question["randomOrder"],
-          }
+            data: {
+                nbPtsNegatif: question["nbPtsNegatif"],
+                nbPtsPositif: question["nbPtsPositif"],
+                position: 0,
+                isMultiple: false,
+                question: question["question"],
+                idQCM: idQcm,
+                idType: type["idType"],
+                randomOrder: question["randomOrder"],
+            }
         });
-    
-    
-        if (!questionCreate) {
-            res.status(500).send({ error: 'Server Problem: Question creation failed' });
-            return
-        }
-    
-        const idQuestion = questionCreate.idQuestion;
-    
+
+        console.log(`[SUCCESS] Question vrai/faux créée avec l'ID: ${questionCreate.idQuestion}`);
+
         const choixData = [
-          { nomChoix: "Vrai", isCorrect: question.valVraiFaux, idQuestion: idQuestion, position: 0 },
-          { nomChoix: "Faux", isCorrect: !question.valVraiFaux, idQuestion: idQuestion, position: 1 }
+            { nomChoix: "Vrai", isCorrect: question.valVraiFaux, idQuestion: questionCreate.idQuestion, position: 0 },
+            { nomChoix: "Faux", isCorrect: !question.valVraiFaux, idQuestion: questionCreate.idQuestion, position: 1 }
         ];
-    
-        const choixCreate = await db.choix.createMany({
-          data: choixData
-        });
-        if(!choixCreate){
-            res.status(500).send({ error:  MessageRoute.serverError });
-            return
-        }
-    
-        res.status(200).send({id:  idQuestion});
+
+        await db.choix.createMany({ data: choixData });
+
+        console.log(`[SUCCESS] Choix insérés pour la question ID: ${questionCreate.idQuestion}`);
+        res.status(200).send({ id: questionCreate.idQuestion });
+
     } catch (error) {
+        console.error(`[ERROR] Erreur inattendue:`, error);
         res.status(500).send({ error:  MessageRoute.serverError });
     }
 });
diff --git a/microservices/frontend/src/app/classes/Fetch.ts b/microservices/frontend/src/app/classes/Fetch.ts
index da1fa30bc373e1939fddd800d1f3b87f839c2ea5..c10380ad025441df825cb3217b2ae312adde0908 100644
--- a/microservices/frontend/src/app/classes/Fetch.ts
+++ b/microservices/frontend/src/app/classes/Fetch.ts
@@ -66,6 +66,7 @@ export class Fetch{
             })
             .then(data => data.json())
             .then(data => {
+                console.log(data);
                 if (!Array.isArray(data)) {
                     reject(new Error(Fetch.messageErrorFormat));
                     return;
@@ -90,8 +91,9 @@ export class Fetch{
                 address: Fetch.address,
                 route: `created_QCMs/${USER_ID}`,
             })
-            .then(data => data.json())
+            .then(data => { return data.json();})
             .then(data => {
+                console.log(data);
                 if (!Array.isArray(data)) {
                     reject(new Error(Fetch.messageErrorFormat));
                     return;
diff --git a/microservices/nginx.conf b/microservices/nginx.conf
index b9143be3a99387981ae3c0bff273c165f5f80f21..11d7a79c9fa7f9bd77b943a6f62a0f091b51b576 100644
--- a/microservices/nginx.conf
+++ b/microservices/nginx.conf
@@ -154,6 +154,18 @@ proxy_set_header Authorization $http_authorization;
             include cors.conf;
         }
 
+        location /infos_QCM/ {
+    proxy_pass http://service-search-qcm:30992;
+    proxy_pass_request_headers on;
+    proxy_set_header Authorization $http_authorization;
+    proxy_set_header Host $host;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+    include cors.conf;
+}
+
+
         location /true_false_question {
             proxy_pass http://service-creation-qcm:30992;
             proxy_set_header Host $host;
@@ -178,6 +190,8 @@ proxy_set_header Authorization $http_authorization;
             include cors.conf;
         }
 
+
+
        
     }