운영자는 ChatGPT 로그인 후 방을 만들고, 참가자는 로그인 없이 방 코드로 들어오는 4인 협동 드로잉 게임입니다.
- 30초 릴레이: 1분 동안 주제와 순서를 확인하고 모둠 채팅으로 회의한 뒤, 네 명이 30초씩 한 그림을 이어 그립니다. 그리기 단계에서는 펜 도구만 제공합니다.
- 4컷 협동 만화: 1분 회의 후 네 명이 각자 맡은 컷을 2분 동안 동시에 완성합니다. 이미지 첨부, 드래그 앤 드롭, 클립보드 붙여넣기를 지원합니다.
- 그림만 보고 평가: 완성 후 이름과 제작 과정 없이 작품만 보고 평가하고, 운영자가 최종 점수를 공개합니다.
- 운영자가 ChatGPT 로그인 후 방을 만들고 게임 모드를 선택합니다.
- 운영자는 초대 링크·방 코드·QR 코드를 공유하고, 참가자는 로그인 없이 이름과 선택 번호를 입력해 입장합니다.
- 운영자는 참가자를 무작위·번호순·수동 방식으로 4인 모둠에 배정합니다.
- 주제 문구, 이미지 또는 PDF를 제시하고 게임을 시작합니다.
- 서버가 회의·그리기·평가 시간을 관리하고, 결과 화면에서 모둠 점수를 공개합니다.
- 운영자만 ChatGPT 로그인으로 방을 만들고 제어합니다. 운영 권한은 로그인 계정과 방 전용 권한을 함께 확인합니다.
- 초대 링크와 QR에는 6자리 방 코드만 포함되며 운영자 권한은 포함되지 않습니다. 링크로 열면 참가자 입장 화면에 코드가 자동 입력됩니다.
- 참가자는 계정 없이 입장하며 방당 최대 48명까지 참여할 수 있습니다. 4명씩 완성된 모둠 외 참가자는 평가단이 됩니다.
- 제시 자료와 그림은 실제 파일 형식을 검사하고, 짧게 유효한 서명 URL로만 제공합니다.
- 방 생성, 채팅, 그림 저장에는 남용 방지 한도를 적용하며 브라우저 탭을 닫으면 방 권한을 남기지 않습니다.
- 이번 운영자 로그인 보강 전에 만든 방은 계정 소유자를 안전하게 확인할 수 없어 이어서 운영하지 않습니다. 업데이트 뒤 새 방을 만들어 사용합니다.
npm install
npm run dev
npm run lint
npx tsc --noEmit
GAME_URL=http://localhost:3000 node --test tests/four-player-contract.test.mjs
GAME_URL=http://localhost:3000 node tests/live-api-flow.mjs
GAME_URL=http://localhost:3000 node tests/e2e-room-flow.cjs
npm audit --omit=dev
npm test구조화된 방·참가자·채팅·투표 상태는 D1에, 제시 자료와 그림 PNG는 R2에 저장합니다. 참가자 입장은 익명 방 권한으로 유지하고, 모든 운영자 동작은 ChatGPT 계정 소유권까지 서버에서 확인합니다.