Once all the management layers and knowledge’s structure are declared, you can start registering all your student’s data and retrieve their statistics on our API. Hence, you can declare Event objects and manage them. For instance, if you need to store results, you can declare an Event object with a EventResult type.\\ The only constraint for the consolidation feature is that you must register your Event as EventReview type and the payload should be either “0” or “100”. For the adaptive learning functionality, the more types we have and the more precise is the payload, the more accurate we are doing recommendations.\\ {{ :api2:data:event.jpg?600 | Event}} ===Object resources=== ^ Property ^ Type ^ Description ^ | id | Integer | identifier for the database of Domoscio's API | | event_type | Text | The type of this Event object. “EventResult”, “EventRead” or “EventReview”| | student_id | Integer | Student identifier | | content_id | Integer | The content identifier | | return_recommendation | Boolean | If true, the system computes and sends backs recommendations, otherwise computes and does not send | | generated_at | DateTime | Time at which the event has been done | |payload | Text | The payload of this event indicates the sucess or fail of the student for this event | | standard | String | standard used to declare the payload | | created_at | DateTime | Date of creation of the object | | updated_at | DateTime | Last time the object has been modified | ==Note concerning the payload== You can have several types of payloads.\\ - the first one is a classic score between 0 and 100. The standard is then "score", and a payload of 100 indicates success while a payload of 0 indicates a failure. - the second is the xAPI norm. In that case, the standard is "xAPI", and the payload has the following form: { "actor"=>{"objectType"=>"Agent", "name"=>"Evan Friburg", "mbox"=>"mailto:test@mail.com", "account"=>{"name"=>"32", "homePage"=>"https://stats-engine.domoscio.com/v2/instances/1/students/32"}}, "verb"=>{"id"=>"http://adlnet.gov/expapi/verbs/scored"}, "object"=>{"id"=>"cell_tests/28", "definition"=>{"name"=>{"en-US"=>"test 1"}, "description"=>{"en-US"=>"

Que représente pour vous ce mnemos ? pessimisme

\r\n

\"\"

"}, "type"=>"http://adlnet.gov/expapi/activities/question"}}, "result"=>{"score"=>{"scaled"=>0}}, "timestamp"=>"2017-10-05T16:28:26+00:00", "id"=>"2aa13d13-671e-408a-a0f7-d85ebfcc9835", "version"=>"1.0.1" }
==Note concerning the event_type== An EventResult is created when the learner answers a question in a learning objective, as opposed to an EventReview, where the learner answers a question in a reviewing objective. An EventRead is created when the learner interacted with a "Learning"-tagged content in order to learn a new concept. If you are in any of these cases, you can use an EventBlank. ===Create (POST)=== ^ Method | POST | ^ URL | /events | ==Parameters (*Requiered parameters)== ^ Property ^ Type ^ Description ^ | event_type* | Text | The type of this Event object. “EventResult”, “EventRead” or “EventReview”| | student_id or student_uid * | Integer | Student identifier | | content_id or content_uid * | Integer | The content identifier | | return_recommendation | Boolean | If true, the system computes and sends backs recommendations, otherwise computes and does not send | | generated_at | DateTime | Time at which the event has been done. If empty, it is replaced by the Time of creation | | payload* | Text | The payload of this event indicates the sucess or fail of the student for this event | | standard* | String | standard used to declare the payload | ==Send the request (JSON input example)== { "student_id": 379, "content_id": 2749, "payload": 100, "standard": "score", "return_recommendation": "false", "event_type": "EventResult", "generated_at": "2017-11-27T11:17:57+00:00" } ==Get the response (JSON output example)== { "id": 559, "event_type": "EventResult", "payload": 100, "created_at": "2017-11-27T13:34:18.977Z", "updated_at": "2017-11-27T13:34:18.977Z", "student_id": 379, "content_id": 2749, "content_uid": "question1", "generated_at": "2017-11-27T11:17:57.000Z", "return": true, "standard": "score" } ===Fetch (GET)=== ^ Method | GET| ^ URL | /events | If no event_id is provided it will fetch all the Events for your instance. You can choose to add the parameters student_id, content_id, knowledge_node_id, event_type, date_start (all the events after that date), date_end (all the event before that date), or event_type. ==Get the response (JSON output example)== **With ID provided**\\ { "id": 560, "event_type": "EventResult", "payload": 100, "created_at": "2017-11-27T13:36:39.601Z", "updated_at": "2017-11-27T13:36:39.689Z", "student_id": 379, "content_id": 2749, "content_uid": "question1", "generated_at": "2017-11-27T11:17:57.000Z", "return": true, "standard": "score" } **Without ID provided**\\ [ { "id": 447, "event_type": "EventReview", "payload": 100, "created_at": "2017-09-20T14:35:45.143Z", "updated_at": "2017-09-20T14:35:45.149Z", "student_id": 267, "content_id": 710, "content_uid": null, "generated_at": "2017-09-20T14:35:45.143Z", "return": null, "standard": null }, { "id": 448, "event_type": "EventReview", "payload": 0, "created_at": "2017-09-20T14:35:45.181Z", "updated_at": "2017-09-20T14:35:45.189Z", "student_id": 267, "content_id": 709, "content_uid": null, "generated_at": "2017-09-20T14:35:45.181Z", "return": null, "standard": null } ] ===Fetch Events by Student (GET)=== Instead of using event_id to retrieve related data, you can fetch all Events for a given Student. ^ Method | GET | ^ URL | students/{student_id}/events |