Dữ liệu của các hoạt động ngoài giờ học (LMS Data)

Mục lục

Một khóa học của ClassIn có thể tạo được nhiều hoạt động học tập LMS. Hiện tại, có thể nhận dữ liệu trả về theo thời gian thực cho các hoạt động sau:

  • Điểm của hoạt động Bài tập
  • Điểm của hoạt động Bài kiểm tra
  • Điểm của hoạt động Phiếu đáp án

The course consists of various learning activities on the ClassIn LMS. Currently, the learning activities that are available with real-time webhooks are:

  • Score of Assignment
  • Assignment Submission
  • Score of Test
  • Score of Answer Sheet

Assignment score

Gửi dữ liệu điểm số của học sinh theo thời gian thực ngay sau khi bài tập được cập nhật điểm

Key Định dạng Mô tả
Cmd String cmd=’HomeworkScore’
SID Int64 ID của trường
CourseID Int64 ID khóa học
CourseName String Tên khóa học
Data Object Chi tiết
└ UnitId Int64 ID chương
└ UnitName String Tên chương
└ ActivityId Int64 ID của hoạt động
└ ActivityName String Tên hoạt động
└ Score float Điểm số
└ StudentInfo Object Thông tin học sinh
  └ StudentUid Int64 UID của học sinh
  └ StudentName String Tên học sinh: Tên hiển thị trên app của HS khi tham gia hoạt động Bài tập
  └ StudentAccount String Tài khoản học sinh (SĐT/Email)
└ SubmissionTime Int64 Thời gian nộp bài tập
└ CorrectionTime Int64 Thời gian bài tập được chấm điểm
└ StudentScoringRate float Mức độ hoàn thành của học sinh: Hiện điểm theo dạng thập phân (ví dụ: 0.8)
Logic tính điểm: Mức độ hoàn thành của học sinh = Số điểm thực tế của học sinh đã được chấm / Tổng điểm của bài tập
└ TeacherInfo Object Thông tin GV đã chấm điểm
  └ TeacherUid Int64 UID giáo viên
  └ TeacherName String Tên giáo viên: Tên hiển thị trên app của GV khi mở hoạt động Bài tập
  └ TeacherAccount String Tài khoản giáo viên (SĐT/Email)

Example


{
    "Cmd" : "HomeworkScore",
    "SID" : 2803666,
    "CourseID" : 2279909,
    "CourseName" : "Test",
    "Data" : {
        "UnitId" : 256,
        "UnitName" : "Unit One",
        "ActivityId" : 185647,
        "ActivityName" : "Test Homework",
        "Score" : 100,
        "StudentInfo" : {
                "StudentUid" : 1000083,
                "StudentName" : "Amy",
                "StudentAccount" : "13451113311"
        },
        "SubmissionTime" : 1713053774,
        "CorrectionTime" : 1713083674,
        "StudentScoringRate" : 0.9,
        "TeacherInfo" : {
                "TeacherUid" : 1000082,
                "TeacherName" : "Mike",
                "TeacherAccount" : "13466668866"
        }
    }
}

Assignment submission

Gửi dữ liệu nộp bài tập của học sinh theo thời gian thực ngay sau khi bài tập được nộp

Key Data Description
Cmd String cmd=’HomeworkSubmit’
SID Int64 ID của trường
CourseID Int64 ID khóa học
CourseName String Tên khóa học
Data Object Chi tiết
└ UnitId Int64 ID chương
└ UnitName String Tên chương
└ ActivityId Int64 ID của hoạt động
└ ActivityName String Tên hoạt động
StudentTotal Int64 Số lượng học sinh tham gia hoạt động
SubmitTotal Int64 Số học sinh đã nộp bài
SubmissionTime Int64 Thời gian nộp bài
IsSubmitLate Int64 Nộp trễ: 0=không, 1=có
IsRevision Int64 Trả về làm lại: 0=không, 1=có
Content String Nội dung bài tập
Files Object Tệp đính kèm bài tập
└ Src String URL tải tệp
└ FileName String Tên tệp
└ FileExtension String Định dạng tệp
StudentInfo Object Thông tin học sinh
└ StudentUid Int64 UID học sinh
└ StudentName String Tên học sinh: Tên hiển thị trên app của HS khi tham gia hoạt động Bài tập
└ StudentAccount String Tài khoản học sinh (SĐT/Email)
TeacherInfo Object Thông tin GV
└ TeacherUid Int64 UID giáo viên
└ TeacherName String Tên giáo viên: Tên hiển thị trên app của GV khi mở hoạt động Bài kiểm tra
└ TeacherAccount String Tài khoản giáo viên (SĐT/Email). Nếu bài kiểm tra được chấm điểm tự động thì trường này sẽ trống

Example


{
    "ActionTime": 1741334951,
    "CourseID": 26901289,
    "TimeStamp": 1741335551,
    "SafeKey": "d9a20c9bf3ac660766ddbfac4988ca31",
    "Cmd": "HomeworkSubmit",
    "CourseName": "test course",
    "SID": 1068502,
    "_id": "67caa9a7976eb388db162139",
    "Data": {
        "Files": [
            {
                "FileExtension": "png",
                "src": "https://static.eeo.cn/upload/files/file01/20250307/03_03_71cfd3e-a71f-58e7-0cc8-577183e60485_1741334949147.png",
                "fileName": "eeo.png"
            }
        ],
        "TeacherInfo": {
            "TeacherName": "Lucy",
            "TeacherAccount": "001-38102248",
            "TeacherUid": 10602
        },
        "ActivityName": "Magic Key",
        "UnitName": "test unit",
        "IsSubmitLate": 1,
        "StudentTotal": 2,
        "Content": "<section class=\"eeo-editor-wrapper\" style=\"font-size:15px;color:#38404A;\"><p>start\u00a0</p></section>",
        "ActivityId": 54911996,
        "IsRevision": 0,
        "StudentInfo": {
            "StudentName": "GoodGuy",
            "StudentAccount": "23672340105",
            "StudentUid": 102494
        },
        "UnitId": 255618,
        "SubmissionTime": 1741334950,
        "SubmitTotal": 1
    }
}

Test score

Gửi điểm số của học sinh theo thời gian thực ngay sau khi bài kiểm tra được chấm điểm thủ công hoặc tự động. Nếu như bài kiểm tra chỉ được chấm điểm một phần thì dữ liệu sẽ không được gửi

 

Key Định dạng Mô tả
Cmd String cmd=’ExamScore’
SID Int64 ID của trường
CourseID Int64 ID của khóa học
CourseName String Tên khóa học
Data Object Chi tiết
└ UnitId Int64 ID chương
└ UnitName String Tên chương
└ ActivityId Int64 ID của hoạt động
└ ActivityName String Tên hoạt động
└ClassId Int64 ID lớp học — sẽ hiển thị nếu như bài kiểm tra được giao trong lớp
└ Score float Điểm số
└ StudentInfo Object Thông tin học sinh
 └ StudentUid Int64 UID học sinh
 └ StudentName String Tên học sinh: Tên hiển thị trên app của HS khi tham gia hoạt động Bài kiểm tra
 └ StudentAccount String Tài khoản học sinh (SĐT/Email)
└ SubmissionTime Int64 Thời gian nộp bài kiểm tra
└ AnswerDuration Int64 Thời gian học sinh làm bài kiểm tra (tính theo giây)
└ CorrectionTime Int64 Thời gian bài kiểm tra được chấm điểm
└ StudentScoringRate float Mức độ hoàn thành của học sinh: Hiện điểm theo dạng thập phân (ví dụ: 0.8)
Logic tính điểm: Mức độ hoàn thành của học sinh = Số điểm thực tế của học sinh đã được chấm / Tổng điểm của bài kiểm tra
└ TeacherInfo Object Thông tin giáo viên đã chấm điểm
 └ TeacherUid Int64 UID của giáo viên. Nếu bài kiểm tra được chấm điểm tự động thì trường này sẽ là 0
 └ TeacherName String Tên giáo viên: Tên hiển thị trên app của GV khi mở hoạt động Bài kiểm tra
 └ TeacherAccount String Tài khoản giáo viên (SĐT/Email). Nếu bài kiểm tra được chấm điểm tự động thì trường này sẽ trống
└TopicDetails array[object] Điểm chi tiết
 └TopicId int ID của câu hỏi
 └TopicType String Loại câu hỏi. 1: Một đáp án đúng; 2: Nhiều đáp án đúng; 3: Đúng/Sai; 4: Điền vào chỗ trống; 5: Tự luận Q&A; 6: Tổng hợp
 └ TopicResult int 0 = đang chờ chấm điểm,1=đúng,3=đúng một phần,2=sai,4=không trả lời
 └TopicScore float Điểm của học sinh ở câu này
 └TopicMaxScore float Điểm tối đa của câu
 └SubTopicDetails array[object] Nếu không có câu hỏi phụ thì trường này sẽ hiển thị bảng trống[]
   └SubTopicId int ID của câu hỏi phụ
   └SubTopicType String Loại câu hỏi. 1: Một đáp án đúng; 2: Nhiều đáp án đúng; 3: Đúng/Sai; 4: Điền vào chỗ trống; 5: Tự luận Q&A; 6: Tổng hợp  
   └SubTopicResult int[] 0 = đang chờ chấm điểm,1=đúng,3=đúng một phần,2=sai,4=không trả lời
   └SubTopicScore float Điểm của học sinh ở câu này
   └SubTopicMaxScore int Điểm tối đa của câu

Example


{
    "CourseID": 429724,
    "Cmd": "ExamScore",
    "CourseName": "Test Class",
    "SID": 187286,
    "Data": {
        "ClassId": 34928113,
        "TeacherInfo": {
            "TeacherName": "Lucy",
            "TeacherAccount": "12114444011",
            "TeacherUid": 187286
        },
        "ActivityName": "test Monday",
        "UnitName": "Unit 1",
        "AnswerDuration": 57,
        "ActivityId": 32044258,
        "Score": 24,
        "StudentInfo": {
            "StudentName": "Tom",
            "StudentAccount": "12133333301",
            "StudentUid": 187268
        },
        "UnitId": 32014550,
        "SubmissionTime": 1729576858,
        "TopicDetails": [{
            "TopicId": 1,
            "TopicType": "1",
            "SubTopicDetails": [],
            "TopicResult": [2],
            "TopicMaxScore": 5,
            "TopicScore": 0
        }, 
        {
            "TopicId": 2,
            "TopicType": "5",
            "SubTopicDetails": [],
            "TopicResult": [3],
            "TopicMaxScore": 4,
            "TopicScore": 2
        }, 
        {
            "TopicId": 3,
            "TopicType": "4",
            "SubTopicDetails": [],
            "TopicResult": [2, 2, 2],
            "TopicMaxScore": 6,
            "TopicScore": 0
        }, 
        {
            "TopicId": 4,
            "TopicType": "6",
            "SubTopicDetails": [{
                "SubTopicId": 1,
                "SubTopicType": "1",
                "SubTopicResult": [2],
                "SubTopicScore": 0,
                "SubTopicMaxScore": 5
            }, 
            {
                "SubTopicId": 2,
                "SubTopicType": "2",
                "SubTopicResult": [2],
                "SubTopicScore": 0,
                "SubTopicMaxScore": 4
            }],
            "TopicResult": [2],
            "TopicMaxScore": 9,
            "TopicScore": 0
        }],
        "StudentScoringRate": 0.083333,
        "CorrectionTime": 1729576949
    }
}

AnswerSheet Score

Gửi theo thời gian thực ngay sau khi phiếu đáp án được chấm điểm thủ công hoặc tự động. Nếu như phiếu đáp án chỉ

được chấm điểm một phần thì dữ liệu sẽ không được gửi. Khi điểm số của Phiếu đáp án được chỉnh sửa hoặc cập nhật thì dữ liệu này cũng sẽ được gửi.

Key Data Description
Cmd String cmd=’AnswerSheetScore’
SID Int64 ID của trường
CourseID Int64 ID của khóa học
CourseName String Tên khóa học
Data Object Chi tiết
└ UnitId Int64 ID Chương
└ UnitName String Tên Chương
└ ActivityId Int64 ID hoạt động
└ ActivityName String Tên hoạt động
└ClassId Int64 ID lớp học (lesson) — Nếu hoạt động được mở trong lớp học ảo thì sẽ có dữ liệu này
└ Score float Điểm tổng
└ StudentInfo Object Thông tin học sinh
 └ StudentUid Int64 UID học sinh
 └ StudentName String Tên học sinh: Tên hiển thị trên app của HS khi tham gia hoạt động Bài kiểm tra
 └ StudentAccount String Tài khoản học sinh (SĐT/Email)
└ SubmissionTime Int64 Thời gian nộp bài
└ AnswerDuration Int64 Thời gian làm bài
└ CorrectionTime Int64 Thời gian chấm bài
└ StudentScoringRate float Tỷ lệ điểm của học sinh: Số thập phân, ví dụ 0.8
Công thức tính: Tỷ lệ điểm của học sinh = Số điểm học sinh đạt được trong bài tập / Tổng điểm tối đa
└ TeacherInfo Object Hiện tại đang trống
 └ TeacherUid Int64 Hiện tại đang mặc định là 0. Sẽ cập nhật trong tương lai
 └ TeacherName String Hiện tại đang trống
 └ TeacherAccount String Tài khoản giáo viên: Nếu giáo viên đã đăng ký số điện thoại di động, số điện thoại sẽ được sử dụng để gửi dữ liệu. Nếu không có số điện thoại, địa chỉ email sẽ được sử dụng thay thế. Sẽ để trống nếu Phiếu đáp án được chấm điểm tự động
└TopicDetails array[object] array
 └TopicId int ID của câu hỏi
 └TopicType String Loại câu hỏi: 1: Một đáp án đúng;
2: Nhiều đáp án đúng; 3: Đúng – Sai; 4: Điền vào chỗ trống; 5: Câu hỏi tự luận; 6: Câu hỏi tổng hợp
 └ TopicResult int 0 = Chờ chấm điểm,1= Đúng,3= Đúng 1 phần,2= Sai,4= Không trả lời
 └TopicScore float Điểm của học sinh
 └TopicMaxScore float Điểm tối đa học sinh có thể nhận được
 └SubTopicDetails array[object] nếu không có câu hỏi phụ thì phần này sẽ trống []
   └SubTopicId int id câu hỏi phụ
   └SubTopicType String Loại câu hỏi: 1: Một đáp án đúng; 2: Nhiều đáp án đúng; 3: Đúng – Sai; 4: Điền vào chỗ trống; 5: Câu hỏi tự luận; 6: Câu hỏi tổng hợp  
   └SubTopicResult int[] 0 = Chờ chấm điểm,1= Đúng,3= Đúng 1 phần,2= Sai,4= Không trả lời
   └SubTopicScore float Điểm của học sinh
   └SubTopicMaxScore int Điểm tối đa học sinh có thể nhận được

Example


{
    "CourseID": 429724,
    "Cmd": "ExamScore",
    "CourseName": "Test Class",
    "SID": 187286,
    "Data": {
        "ClassId": 34928113,
        "TeacherInfo": {
            "TeacherName": "",
            "TeacherAccount": "",
            "TeacherUid": 0
        },
        "ActivityName": "AnswerSheet on Monday",
        "UnitName": "Unit 1",
        "AnswerDuration": 57,
        "ActivityId": 32044258,
        "Score": 24,
        "StudentInfo": {
            "StudentName": "Tom",
            "StudentAccount": "12133333301",
            "StudentUid": 187268
        },
        "UnitId": 32014550,
        "SubmissionTime": 1729576858,
        "TopicDetails": [{
            "TopicId": 1,
            "TopicType": "1",
            "SubTopicDetails": [],
            "TopicResult": [2],
            "TopicMaxScore": 5,
            "TopicScore": 0
        }, 
        {
            "TopicId": 2,
            "TopicType": "5",
            "TopicResult": [3],
            "TopicMaxScore": 4,
            "TopicScore": 2
        }, 
        {
            "TopicId": 3,
            "TopicType": "4",
            "TopicResult": [2, 2, 2],
            "TopicMaxScore": 6,
            "TopicScore": 0
        }, 
        {
            "TopicId": 4,
            "TopicType": "3",
            "TopicResult": [2],
            "TopicMaxScore": 9,
            "TopicScore": 0
        }],
        "StudentScoringRate": 0.083333,
        "CorrectionTime": 1729576949
    }
}