- Frontend
- 사용자와 게임 호스트를 위한 UI 인터페이스
- Backend
- 실제로 단어 임베딩을 수행
- 사용자별 제출을 관리함
- 게임 기록을 관리함
- Database
- 전형적인 3-tier architecture
- Cache (Redis)
- 벡터 임베딩 결과를 캐싱
- 스코어보드를 캐싱
-
관리자로 접속할 경우
- 게임 관리 패널
- 오늘의 단어를 설정하는 메뉴 (설정한 뒤에는 안 보이게 숨겨야 함.)
- 게임이 진행 시간을 설정
- 게임 이름 설정
- 게임 초대 화면
- 참가자들에게 보여주기 쉬운 형태로 디자인
- 게임 참가를 위한 참가자 URL 와 QR 코드를 보여준다.
- 관리자가 게임을 시작할 수 있는 버튼이 있다.
- 현재 실시간으로 참가 중인 사용자명들과 인원 수가 표시된다.
- 게임 중 화면
- 실시간 리더보드가 있다.
- 참가자 별로 제출한 가장 높은 유사도의 제출이 표시된다.
- 표시되는 항목은 유사도와 제출 시각이다.
- 단어는 기본적으로 표시되지 않고 비공개이지만 관리자가 수동으로 보여줄 수 있다.
- 관리자가 수동으로 게임을 종료할 수 있는 버튼이 있다.
- 실시간 리더보드가 있다.
- 게임 종료 후 화면
- 최종 리더보드가 나타난다.
- 오늘의 정답이 보여진다
- 최종 1, 2, 3등 참가자와, 각 참가자가 제출한 가장 높은 유사도의 단어가 보여진다.
- 게임 관리 패널
-
사용자로 접속할 경우
- 게임 시작 전 화면 (초대 링크를 통해 접속한 페이지)
- 참가 중인 게임 이름이 표시된다.
- 서버로 부터 부여된 (임의로 주어진) 사용자 명이 표시된다.
- 현재 실시간으로 참가 중인 사용자명들과 인원 수가 표시된다.
- 게임 진행 중 화면
- 내 실시간 순위가 표시된다.
- 내가 제출한 가장 높은 유사도의 제출이 표시된다.
- 표시되는 항목은 유사도, 제출시각, 단어 내용이다.
- 내가 제출한 가장 높은 유사도의 제출이 표시된다.
- 단어를 제출할 수 있는 인터페이스가 표시된다.
- 단어 입력 후 엔터를 누르면 제출할 수 있다.
- 유효하지 않은 단어를 입력하면 제출이 거부된다.
- 내가 제출한 기록이 표시된다.
- 정렬 기준을 사용자가 변경할 수 있다. (제출 시간 순, 유사도 순)
- 정렬 순서를 사용자가 변경할 수 있다. (오름차순, 내림차순)
- 내 실시간 순위가 표시된다.
- 게임 시작 전 화면 (초대 링크를 통해 접속한 페이지)