우리 서비스의 핵심은 시험을 보는 동안의 화면 공유와 시험이 끝난 후 제출하는 답안과 시험을 보는 모습을 찍어둔 타임랩스 파일을 함께 올리는 것이다.
openvidu 오픈소스를 통해 multi-user group call (screen share)를 사용하기 위해 방법을 찾아보았다.
openvidu-tutorial(github.com/OpenVidu/openvidu-tutorials)를 통해 기능을 테스트하고 설계한 우리 서비스의 구조는 다음과 같다.
기본적으로 React Native를 학습해왔던 나와 React.js를 학습해왔던 팀원으로 구성된 팀이기 때문에
Front는 React.js를 사용하였다.
(React native도 아는데 비슷하겠지 하고 생각했던 내 생각과는 다르게 복잡한 내용들이 많아서 Front는 거의 손을 대지 못했다....)
서버단은 node.js를 사용해서 회원관리, openvidu 세션 관리, 시험 문제 생성, 시험 답안 제출, 시험 결과 확인 등을 REST API 서버를 구축해서 사용을 하고, openvidu의 MCU 영상서버를 docker상에서 구동시켜서 연결하는 방식이다.
DB는 mariadb를 사용했으며, 회원, 시험정보, 답안등의 테이블들을 직접 설계했다.
'프로젝트 > ThrowOrNot' 카테고리의 다른 글
ROPE 프로젝트 (0) | 2022.01.06 |
---|---|
1. ROPE 프로젝트 (1) (0) | 2020.09.03 |
0. 온라인 시험 부정행위 방지 SW개발 공모전(ROPE) 참여 (0) | 2020.08.29 |