environmentQuiz top-level property

Map<String, dynamic> environmentQuiz
getter/setter pair

Implementation

Map<String, dynamic> environmentQuiz = {
  "quizType": "EDUCATIONAL",
  "currentStepIndex": 0,
  "quizTitle": "🚀 Quiz : Maîtrises-tu les environnements DEV, UAT et PROD ? 🌐",
  "quizSubTitle": "Comprends les rôles clés de chaque environnement de développement logiciel en quelques questions pédagogiques.",
  "steps": [
    {
      "stepKey": "intro",
      "stepLabel": "Introduction",
      "questions": [
        {
          "questionKey": "eco_minded",
          "label": "🌍 Penses-tu qu’il est important de protéger notre environnement ?",
          "type": "nullable_boolean",
          "params": {"mandatory": false}
        },
        {
          "questionKey": "reveal_topic",
          "label": "👏 Bravo pour ton engagement écologique… mais ce quiz ne parle pas de la planète.",
          "type": "textarea",
          "params": {"mandatory": false, "placeholder": "Tu peux râler ici si tu t’es fait avoir 😄"}
        },
        {
          "questionKey": "real_env_question",
          "label": "🎯 Revenons à nos environnements… logiciels cette fois ! As-tu déjà bossé avec DEV, UAT ou PROD ?",
          "type": "boolean",
          "params": {"mandatory": true}
        },
        {
          "questionKey": "current_env",
          "label": "Lequel de ces environnements te semble le plus familier ?",
          "type": "select",
          "options": [
            {"key": "dev", "label": "DEV – Là où la magie (ou les bugs) commence ✨🐛"},
            {"key": "uat", "label": "UAT – Les utilisateurs testent pendant que tu stresses 😅"},
            {"key": "prod", "label": "PROD – Là où chaque clic peut te coûter ta soirée 🧨"},
            {"key": "local", "label": "Local – Mon laptop, mon royaume 🖥️👑"}
          ],
          "params": {"mandatory": true, "isMultiple": false, "selectorDisplayMode": "radio"}
        }
      ]
    },
    {
      "stepKey": "definitions",
      "stepLabel": "Définitions essentielles",
      "questions": [
        {
          "questionKey": "define_envs",
          "label": "Associe chaque environnement à sa définition :",
          "type": "select",
          "options": [
            {"key": "dev", "label": "DEV : environnement de développement, instable, pour coder et tester rapidement."},
            {"key": "uat", "label": "UAT : environnement de validation par les utilisateurs finaux avant mise en production."},
            {"key": "prod", "label": "PRODUCTION : environnement stable utilisé par les utilisateurs finaux."}
          ],
          "params": {
            "mandatory": true,
            "isMultiple": true,
            "selectorDisplayMode": "check",
            "description": "Ces trois environnements ont chacun un rôle spécifique dans le cycle de vie d’une application. Le DEV est souvent instable, le UAT sert à tester des versions proches de la PROD, et la PROD est l'environnement final visible par les utilisateurs."
          }
        }
      ]
    },
    {
      "stepKey": "bonnes_pratiques",
      "stepLabel": "Bonnes pratiques",
      "questions": [
        {
          "questionKey": "env_rules",
          "label": "Quelles sont de bonnes pratiques à respecter pour ces environnements ?",
          "type": "select",
          "options": [
            {"key": "no_prod_tests", "label": "Ne jamais tester directement en PROD."},
            {"key": "separate_db", "label": "Utiliser des bases de données séparées pour chaque environnement."},
            {"key": "debug_prod", "label": "Activer les logs détaillés de debug en PROD."},
            {"key": "env_vars", "label": "Configurer les variables d'environnement correctement par contexte."}
          ],
          "params": {"mandatory": true, "isMultiple": true, "selectorDisplayMode": "check", "description": "Chaque environnement doit être isolé pour éviter les effets de bord. Activer le debug en PROD est risqué : cela peut exposer des données sensibles."}
        }
      ]
    },
    {
      "stepKey": "scenarios",
      "stepLabel": "Cas pratiques",
      "questions": [
        {
          "questionKey": "incident_prod",
          "label": "Une erreur critique survient en PROD. Quelle est la première chose à faire ?",
          "type": "select",
          "options": [
            {"key": "rollback", "label": "Rollback à la dernière version stable."},
            {"key": "debug_live", "label": "Déboguer directement sur la prod avec un accès SSH root."},
            {"key": "ignore", "label": "Ignorer, ça va sûrement se stabiliser."},
            {"key": "hotfix", "label": "Faire un hotfix et le déployer sans test."}
          ],
          "params": {"mandatory": true, "isMultiple": false, "selectorDisplayMode": "radio", "description": "Le rollback est souvent la méthode la plus sûre. Le debug en live est dangereux. Un hotfix peut être envisagé, mais pas sans test ni validation."}
        },
        {
          "questionKey": "uat_purpose",
          "label": "Quel est l’objectif principal de l’environnement UAT ?",
          "type": "select",
          "options": [
            {"key": "qa", "label": "Exécuter des tests automatisés techniques."},
            {"key": "stakeholders", "label": "Permettre aux parties prenantes de valider le produit."},
            {"key": "dev_speed", "label": "Développer de nouvelles fonctionnalités rapidement."},
            {"key": "prod_mirror", "label": "Agir comme miroir exact de la prod pour la haute disponibilité."}
          ],
          "params": {"mandatory": true, "isMultiple": false, "selectorDisplayMode": "radio", "description": "L’UAT (User Acceptance Testing) est conçu pour que les utilisateurs clés testent et valident les fonctionnalités avant leur mise en production."}
        }
      ]
    }
  ]
};