Skip to content

Modèle de Questionnaire par Catégorie

Le composant CategoryQuiz sert aux diagnostics qui demandent un scoring sur plusieurs dimensions (ex. Communauté, Compétence, Crédibilité, Compassion) ainsi qu’un score global.

Utilisation

Pour créer un nouveau quiz par catégorie, créez un fichier markdown et utilisez le composant ainsi :

vue
<CategoryQuiz 
  :questions="questions" 
  :categories="categories"
  :overall="overall"
  emailEndpoint="/.netlify/functions/record-quiz"
  quizName="Mon quiz par catégorie"
>
  <template #intro>
    <h2>Mon Diagnostic</h2>
    <p>Notez-vous sur ces dimensions clés.</p>
  </template>
</CategoryQuiz>

<script setup>
const questions = [
  {
    id: 'q1',
    prompt: 'Texte de question...',
    categoryId: 'cat1',
    options: [
      { value: 5, label: 'Tout à fait d’accord' },
      { value: 1, label: 'Pas du tout d’accord' }
    ]
  }
];

const categories = {
  cat1: {
    title: 'Catégorie 1',
    thresholds: [
      {
        min: 4.0,
        max: 5.0,
        label: 'Haut',
        description: 'Vous excellez sur cette dimension.'
      },
      {
        min: 0,
        max: 3.9,
        label: 'Bas',
        description: 'Cette dimension demande du travail.'
      }
    ]
  }
};

const overall = {
  thresholds: [
    {
      min: 4.0,
      max: 5.0,
      label: 'Excellent',
      description: 'Performance globale excellente.'
    },
    {
      min: 0,
      max: 3.9,
      label: 'À améliorer',
      description: 'Espace d’amélioration global.'
    }
  ]
};
</script>

Props

PropTypeObligatoireDescription
questionsArrayOuiTableau d’objets question.
categoriesObjectOuiDéfinition des catégories et seuils.
overallObjectOuiDéfinition des seuils du score global.
emailEndpointStringNonURL pour envoyer les résultats par POST.
quizNameStringNonNom du quiz pour le suivi.

Structures de données

Objet Question

javascript
{
  id: 'unique_id',
  prompt: 'Texte de question',
  categoryId: 'id_categorie_correspondant',
  options: [
    { value: 5, label: 'Texte de l’option' }
  ]
}

Définition de Catégorie

javascript
{
  title: 'Titre affiché',
  thresholds: [
    {
      min: 0,
      max: 5,
      label: 'Libellé du résultat',
      description: 'Texte d’interprétation.'
    }
  ]
}

Checklist d’implémentation

  1. Définir les catégories : identifiez les dimensions à mesurer.
  2. Mapper les questions : chaque question doit posséder un categoryId valide.
  3. Fixer les seuils : définissez des plages min/max claires pour chaque catégorie et pour le score global.
  4. Routage : ajoutez le nouveau quiz à docs/fr/quizzes/index.md manuellement. Ne pas utiliser le frontmatter slug si vous comptez sur le routage standard par dossier.