{
  "name": "DzRouter · 01 · Pack de révision (résumé + QCM)",
  "nodes": [
    {
      "id": "fc2efb3e-ed0d-53c7-9a8e-047e9886f184",
      "name": "Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -520,
        -260
      ],
      "parameters": {
        "content": "## Pack de révision (outil formulaire)\n\n1. Installez le nœud communautaire **n8n-nodes-dzrouter** (Paramètres → Community nodes).\n2. Ouvrez chaque nœud DzRouter et choisissez votre identifiant **DzRouter API** (clé `sk-dz-…`).\n3. Cliquez **Test workflow** : un exemple algérien est déjà chargé.\n\nPour l'utiliser : **activez** le workflow et partagez l'URL du formulaire (nœud *Form* → Production URL).\n\n---\n\n<div dir=\"rtl\">\n\n### حزمة مراجعة\n\n1. ثبّت العقدة **n8n-nodes-dzrouter** (الإعدادات ← Community nodes).\n2. افتح كل عقدة DzRouter واختر بيانات اعتماد **DzRouter API** (مفتاح `sk-dz-…`).\n3. اضغط **Test workflow**: مثال جزائري جاهز للتجربة.\n\n</div>\n\n---\n\n### Study pack (form tool)\n\n1. Install the **n8n-nodes-dzrouter** community node (Settings → Community nodes).\n2. Open each DzRouter node and pick your **DzRouter API** credential (`sk-dz-…` key).\n3. Click **Test workflow**: an Algerian sample is already loaded.",
        "height": 560,
        "width": 440,
        "color": 4
      }
    },
    {
      "id": "e7044dc7-07ec-5d61-95c3-c42cdeceb081",
      "name": "Form",
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.3,
      "position": [
        0,
        0
      ],
      "parameters": {
        "formTitle": "📚 Pack de révision IA",
        "formDescription": "Collez votre cours : résumé + QCM corrigé en quelques secondes.",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Texte du cours",
              "fieldType": "textarea",
              "requiredField": true,
              "placeholder": "Collez ici le chapitre à réviser…"
            },
            {
              "fieldLabel": "Langue",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Français"
                  },
                  {
                    "option": "العربية"
                  },
                  {
                    "option": "English"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldLabel": "Nombre de questions",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "5"
                  },
                  {
                    "option": "10"
                  },
                  {
                    "option": "15"
                  }
                ]
              }
            }
          ]
        },
        "responseMode": "lastNode",
        "options": {
          "appendAttribution": false
        }
      }
    },
    {
      "id": "02a15007-9285-5249-b267-c1a0e390b89d",
      "name": "Summary",
      "type": "n8n-nodes-dzrouter.dzRouter",
      "typeVersion": 1,
      "position": [
        260,
        0
      ],
      "parameters": {
        "resource": "text",
        "operation": "summarize",
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "openai/gpt-4o-mini"
        },
        "text": "={{ $json['Texte du cours'] }}",
        "length": "a detailed summary covering every key point",
        "options": {
          "format": "bullets",
          "language": "={{ $json.Langue }}"
        }
      }
    },
    {
      "id": "8dd340a3-dbcf-5491-bc87-23e0bb5d6d0f",
      "name": "Quiz",
      "type": "n8n-nodes-dzrouter.dzRouter",
      "typeVersion": 1,
      "position": [
        520,
        0
      ],
      "parameters": {
        "resource": "chat",
        "operation": "message",
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "openai/gpt-4o-mini"
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=Tu es un professeur algérien expérimenté. À partir du cours fourni, écris exactement {{ $('Form').item.json['Nombre de questions'] || 5 }} questions à choix multiples, en {{ $('Form').item.json.Langue }}, de difficulté progressive. Réponds uniquement en JSON : {\"questions\":[{\"question\":\"…\",\"choices\":[\"…\",\"…\",\"…\",\"…\"],\"answer_index\":0,\"explanation\":\"…\"}]}"
            },
            {
              "role": "user",
              "content": "={{ $('Form').item.json['Texte du cours'] }}"
            }
          ]
        },
        "simplify": true,
        "options": {
          "temperature": 0.3,
          "maxTokens": 3000,
          "responseFormat": "json_object"
        }
      }
    },
    {
      "id": "978b678c-ec49-5814-af19-a7bfe3c7266a",
      "name": "Build page",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        780,
        0
      ],
      "parameters": {
        "jsCode": "const esc = (s) => String(s ?? '').replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]));\nconst page = (title, body) => `<div style=\"font-family:system-ui,Segoe UI,Tahoma,sans-serif;max-width:720px;margin:0 auto;line-height:1.6;color:#0f1c16\">\n<h2 style=\"color:#007f00;margin:0 0 12px\">${esc(title)}</h2>${body}\n<p style=\"color:#4f6158;font-size:13px;margin-top:24px\">Généré avec DzRouter · dzrouter.com</p></div>`;\n\nconst form = $('Form').first().json;\nconst summary = $('Summary').first().json.summary;\nconst qs = ($('Quiz').first().json.json?.questions) ?? [];\nconst L = ['A', 'B', 'C', 'D', 'E'];\nconst quiz = qs.map((q, i) => `<div style=\"margin:14px 0;padding:12px;border:1px solid #d6e1d9;border-radius:8px\" dir=\"auto\">\n<b>${i + 1}. ${esc(q.question)}</b><ol type=\"A\">${(q.choices || []).map((c) => `<li>${esc(c)}</li>`).join('')}</ol>\n<details><summary>Réponse / الإجابة</summary><p><b>${L[q.answer_index] ?? '?'}</b> — ${esc(q.explanation)}</p></details></div>`).join('');\nconst body = `<h3>Résumé · ملخص</h3><div dir=\"auto\">${esc(summary).replace(/\\n/g, '<br>')}</div><h3>QCM (${qs.length})</h3>${quiz}`;\nreturn [{ json: { html: page('📚 Pack de révision', body), questions: qs.length } }];"
      }
    },
    {
      "id": "3d49c22b-b224-541c-928a-9e3850ca0724",
      "name": "Show result",
      "type": "n8n-nodes-base.form",
      "typeVersion": 2.3,
      "position": [
        1040,
        0
      ],
      "parameters": {
        "operation": "completion",
        "respondWith": "showText",
        "responseText": "={{ $json.html }}"
      }
    }
  ],
  "connections": {
    "Form": {
      "main": [
        [
          {
            "node": "Summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summary": {
      "main": [
        [
          {
            "node": "Quiz",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Quiz": {
      "main": [
        [
          {
            "node": "Build page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build page": {
      "main": [
        [
          {
            "node": "Show result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {
    "Form": [
      {
        "json": {
          "Texte du cours": "La photosynthèse est le processus par lequel les plantes chlorophylliennes transforment l'énergie lumineuse en énergie chimique. Elle se déroule dans les chloroplastes. La phase claire, dans les thylakoïdes, utilise la lumière pour décomposer l'eau, libérer du dioxygène et produire de l'ATP et du NADPH. La phase sombre, ou cycle de Calvin, a lieu dans le stroma : elle fixe le CO2 grâce à l'enzyme RuBisCO et fabrique du glucose. Les facteurs limitants sont l'intensité lumineuse, la concentration en CO2 et la température.",
          "Langue": "Français",
          "Nombre de questions": "5",
          "submittedAt": "2026-10-13T10:00:00.000+01:00",
          "formMode": "test"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false,
    "templateId": "dzrouter"
  }
}
