# 🧩 Note de conception : Centralisation de la source des items pour le moteur CAT

##   


### 📌 Objet

Cette note justifie la décision d’**isoler la source des items du moteur CAT (Computerized Adaptive Testing)** à la seule **Item Bank**, excluant les tests instanciés (`TestStandard`, `TestLive`, etc.) comme source directe d’items.

---

### ✅ Raisons principales

#### 1. **Respect de l’architecture conceptuelle**

- L’Item Bank est conçue comme **le référentiel stable** des items, calibrés, tagués et versionnés.
- Les tests sont des **instanciations pédagogiques temporaires**, contextualisées et susceptibles de dupliquer les items.
- Le moteur CAT doit s’appuyer sur une source **non dupliquée, stable et pérenne**.

#### 2. **Prévention des doublons et biais psychométriques**

- Un même item utilisé dans plusieurs tests devient plusieurs objets identifiables distinctement (différents `_id`), générant un **risque de sélection multiple** dans le CAT.
- Cela **brouille l’évaluation** (mesure redondante), **biaisant la distribution de difficulté** et alourdit les procédures de dédoublonnage.

#### 3. **Performances de traitement**

- Les objets `Test` sont plus profonds et nécessitent une navigation hiérarchique (sections, pages, éléments…).
- L’Item Bank permet un **accès direct et indexé** aux items, optimisé pour des requêtes filtrées ou pondérées.

#### 4. **Scalabilité et évolutivité**

- Si de nouveaux types de test sont introduits (`TestLive`, `TestExploratoire`, etc.), cela **imposerait de modifier** le moteur CAT pour intégrer de nouvelles structures.
- En s’appuyant exclusivement sur l’Item Bank, le moteur CAT reste **découplé, modulaire et maintenable**, sans dépendance à l’évolution des types de test.

#### 5. **Centralisation des métadonnées de calibrage**

- Les données critiques pour le CAT (difficulté estimée, thème, discrimination, historique de performance) doivent être **centralisées et versionnées dans l’Item Bank**.
- Cela garantit une **traçabilité** et une meilleure **qualité du calibrage**.

---

### 🛠 Recommandation technique

- Restreindre la logique de sélection adaptative (`itemPool`) du moteur CAT à la seule **Item Bank**.
- Introduire éventuellement un champ booléen `eligibleForCAT: true` dans les items, pour faciliter le filtrage.
- Définir un système de tag/filtrage par niveau, thème, etc., directement dans les métadonnées des items.

---

### 📌 Bénéfices

<div class="_tableContainer_16hzy_1" id="bkmrk-aspect-avec-item-ban"><div class="_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3312" data-start="2582"><thead data-end="2671" data-start="2582"><tr data-end="2671" data-start="2582"><th data-col-size="sm" data-end="2608" data-start="2582">Aspect</th><th data-col-size="sm" data-end="2636" data-start="2608">Avec Item Bank</th><th data-col-size="sm" data-end="2671" data-start="2636">Avec objets `Test`</th></tr></thead><tbody data-end="3312" data-start="2762"><tr data-end="2852" data-start="2762"><td data-col-size="sm" data-end="2788" data-start="2762">Stabilité des items</td><td data-col-size="sm" data-end="2817" data-start="2788">✅ élevée</td><td data-col-size="sm" data-end="2852" data-start="2817">❌ sujette à duplications</td></tr><tr data-end="2943" data-start="2853"><td data-col-size="sm" data-end="2879" data-start="2853">Risque de doublons</td><td data-col-size="sm" data-end="2908" data-start="2879">✅ contrôlé</td><td data-col-size="sm" data-end="2943" data-start="2908">❌ élevé</td></tr><tr data-end="3035" data-start="2944"><td data-col-size="sm" data-end="2970" data-start="2944">Performance</td><td data-col-size="sm" data-end="2999" data-start="2970">✅ rapide, accès direct</td><td data-col-size="sm" data-end="3035" data-start="2999">❌ plus lent (structure profonde)</td></tr><tr data-end="3126" data-start="3036"><td data-col-size="sm" data-end="3062" data-start="3036">Maintenabilité</td><td data-col-size="sm" data-end="3091" data-start="3062">✅ découplée</td><td data-col-size="sm" data-end="3126" data-start="3091">❌ dépend du type de test</td></tr><tr data-end="3217" data-start="3127"><td data-col-size="sm" data-end="3153" data-start="3127">Extensibilité</td><td data-col-size="sm" data-end="3182" data-start="3153">✅ sans refonte</td><td data-col-size="sm" data-end="3217" data-start="3182">❌ recodage à chaque nouveauté</td></tr><tr data-end="3312" data-start="3218"><td data-col-size="sm" data-end="3244" data-start="3218">Qualité psychométrique</td><td data-col-size="sm" data-end="3273" data-start="3244">✅ optimisée</td><td data-col-size="sm" data-end="3312" data-start="3273">❌ résultats potentiellement biaisés</td></tr></tbody></table>

</div></div>