표 문항 데이터 구조
•
CMS
◦
BlankQuizV2NodeBlock은 TableAnswerBlock의 부모 관계로서 publish 되어야 한다.
•
LMS - 미리보기
◦
Study 렌더링
▪
content.json 그대로 렌더링 되면 된다.
◦
Result 렌더링
▪
content.json 그대로 렌더링 되면서
•
BlankQuizV2는 스스로 정답을 계산해 렌더링
•
나머지 표는 그대로
◦
estimation의 경우
▪
BlankQuizV2NodeBlock이 스스로 계산되고
▪
상위의 TableAnswerBlock은 하위 블록들의 결과가 모두 맞다면 정답, 아니면 오답으로 처리한다.
•
B2C
◦
estimation의 경우
▪
BlankQuizV2NodeBlock이 스스로 계산되고
▪
상위의 TableAnswerBlock은 하위 블록들의 결과가 모두 맞다면 정답, 아니면 오답으로 처리한다.
미리보기 채점의 경우
•
채점 방법
◦
채점 준비
▪
study.learning 상태에서 답안을 입력
▪
readyForSubmit 상태에서 notReadyForSubmit guard를 실행
▪
false라면 readyForSubmit 상태가 됨.
◦
각 Node 채점
▪
readyForSubmit 상태에서 SUBMIT이 발동되면, 'evaluateEstimationResults', 'estimationStudyInputToResult’ 액션 발동
▪
evaluateEstimationResults는 editor의 모든 Node 블록을 불러와 evaluateAnswerResult 메소드를 실행시킨다.
▪
evaluateAnswerResult 메소드가 있는 block만 estimationAnswerResults에 결과가 담긴다.
▪
각 block
◦
Node 결과 동기화 - estimationStudyInputToResult
▪
estimationStudyInputToResult에선 부모 - 자식 관계로 이어져있는 Node 결과를 이어 통합해준다. (ex. H1 - H2 - BlankBlockV2 → 여기서 BlankBlockV2가 맞았다면, H2 - H1도 맞은 것이 됨. = 최종 결과 chip이 H1이 가진 결과로 판단)
표 문항 답안 추가 방안
•
TableAnswerBlock이 가진 BlankBlockV2NodeBlockEstimation은 가상의 것. 따라서 editor의 Node 실체가 존재하지 않음. = BlankQuizV2NodeBlock의 evaluateAnswerResult에 의한 채점은 불가능
◦
하지만, BlankQuizV2NodeBlock의 evaluateAnswerResult 메소드를 재활용하는 것이 가장 이상적
◦
실체 Node를 만들지 않는 이상 방법이 없음…
◦
백엔드의 Estimation 결과는 TableAnswerNodeEstimationResult로 주어짐. = 우선은 TableAnswerNode가 계산해 TableAnswerNodeEstimationResult로 가지고 있는 것이 백엔드와의 sync면에서 좋을 듯.
•
estimation 입력은 현수님의 설계대로 잘 만들어지고 있음. (by. TableAnswerNode의 extractUserInput)
하지만, Estimation의 Id가 짤려, 학생 정답 입력 Estimation을 완성하지 못하고 있음 → 문의 필요
•
백엔드에서 받아들일 수 있는 Id 길이 제한이 36자 = 가상 id도 36자로 맞춤
BlankQuizV2의 studentAnswer
제출하면 studentAnswer가 없어지는 오류가 있음. = 각 블록의 정답, 오답 표시가 안되고 있음 → 성대님 필요
•
loadUserSavedData에서 해결 가능