ProjetDeRechercheSurLecriture / DyslexDisorthGame

This repository contains the OpenSource code base for PRÉ (Projet de Recherche sur l’Écriture) http://www.medicine.mcgill.ca/srvachew/ http://phaedraroylelab.ca/
3 stars 4 forks source link

Record hardware details on data so we know where scoring errors might come from #208

Closed cesine closed 10 years ago

cesine commented 10 years ago

here is what a participant created on an android using the teacher dashboard looks like:

{
   "_id": "MIGM7406ANDROID10EA",
   "_rev": "1-e8030d989ed397a5d387483905fc0336",
   "fieldDBtype": "Participant",
   "fields": [
       {
           "fieldDBtype": "DatumField",
           "labelNonLinguists": "Anonymous Code",
           "labelTranslators": "Anonymous Code",
           "shouldBeEncrypted": false,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "A field to anonymously identify language speakers/participants.",
           "helpLinguists": "A field to anonymously identify language consultants/informants/experiment participants (by default it can be a timestamp, or a combination of experimenter initials, speaker/participant initials etc).",
           "version": "v2.24.0",
           "labelExperimenters": "Code Permanent",
           "encryptedValue": "migm7406android10ea",
           "mask": "migm7406android10ea",
           "value": "migm7406android10ea",
           "id": "anonymousCode"
       },
       {
           "fieldDBtype": "DatumField",
           "labelExperimenter": "Course/Class/Section Number",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "Optional course or section number, if used by the participants result reports or experimental conditions.",
           "helpLinguists": "Optional course or section number, if used by the participants result reports or experimental conditions.",
           "version": "v2.24.0",
           "labelExperimenters": "N° section",
           "encryptedValue": "confidential:VTJGc2RHVmtYMStpN0V0ZXhDZmVjcDI4V0poNFNJYzFBbHZ0ZzMxekRTWT0=",
           "mask": "xxx",
           "value": "xxx",
           "id": "courseNumber"
       },
       {
           "fieldDBtype": "DatumField",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "The first name of the speaker/participant (optional, encrypted if speaker is anonymous)",
           "helpLinguists": "The first name of the speaker/participant (optional, should be encrypted if speaker should remain anonymous)",
           "version": "v2.24.0",
           "labelExperimenters": "Prénom",
           "encryptedValue": "confidential:VTJGc2RHVmtYMTlTZ0o1MGtvNmJnUEI3dGM2a1d1OWd1Z1Z5VXRuQlJDbz0=",
           "mask": "xxxxxxxx",
           "value": "xxxxxxxx",
           "id": "firstname"
       },
       {
           "fieldDBtype": "DatumField",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "The last name of the speaker/participant (encrypted)",
           "helpLinguists": "The last name of the speaker/participant (optional, encrypted if speaker should remain anonymous)",
           "version": "v2.24.0",
           "labelExperimenters": "Nom de famille",
           "encryptedValue": "confidential:VTJGc2RHVmtYMTgxTHR6R2xrNlQyZzY1WEo4cmJIanZySk1FMWZyMnpmaz0=",
           "mask": "xxxxxx",
           "value": "xxxxxx",
           "id": "lastname"
       },
       {
           "fieldDBtype": "DatumField",
           "type": "date",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "json": {
               "timestamp": {
                   "start": null,
                   "end": null,
                   "accuracy": null
               }
           },
           "help": "Optional date of birth of the speaker/participant, if used by the experimental analysis (ie speaker/participants of 20 months performed differently from speaker/participants of 22 months).",
           "helpLinguists": "Optional date of birth of the speaker/participant, if used by the experimental analysis (ie speaker/participants of 20 months performed differently from speaker/participants of 22 months).",
           "version": "v2.24.0",
           "labelExperimenters": "Date de naissance",
           "encryptedValue": "confidential:VTJGc2RHVmtYMTg4RWF6aHFkWWprMG8ydmZvQm1qNU9pL3dxbm5lcDArZz0=",
           "mask": "xxxx-xx-xx",
           "value": "xxxx-xx-xx",
           "id": "dateOfBirth"
       }
   ],
   "dateCreated": 1412964418697,
   "url": "https://corpusdev.example.org/cesine-example",
   "version": "v2.24.0",
   "enteredByUser": {
       "value": "cesine",
       "json": {
           "user": {
               "name": "",
               "username": "cesine"
           },
           "software": {
               "appCodeName": "Mozilla",
               "appName": "Netscape",
               "appVersion": "5.0 (Linux; Android 4.4.4; Nexus 10 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
               "cookieEnabled": true,
               "doNotTrack": null,
               "language": "fr",
               "onLine": true,
               "platform": "Linux armv7l",
               "product": "Gecko",
               "productSub": "20030107",
               "userAgent": "Mozilla/5.0 (Linux; Android 4.4.4; Nexus 10 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
               "vendor": "Google Inc.",
               "vendorSub": "",
               "location": {
                   "speed": null,
                   "heading": null,
                   "altitudeAccuracy": null,
                   "accuracy": 53.361000061035156,
                   "altitude": null,
                   "longitude": -73.5537801,
                   "latitude": 45.5170301
               }
           },
           "hardware": {
           }
       }
   },
   "api": "participants"
}
cesine commented 10 years ago

here is a participant that was created on an android in the sails game

{
   "_id": "2014-10-10_15.07_1412968062890",
   "_rev": "3-f09dd40ef4eb8f152a48ec0c92cc5d07",
   "fieldDBtype": "Participant",
   "fields": [
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Anonymous Code",
           "labelNonLinguists": "Anonymous Code",
           "labelTranslators": "Anonymous Code",
           "shouldBeEncrypted": false,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "A field to anonymously identify language speakers/participants.",
           "helpLinguists": "A field to anonymously identify language consultants/informants/experiment participants (by default it can be a timestamp, or a combination of experimenter initials, speaker/participant initials etc).",
           "version": "v2.2.0",
           "encryptedValue": "2014-10-10_15.07_1412968062890",
           "mask": "2014-10-10_15.07_1412968062890",
           "value": "2014-10-10_15.07_1412968062890",
           "dontRecurse": true,
           "id": "anonymousCode"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "First Name",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "The first name of the speaker/participant (optional, encrypted if speaker is anonymous)",
           "helpLinguists": "The first name of the speaker/participant (optional, should be encrypted if speaker should remain anonymous)",
           "version": "v2.2.0",
           "encryptedValue": "confidential:VTJGc2RHVmtYMSsxR000Y1JZUFVLcFVxbFlzeWxxeFVtZml6ZGFZZ1lLST0=",
           "mask": "xxxxxxxx xxxx",
           "value": "xxxxxxxx xxxx",
           "id": "firstname"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Last Name",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "The last name of the speaker/participant (encrypted)",
           "helpLinguists": "The last name of the speaker/participant (optional, encrypted if speaker should remain anonymous)",
           "version": "v2.2.0",
           "encryptedValue": "confidential:VTJGc2RHVmtYMTg0TDNwZTFPTkZ3clg5MUtiQzNUeGUzcDdkaDFxOW0xRlBMTmJIbzdJMmdPRmlSRi80S2JlUQ==",
           "mask": "xxxxxxx xx xx xxxx",
           "value": "xxxxxxx xx xx xxxx",
           "id": "lastname"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Username",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "Optional username of the speaker/participant, if the speaker/participant is registered in the system (encrypted).",
           "helpLinguists": "Optional username of the speaker/participant, if the speaker/participant is registered in the system (encrypted).",
           "version": "v2.2.0",
           "id": "username"
       },
       {
           "fieldDBtype": "DatumField",
           "type": "date",
           "labelFieldLinguists": "Date of Birth",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "json": {
               "timestamp": {
                   "start": null,
                   "end": null,
                   "accuracy": null
               }
           },
           "help": "Optional date of birth of the speaker/participant, if used by the experimental analysis (ie speaker/participants of 20 months performed differently from speaker/participants of 22 months).",
           "helpLinguists": "Optional date of birth of the speaker/participant, if used by the experimental analysis (ie speaker/participants of 20 months performed differently from speaker/participants of 22 months).",
           "version": "v2.2.0",
           "id": "dateOfBirth"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Gender",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "json": {
               "choices": [
                   "Female",
                   "Male",
                   "Unknown"
               ],
               "children": [
                   "Girl",
                   "Boy",
                   "Unknown"
               ],
               "adult": [
                   "Woman",
                   "Man",
                   "Unknown"
               ]
           },
           "help": "Optional gender or biological sex of the speaker/participant, if used by the speaker/participants result reports or experimental analysis.",
           "helpLinguists": "Optional gender or biological sex of the speaker/participant, if used by the speaker/participants result reports or experimental analysis.",
           "version": "v2.2.0",
           "id": "gender"
       },
       {
           "fieldDBtype": "DatumField",
           "type": "language collection",
           "labelFieldLinguists": "Language(s) Spoken/Understood",
           "labelNonLinguists": "Language(s) Spoken/Understood",
           "labelTranslators": "Language(s) Spoken/Understood (Ethnologue)",
           "labelComputationalLinguists": "Language(s) Spoken/Understood (ISO 639-3)",
           "shouldBeEncrypted": false,
           "defaultfield": true,
           "json": {
               "languages": [
                   {
                       "language": {
                           "ethnologueUrl": "",
                           "wikipediaUrl": "",
                           "iso": "",
                           "locale": "",
                           "englishName": "",
                           "nativeName": "",
                           "alternateNames": ""
                       },
                       "fluency": {
                           "comprehensionFluency": "",
                           "speakingFluency": "",
                           "readingFluency": "",
                           "writingFluency": ""
                       },
                       "dates": {
                           "start": "",
                           "end": "",
                           "proportionOfUse": ""
                       }
                   }
               ]
           },
           "help": "This is the langauge name (or language family), it is optionally tied to an Ethnologue language code (ISO 639-3).",
           "helpLinguists": "This is the langauge (or language family), there is optional extra information fields if your team wants to tie it to an Ethnologe three letter language code (ISO 639-3).",
           "version": "v2.2.0",
           "id": "languages"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Confidentiality Setting",
           "labelNonLinguists": "Confidentiality Setting",
           "labelTranslators": "Confidentiality Setting",
           "shouldBeEncrypted": false,
           "mask": "anonymous",
           "encryptedValue": "anonymous",
           "value": "anonymous",
           "showToUserTypes": "all",
           "defaultfield": true,
           "json": {
               "choices": [
                   "generalize",
                   "team",
                   "anonymous",
                   "public"
               ]
           },
           "help": "Confidentiality setting of this speaker. By default the speaker is anonymous which means data can be associated to one speaker, but the speaker cannot be identified) hidden means data will be associated to the entire speaker population of the corpus, team means that team members can see the consultant's identity, but the outsiders of the team can only see an anonymous user, public means the speaker has signed a consent form and has asked that his/her data to be associated his/her user account or identity.",
           "helpLinguists": "Confidentiality setting of this speaker. By default the speaker is anonymous which means data can be associated to the speaker, but the speaker cannot be identified) hidden means data will be associated to the entire speaker population of the corpus, team means that team members can see the consultant's identity, but the outsiders of the team can only see an anonymous user, public means the speaker has signed a consent form and has asked that his/her data to be associated his/her user account or identity.",
           "version": "v2.2.0",
           "id": "confidentiality"
       },
       {
           "fieldDBtype": "DatumField",
           "labelExperimenter": "Course/Class/Section Number",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "Optional course or section number, if used by the participants result reports or experimental conditions.",
           "helpLinguists": "Optional course or section number, if used by the participants result reports or experimental conditions.",
           "version": "v2.2.0",
           "id": "courseNumber"
       },
       {
           "fieldDBtype": "DatumField",
           "labelExperimenter": "Hemispheric dominance (handedness)",
           "shouldBeEncrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "json": {
               "choices": [
                   "Right",
                   "Left",
                   "Unknown"
               ]
           },
           "help": "Optional right or left handedness or hemispheric dominante of the participant, if used by the participants result reports or experimental conditions.",
           "helpLinguists": "Optional right or left handedness or hemispheric dominante of the participant, if used by the participants result reports or experimental conditions.",
           "version": "v2.2.0",
           "id": "hemisphericDominance"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "School",
           "labelExperimenters": "École",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "The school/institution where the student is affiliated (optional, encrypted if speaker is anonymous)",
           "helpLinguists": "The school/institution where the student is affiliated (optional, encrypted if speaker is anonymous)",
           "version": "v2.2.0",
           "id": "school"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "School Board",
           "labelExperimenters": "Commission scolaire",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "The school board/commission scolaire where the student goes to school (optional, encrypted if speaker is anonymous.)",
           "helpLinguists": "The school board/commission scolaire where the student goes to school. Can be used to group student results/dialects. (optional, encrypted if speaker is anonymous.)",
           "version": "v2.2.0",
           "id": "schoolBoard"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Notes",
           "labelExperimenters": "Notes",
           "shouldBeEncrypted": true,
           "encrypted": true,
           "showToUserTypes": "all",
           "defaultfield": true,
           "help": "Optional notes for the participant's file, encrypted if speaker is anonymous.",
           "helpLinguists": "Optional notes for the participant's file, encrypted if speaker is anonymous.",
           "version": "v2.2.0",
           "id": "notes"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Imported/Entered By",
           "labelNonLinguists": "Entered By",
           "labelTranslators": "Imported/Entered By",
           "labelExperimenters": "Rempli par",
           "type": "users",
           "shouldBeEncrypted": false,
           "showToUserTypes": "all",
           "readonly": true,
           "defaultfield": true,
           "json": {
               "user": {
                   "name": "",
                   "username": "marquisalx"
               },
               "hardware": {
               },
               "software": {
                   "appCodeName": "Mozilla",
                   "appName": "Netscape",
                   "appVersion": "5.0 (Linux; Android 4.3; ME302C Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Safari/537.36",
                   "cookieEnabled": true,
                   "doNotTrack": null,
                   "hardwareConcurrency": 4,
                   "language": "fr",
                   "languages": [
                       "fr-FR",
                       "fr",
                       "en-US",
                       "en"
                   ],
                   "maxTouchPoints": 5,
                   "onLine": true,
                   "platform": "Linux i686",
                   "product": "Gecko",
                   "productSub": "20030107",
                   "userAgent": "Mozilla/5.0 (Linux; Android 4.3; ME302C Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Safari/537.36",
                   "vendor": "Google Inc.",
                   "vendorSub": ""
               }
           },
           "help": "The user who originally entered the participant",
           "helpLinguists": "The user who originally entered the participant",
           "version": "v2.2.0",
           "encryptedValue": "marquisalx",
           "mask": "marquisalx",
           "value": "marquisalx",
           "id": "enteredByUser"
       },
       {
           "fieldDBtype": "DatumField",
           "labelFieldLinguists": "Modified By",
           "labelNonLinguists": "Modified By",
           "labelTranslators": "Modified By",
           "labelExperimenters": "Modifié par",
           "type": "users",
           "shouldBeEncrypted": false,
           "showToUserTypes": "all",
           "readonly": true,
           "defaultfield": true,
           "json": {
               "users": [
                   {
                       "username": "marquisalx",
                       "name": "marquisalx",
                       "software": {
                           "appCodeName": "Mozilla",
                           "appName": "Netscape",
                           "appVersion": "5.0 (Linux; Android 4.3; ME302C Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Safari/537.36",
                           "cookieEnabled": true,
                           "doNotTrack": null,
                           "hardwareConcurrency": 4,
                           "language": "fr",
                           "languages": [
                               "fr-FR",
                               "fr",
                               "en-US",
                               "en"
                           ],
                           "maxTouchPoints": 5,
                           "onLine": true,
                           "platform": "Linux i686",
                           "product": "Gecko",
                           "productSub": "20030107",
                           "userAgent": "Mozilla/5.0 (Linux; Android 4.3; ME302C Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Safari/537.36",
                           "vendor": "Google Inc.",
                           "vendorSub": ""
                       },
                       "hardware": {
                       }
                   },
                   {
                       "username": "marquisalx",
                       "name": "marquisalx",
                       "software": {
                           "appCodeName": "Mozilla",
                           "appName": "Netscape",
                           "appVersion": "5.0 (Linux; Android 4.3; ME302C Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Safari/537.36",
                           "cookieEnabled": true,
                           "doNotTrack": null,
                           "hardwareConcurrency": 4,
                           "language": "fr",
                           "languages": [
                               "fr-FR",
                               "fr",
                               "en-US",
                               "en"
                           ],
                           "maxTouchPoints": 5,
                           "onLine": true,
                           "platform": "Linux i686",
                           "product": "Gecko",
                           "productSub": "20030107",
                           "userAgent": "Mozilla/5.0 (Linux; Android 4.3; ME302C Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Safari/537.36",
                           "vendor": "Google Inc.",
                           "vendorSub": ""
                       },
                       "hardware": {
                       }
                   }
               ]
           },
           "help": "An array of users who modified the participant",
           "helpLinguists": "An array of users who modified the participant, this can optionally introduce a 'CheckedByUsername' into the participant's validation status if your team chooses.",
           "version": "v2.2.0",
           "encryptedValue": "marquisalx,marquisalx",
           "mask": "marquisalx,marquisalx",
           "value": "marquisalx,marquisalx",
           "id": "modifiedByUser"
       }
   ],
   "url": "https://corpusdev.lingsync.org/marquisalx-example",
   "version": "v2.2.0",
   "dateCreated": 1412968305316,
   "dateModified": 1412968376235,
   "api": "participants"
}