inseefr / bowie Goto Github PK
View Code? Open in Web Editor NEWInsee Survey design solution
Home Page: https://inseefr.github.io/Bowie/
License: MIT License
Insee Survey design solution
Home Page: https://inseefr.github.io/Bowie/
License: MIT License
🇬🇧
For simple text responses, Pogues allow for checks based on regular expressions. It has yet to be implemented in the generated questionnaires.
A first target would be to store and pass the expression, but a more sophisticated user experience would be:
🇫🇷
Proposer depuis l'interface et jusqu'au questionnaire des contrôles de type "expression régulière".
here describe the impact on the product softwares, linking to related issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇬🇧
Currently, we don't distinguish between CATI & CAPI mode when visualising the interviewer questionnaires, we would like to do that.
🇫🇷
Permettre la collecte face à face
Code Card :
To support face-to-face mode, the parameter "Mode" must be revised in order to distinguish CAPI from CATI.
None
Done for Eno
🇬🇧
LunaticModel is at the center of the survey workbench and the survey information system. This model is being impacted by the ongoing refactoring.
In order to ease the understanding and use of this model by the various stakeholders, we need to provide a documentation.
🇫🇷
LunaticModel est un des modèles de données au coeur de l'atelier de conception, et plus généralement de la filière d'enquête. La refonte logicielle actuelle (en cours) a un impact sur ce modèle.
Afin d'en faciliter la compréhension et la prise en main pas les différents acteurs, il est nécessaire de produire une documentation de ce modèle et de son usage.
a list of projects / teams that expressed the business case
none
none
none
documentation
🇬🇧 Questionnaire designed and tested with Bowie are naked, ie they don't have any context or custom data attached to them. Public Enemy is a service that will provide a way for designers to describe data and metadata to be attached to a questionnaire. Such feature would enhance questionnaire validation and therefore helps with validating questionnaires (eg testing the use of an external variable).
🇫🇷
Les questionnaires conçus et testés avec l'atelier n'ont ni contexte, ni données personnalisées. Public Enemy est un service qui permettra aux concepteurs de décrire les données et les métadonnées à associer à un questionnaire : cela améliorera la validation des questionnaires (par exemple en testant le recours à des variables externes).
Every team is concerned, nonetheless Public Enemy will only be available for surveys using the new tools (the Lunatic & co suite of tools).
Pogues will necessarily connect one way or another to Public Enemy in order to provide this enhanced questionnaire.
This describe what is needed for a first version (MVP):
First feature set available in demo environment.
Targeting april at the earliest
🇬🇧
Ask questions only when they are consistent with past responses
🇫🇷
Pouvoir filtrer les modalités de réponse en fonction des réponses aux questions précédentes
?
?
End 2022 ? June 2023
🇬🇧
🇫🇷
Rendre activables des composants Pogues :
to be completed
End 2022
Nowadays, a Pogues questionnaire only have a slight statistical context (attributes like Statistical operation name
and such).
We would like to go further along the idea of an overall context that will customise the user experience depending on such a context.
For example, meaningful collection modes and related visualisations would depend on the questionnaire context (e.g. for Insee household surveys, it would mean web viz through Stromae V2, and face-to-face / phone interviewer UI throught Queen).
There is an obvious impact on Pogues, but maybe also on what should be send to Eno API (and adapting it when necessary).
ref: 🇫🇷 Previous analysis
here describe the impact on the product softwares, linking to related issues
impact of the business case on the DDI use
link to project issues
link to project issues
link to project issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇫🇷 Intégration de la nouvelle version de Lunatic dans l'orchestrateur Queen.
🇬🇧 Lunatic new version integration in Queen
WIP
End of 2022
⚠ Redéfinition du concept en cours, le besoin serait mieux rendu avec une articulation des questionnaires dans les outils de collecte ⚠
🇬🇧
🇫🇷
Proposer des boucles de boucles :
Attention à l'aval
Coming soon, depending on Lunatic and Pogues
2023 (? June?)
This is a very needed feature for the Insee Familles survey (loop on respondant, then loop for each children of the current respondant). They want this for they january 2024 survey.
🇬🇧
Two new questionnaire visualizations will be added to Pogues:
🇫🇷
Deux nouvelles visualisations vont être ajoutées à Pogues :
nothing
Need to add the visualisation options and deploy the related apps.
nothing
nothing
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇫🇷 Intégration de la nouvelle version de Lunatic dans l'orchestrateur Queen.
🇬🇧 Lunatic new version integration in Queen
describe progress
Late december 2022.
🇬🇧
Lunatic V2 will involve changes in orchestrators
🇫🇷
Prendre en compte la refonte Lunatic V2 dans les orchestrateurs
here describe the impact on the product softwares, linking to related issues
link to project issues
link to project issues
describe progress
End of 2022
here describe the business case
🇬🇧
🇫🇷
Proposer une navigation entre questionnaire ménages et questionnaires individus OU entreprises/salariés, comme le font le RP et l'EEC.
Communément appelé "rond point"
here describe the impact on the product softwares, linking to related issues
InseeFr/Lunatic#1017
InseeFr/Lunatic#1021
WIP
T3 2023 ?
🇬🇧
Rewrite the Enocore to ensure its maintainability.
🇫🇷
Refonte du coeur d'Eno en java : https://github.com/InseeFr/Eno/blob/v3-develop/doc/Refonte.md
None
https://github.com/InseeFr/Eno/issues?q=is%3Aissue+is%3Aopen+label%3A%22eno+v3%22
WIP
June 2023
🇬🇧
In the case of very long dropdowns or for text inputs, we want to offer a kind of an "help" (suggester).
Suggester exists but the ability of specifying this component itself has to be added (in Pogues and Eno).
🇫🇷
L'autocomplétion est un mode de collecte de la réponse "assistée". Elle consiste à retourner des échos en fonction de la saisie faite par l'enquêté. Le composant Suggester a été développé dans Lunatic mais il faut qu'il soit spécifiable depuis l'Ihm Pogues.
🇬🇧
Business surveys have been using Pdf output since 2018 and improvements or evolutions have been requested, including a revision of the images called in the fo
🇫🇷
Evolution du fo (permettant de générer les pdf) notamment pour l'affichage des images
None
InseeFr/Eno#469
InseeFr/Eno#490
WIP
June 2022
🇬🇧
Data collection through web questionnaires and file upload are currently mutually exclusive. However, there is a need to provide a file upload feature in the context of web questionnaires.
🇫🇷
Les collectes par questionnaires et par dépôt/retrait de fichiers sont aujourd'hui orthogonales. Il existe cependant un besoin de joindre un ou plusieurs fichiers dans le cadre d'une collecte par questionnaire.
here describe the impact on the product softwares, linking to related issues
impact of the business case on the DDI use
link to project issues
link to project issues
link to project issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇬🇧
To ensure that the functional coverage of Pogues/Eno/Lunatic is the one expected by the SSP
🇫🇷
Faire en sorte que la couverture fonctionnelle des outils (en particulier Lunatic) permette de collecte les enquêtes entreprises et du SSP.
🇬🇧 We want to be able to filter a list (simple choice, multiple choice and suggester components) using variables. Several use cases already exist:
🇫🇷 On veut pouvoir filtrer une liste (QCU, QCM et suggester) à partir de variables (collectées, calculées ou externes). Plusieurs cas d'usage connus:
pour l'Enquête Emploi en Continu, on souhaite par exemple →
Pour quelle raison principale n’étiez-vous pas disponible ?
être capable d'afficher une liste de communes appartenant à un département préalablement choisi.
...
here describe the impact on the product softwares, linking to related issues
Could be through the CodeDomain
element in the GridDimension
:
<d:GridDimension displayCode="false" displayLabel="false" rank="1">
<d:CodeDomain>
<r:CodeListReference>
<r:Agency>fr.insee</r:Agency>
<r:ID>la9tdpdo</r:ID>
<r:Version>1</r:Version>
<r:TypeOfObject>CodeList</r:TypeOfObject>
</r:CodeListReference>
<r:CodeSubsetInformation>
<r:IncludedCode>
<r:Range>
<r:CollationAlgorithm>[VTL here ????]</r:CollationAlgorithm>
</r:Range>
</r:IncludedCode>
</r:CodeSubsetInformation>
</d:CodeDomain>
</d:GridDimension>
link to project issues
link to project issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇬🇧
We have to progressively sunset legacy features from Bowie that were part of the business survey solution.
🇫🇷
Il faut progressivement faire disparaître les fonctionnalités de Bowie qui seront obsolètes avec la nouvelle filière unique.
Every survey part of the legacy solution.
link to project issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇬🇧
Pogues has grown a lot since its first release, with a lot of new features. However, no real UX design has been made and it shows - in different ways. In 2023 we would start a UX process.
🇫🇷
Pogues s'est beaucoup développé depuis sa première mise à disposition, avec de nombreuses fonctionnalités ajoutées. Cependant, aucune conception UX n'a été menée, ce qui se voit à différents endroits. En 2023 nous débuterons une démarche UX à proprement parler.
here describe the impact on the product softwares, linking to related issues
nothing
issues to be created
nothing
nothing
describe progress
here we want to keep track of deadlines; and provide links to milestones
This is the quick solution to the sample feature, using the Kish algorithm.
Some household surveys need to select one member of the household (using a selection method called "Kish" 🇫🇷).
We have to provide a first pure Pogues method for that.
In the future, a more integrated and generic feature for unit selection inside questionnaire will be provided.
No real impact on the technical stack.
--
To support face-to-face mode, the parameter "Mode" must be revised in order to distinguish CAPI from CATI.
It is also necessary to think about the creation of a "filter" parameter
None
None
WIP
June 2022
🇬🇧
Omnimode here is the attribute of a questionnaire which the different collection modes are directly handled in its model. It means that a designer can specify in Pogues which element of the questionnaire is part of a specific mode.
It allows for a unique representation of the questionnaire - in Pogues and in DDI.
Nowadays, only the various instructions are omnimode.
🇫🇷
Un questionnaire omnimode est un questionnaire unique pour les différents modes de collecte qu'il doit supporter. Cela signifie qu'un concepteur peut spécifier dans Pogues quel élément est disponible dans tel ou tel mode.
Cela permet une réprésentation unique du questionnaire - dans Pogues et en DDI.
À l'heure actuelle, seules les déclarations sont omnimodes.
here describe the impact on the product softwares, linking to related issues
impact of the business case on the DDI use
link to project issues
link to project issues
link to project issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇫🇷 Réalisation d'un audit d'accessibilité en novembre 2022. Les retours sont listés coté Stromae et coté portail
none
Symbols ?
tooltip ?
May 2023
Metadata is at the core of the questionnaires created by Bowie. In the perfect settings, metadata will flow in and out of Bowie softwares by communicating with a proper metadata repository.
The main impact is to develop a communication channels between Pogues and the target metadata repository.
For Insee, it means:
During the summer, progress has been made:
🇬🇧 Lot of changes in Stromae V3 (and Lunatic) that impact the rest of Bowie, we need to analyse this impact in order to provide dedicated epics.
🇫🇷 Beaucoup de changement dans Stromae V3 (et dans Lunatic) qui impactent Bowie, il est nécessaire d'analyser cet impact et créer les epics correspondants;
Parmi les sujets :
En 2 étapes :
here describe the impact on the product softwares, linking to related issues
🇬🇧
When surveying households, we distinguish the household and the individual members of the household. In order to properly set up the questionnaire, we want to map individuals relationships, in fact pairing them.
Moreover, as far as possible we would like to infer some relationships instead of asking redundant questions. For example, if Alice is the mother of Bob, then Bob is the child of Alice.
Thus, we need to develop a feature providing this service.
🇫🇷
Lors de la collecte du TCM dans les enquêtes ménages, on collecte la description des individus du ménage mais on souhaiterait pouvoir décrire les relations deux à deux entre ces individus (X est le père de Y, Z est l'oncle de X, Y et Z sont frères etc..)
On souhaiterait également ne pas reposer de questions lorsqu'on peut déduire la relation entre deux individus (Alice est la mère de Bob donc Bob est l'enfant d'Alice)
Pour cela on souhaiterait un nouveau composant.
November 2022
February 2023
🇬🇧
Enhance specification document at the request of some users (who could use this output format of Eno in their own process)
🇫🇷
Révision du format spécifications (en fonction des besoins des utilisateurs dont EEC)
None
WIP
End of 2022
Proposer le mode management dans Lunatic
⚠ Spec : https://hackmd.io/xMcCsmVJRjaeWmtrjfOrbg ⚠
Proposition de Jonathan : InseeFr/Lunatic#1003
Le mode management doit permettre de modifier les valeurs entrées dans les formulaire en prenant en compte les différents états des variables.
Cela se traduit au niveau de l'interface par de nouveaux boutons situés à droite des champs qui permettent d'agir sur la valeur et son état.
On veut aussi pouvoir suivre l'historique des changement avec plusieurs valeurs associé à chaque réponse.
D'après les besoins, Lunatic ne peut pas porter la responsabilité de cette logique car l'état des variables et la priorité dans le choix de la valeur est dépendant de la logique choisit par l'orchestrateur (la notion de "valeur la plus récente" varie en fonction du contexte). Il est d'ailleurs prévu dans Lunatic de retirer cette notion d'état pour qu'il ne reçoive que les valeur associé à chaque question (plutôt qu'un objet d'état qu'il ignore actuellement).
// Lunatic actuel
{
"NOM": {
"COLLECTED": "John",
"PREVIOUS": null, // Ignoré par lunatic
"FORCED": null, // Ignoré par lunatic
"EDITED": null, // Ignoré par lunatic
"INPUTTED": null, // Ignoré par lunatic
}
}
// A l'avenir
{
"NOM": "John"
}
C'est l'orchestrateur qui se chargera de réconcilier les variables à envoyer au hook useLunatic()
en correspondance avec ses propre règles. Lunatic conservera lui les variable entrée dans le formulaire mais ne se charge pas de gérer l'état. Côté orchestrateur les variables pourront être sauvegardé avec une historisation.
{
"type": "PREVIOUS",
"value": "John1",
"timestamp": "2021-01-01T08:05:32:011"
},
{
"type": "COLLECTED",
"value": "John",
"timestamp": "2022-01-02T08:05:32:011"
},
{
"type": "EDITED",
"value": "john doe",
"timestamp": "2022-01-03T11:47:27:128"
},
{
"type": "FORCED",
"value": "John Doe",
"timestamp": "2022-01-03T12:05:32:011"
},
{
"type": "EDITED",
"value": "Jane Doe",
"timestamp": "2022-01-04T11:47:27:128"
}
Comme on le voit ici c'est l'ordre qui détermine la valeur à sélectionner pour l'affichage plutôt que l'état de la variable. Cette logique ne peut être portée que par l'orchestrateur qui a une connaissance de la logique métier (reprise des variable).
Dans le cadre de la solution précédente il y a plusieurs développement à prévoir côté orchestrateur :
onChange
) pour enregistrer les modifications des variables dans l'historique.Côté Lunatic il faudra prévoir un moyen de simplifier l'injection de composants avant et après un champs pour permettre l'intégration des nouveaux contrôles attendu pour la reprise des données.
Il faudra aussi prévoir un moyen de désactiver les filtres pour permettre une navigation dans le formulaire dans son intégralité en cas de besoin (à confirmer).
The use of VTL in questionnaire must be streamlined and stabilised throughout the softwares.
This goal includes:
display
condition, but Lunatic is handling a hide
condition, thus Eno adds a not
operator to every condition written in Pogues.
display
condition (hence, no more extra negation)$
sign is added at the beginning and the end of a variable name, but really this is only mandatory for controls and not for label.
NUMBER
type: currently, when a scalar response is of number type, a string is returned, designers have to handle this discrepancy (using the cast
function).link to project issues
link to project issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇬🇧
Historically, Pogues allow to design a standalone questionnaire, i.e. a questionnaire that exists on its own. This design principle worked until today though we find it a too restrictive. There are two main use cases that we want to address asap:
🇫🇷 Analysis document, in progress.
🇫🇷
Historiquement, Pogues permet de concevoir un questionnaire qui existe par lui-même. Ce principe de conception a fonctionné jusqu'à aujourd'hui, mais nous le trouvons trop restrictif. Il y a deux cas d'utilisation principaux que nous voulons traiter au plus vite :
An alpha version of the features has been rolled out in validation environment, this looks promising! ⭐
Feedback from expert designer has arrived, some features are needed (Implementing filter at the ref level, import loops for the ref questionnaire into the host questionnaire).
Since the end of February, we are in beta test.
Today, corporate surveys use Xforms/Orbeon technology. They will "soon" use Lunatic. It is therefore necessary to ensure that the functional coverage of Pogues/Eno/Lunatic is at least that of Pogues/Eno/Xforms
Propose new output formats such as a dictionary of variables
Coming soon
2023/2024 ?
🇬🇧
Several improvements or bug fixes
🇫🇷
Reprendre les issues Lunatic et pointer le non bloquant non pris en compte à l'automne 2022
Correct several bugs
none
none
maybe ?
March 2023
🇬🇧 We want to get the total passing time of a questionnaire handled by an interviewer. Several usage:
🇫🇷 On souhaite obtenir le temps de passation d'un questionnaire dans le cadre d'un questionnement en face-à-face ou téléphonique. Les différentes utilisations :
describe progress
here we want to keep track of deadlines; and provide links to milestones
here describe the business case
here describe the impact on the product softwares, linking to related issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
🇬🇧
A question designed through Pogues is represented as the unique element of the current display (page) in the generated questionnaire (web or interviewer mode). That's the behavior we want to keep, but we also want to provide a way to display several fields (or variables) in the case of the update of postal coordinates (the address).
The usage would be the following:
🇫🇷
Actuellement pour la collecte ménages on affiche une question par page sur le questionnaire généré (mode web ou enquêteur). Mais il faudrait pouvoir afficher plusieurs champs (ou variables) dans le cas de la mise à jour des coordonnées postales (adresse).
here describe the impact on the product softwares, linking to related issues
link to project issues
link to project issues
ComponentSet feature : already done in Lunatic
here we want to keep track of deadlines; and provide links to milestones
here describe the business case
🇬🇧
Lunatic has been developed since 2018. The components must now perform processing other than those planned at the beginning (display) such as running VTL.
Issues of Lunatic V2 :
"to separate": SOC principle ("separation of concerns"): isolate responsibilities as well as possible (essentially ogic and presentation).
"to overload": make it possible to use an external framework for display (e.g. material-UI), especially for a responsive design purpose.
🇫🇷
Refonte de Lunatic en appliquant le principe SOC.
Isofonctionnel avec Lunatic V1, corrections de bugs si possible mais a minima la V1 (controles, mode management)
None
June 2022
🇬🇧
Lunatic overhaul will enable the use of an external (decoupled) UI framework (ex: Material UI). Both Lunatic refactoring and a the work of an UX designer will lead to changes in Stromae V2.
🇫🇷
La refonte de Lunatic permet de rendre possible l'utilisation d'un framework externe pour l'affichage (ex : material-UI).
Cette refonte et les travaux menés par un UXDesigner vont conduire à la révision de l'ergonomie StromaeV2.
here describe the impact on the product softwares, linking to related issues
nothing
nothing
link to issue
2023 ?
🇬🇧
Several Insee survey (BdF & EdT) use a notebook as a mean to collect prices (BdF) or daily activities (EdT). Historicallys, a paper notebook was used, now we want to implement a web / mobile notebook.
🇫🇷
Pour collecter des prix ou des activités, des enquêtes (BdF ou EdT) utilisent des carnets. Historiquement les collectes étaient sous forme de papier mais il faudrait pouvoir proposer un format web pour ces objets.
here describe the impact on the product softwares, linking to related issues
impact of the business case on the DDI use
link to project issues
link to project issues
link to project issues
describe progress
here we want to keep track of deadlines; and provide links to milestones
There is an ongoing counsel helping with rethinking the web questionnaire UX. We'll participate to this in order to anticipate changes to be made. Most of the implementations will be made in 2023 though.
-
-
Most of the changes will be made at this level.
Some impact on Stromae ?
WIP
End 2022
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.