# Drama Queen ## Note de conception Queen/Pearl liées - [Stratégie de synchronisation Pearl / Queen](https://hackmd.io/4z-cCYrtS3SOg0cB19Ut5w) - [Implémentation synchro Queen / Pearl [Front]](https://hackmd.io/ZLgvUDosSga-eFmsWEEaQw?view) - [Implémentation synchron Queen / Pearl [Back]](https://hackmd.io/T0UhEz9wTXia2FQaRiXxJQ) - [Communications Pearl/Queen](https://hackmd.io/wfP0Ph-JQn6oK_Zj9tPP8g) ## Constat et problématique Actuellement, plusieurs problème liées à la conception initiale de Sabiane (et plus précisément de Queen) apparaissent avec l'attérissage du mode Produit( découpge Collecter/Concevoir) et la montée en puissance dans l'utilisation de Sabiane par les enquêtes: - Impossibilté d'avoir 2 enquêtes en même temps qui utiliserait 2 version de Queen différentes - Queen ne peut pas gérer plusieurs versions de Lunatic - la frontière des responsabilités des équipes produits collecter et concevoir vis à vis des de l'orchestrateur Queen amène plusieurs problèmes: - difficulté pour l'équipe **concevoir** de comprendre l'écosystème Sabiane - difficulté pour l'équipe **concevoir** de faire une recette "intégrée" de Queen - difficulté pour l'équipe **collecter** de maintenir Queen face aux évolutions de Lunatic (librairie uniquement porté par l'équipe **concevoir**) Toutes ces difficultés induisent également des problèmes d'un point de vue offre de service de la filière et ne permet pas de tenir un discours rassurant auprès des maîtrise d'ouvrage d'enquêtes. ## Objectifs de Drama Queen L'objectif de "Drama Queen" est de proposer un évolution applicative de Queen permettant une résolution des problèmes posés ci-dessus sans apporter d'évolutions significative sur l'interface entre Pearl et Queen ou entre Queen et Queen-BO ### Rappel de l'architecture logicielle et physique initiale - Micro-frontend (Pearl embarque une version de Queen) - Pearl-IHM communique avec son API (Pearl-BO) - Queen-IHM communique avec son API (Queen-BO) - Pearl-IHM et Queen-IHM communiquent entre eux via: - l'url du navigateur (routage applicatif) - evenement dans le navigateur - le localStorage - Pearl-IHM et Queen-IHM sont indépendant en terme d'authentification - Pearl-IHM et Queen-IHM dispose d'un service-worker permettant le fonctionnement hors-ligne de Sabiane (Pearl-IHM importe le SW de Queen-IHM) ### Multi-Versions Pour faciliter la compréhension, nous définissons les termes suivants: | Terme | Signification | | ---------- |:------------------------------------------------------------------------------------------------ | | DramaQueen | Application "parente" embarquant plusieurs versions de Queen | | QueenFat | Application original de Queen en "v1" | | QueenLight | Application Queen "désossé" de toute les fonctionnalités inhérente à l'environnement de collecte | **Remarque:** - QueenFat n'existe dans une seule version, la version de prod actuelle - QueenLight existe en au moins 2 versions - la version actuelle de prod, dans lesquels on a enlevé des fonctionnalités - la version cible "v2" - les futures versions potentielles ### Découpage des responsabilités **Responsabilités DramaQueen** - Authentification - Synchronisation - stockage dans iDB - commnication avec Pearl - communication avec les QueenLight - gestion du offline (service-worker) - redirection/instanciation de la bonne version de l'orhcestrateur **Responsabilités QueenLight** - orchestrateur utilisant Lunatic - gestion de la visualisation - communication (éventuelle selon le contexte d'execution) avec DramaQueen ### Interfaçage inchangée avec Pearl et Queen-Back-Office ### Organisation du code : GitHub On part sur une gestion en mode "SingleRepo" Branches: - master : QueenFat - main : - QueenFat -> pas d'évolution - DramaQueen -> maintenance et évolution par "Collecter" - QuennLightV2 -> maintenance et évolution par "Concevoir" (sous-modules GIT ??) ### Livrable - une seule application sous un ZIP contenant - DramaQueen -> seule application instanciée par Pearl - QueenFat - QueenLightV2 [Schéma Drawio](https://app.diagrams.net/?tags=%7B%7D&highlight=0000ff&edit=_blank&layers=1&nav=1&title=DramaQueen.drawio#Uhttps%3A%2F%2Fraw.githubusercontent.com%2FlaurentC35%2Fdrawio%2Fmain%2FDramaQueen.drawio) <iframe frameborder="0" style="width:100%;height:200px" src="https://viewer.diagrams.net/?tags=%7B%7D&highlight=0000ff&edit=_blank&layers=1&nav=1&title=DramaQueen.drawio#Uhttps%3A%2F%2Fraw.githubusercontent.com%2FlaurentC35%2Fdrawio%2Fmain%2FDramaQueen.drawio"></iframe> ## "Alternatives chics" - sécu ? - communication de données entre questionnaire - changement à venir de niveau de gestion des UE/questionnaires niveau Pearl - évolution modèle de données côté Lunatic Data qui impacterait le reste de la chaine (extraction des données, Kraftwerk, ...) - évolution interface API (data, suivi, paradata) - positionnement de la synchro