Improve membership flow, play library, and mobile tactics board

This commit is contained in:
2026-09-08 18:55:48 +09:00
parent aa5ce697ad
commit 680cb21c80
15 changed files with 1136 additions and 82 deletions
+11 -5
View File
@@ -9,18 +9,20 @@
- Fastify 인스턴스당 하나의 MongoClient 연결 풀을 유지하고 서버 종료 시 닫는다. 요청마다 연결·해제하지 않는다.
- 연결 URI와 DB 이름은 프로젝트 루트 `.config.json`으로 설정한다. `.config.json.sample`을 예시로 제공한다. 전용 DB `basket_utils` 사용은 사용자가 확인했으며 기존 다른 프로젝트 DB를 수정하지 않는다.
- 실제 구현: GPT-5.6 Luna, xhigh. 주 에이전트는 요구사항 정리·검토·검증·문서 담당.
- 범위: 로그인, 운영자 사용 승인, 여러 팀 생성/전환, 팀별 전술 저장/불러오기, 기존 기기 전술의 명시적 가져오기.
- 범위: 로그인, 별도 관리자 페이지의 운영자 사용 승인, 여러 팀 생성/검색/가입 신청, 팀 소유자의 가입 승인과 팀원별 권한 설정, 팀별 전술 저장/불러오기, 기존 기기 전술의 명시적 가져오기.
- 기존 Three.js 편집/재생과 MP4 파일 직접 공유는 유지.
- 외부 로그인 서비스 키가 없는 초기 구현은 이메일/비밀번호 로그인. 카카오톡 파일 공유와 서비스 로그인 수단은 독립적이다.
## 사용자 흐름
1. 로그인 또는 회원가입.
2. 미승인 사용자는 승인 대기 화면. 승인된 사용자는 내 팀으로 진입.
3. 팀이 없으면 첫 팀 생성. 계정 하나로 여러 팀 생성 가능.
4. 팀 선택 후 해당 팀의 전술 목록과 새 전술 작성.
2. 미승인 사용자는 승인 대기 화면. 운영자가 별도 관리자 페이지에서 서비스 이용을 승인하면 다시 로그인해 내 팀으로 진입.
3. 새 팀 생성 또는 기존 팀 이름 검색을 선택. 기존 팀에는 가입을 신청하고 해당 팀 소유자의 승인을 기다림. 계정 하나로 여러 팀 생성/참여 가능.
- 팀 소유자는 가입 신청을 승인하면서 열람자 또는 편집자 권한을 선택하고, 이후 팀원별 권한을 변경할 수 있음.
- 서비스 이용 승인과 팀 가입 승인은 별개. 팀 검색 결과만으로 전술이나 구성원 정보에 접근할 수 없음.
4. 팀 선택 후 해당 팀의 전술 목록 화면으로 이동. 저장된 전술을 선택하거나 새 전술의 이름·수비 형태를 정한 뒤에만 전술 캔버스로 진입.
5. 편집 화면에서 현재 팀 이름을 확인하며 저장·불러오기·MP4 생성/공유.
6. 팀 전환 시 다른 팀의 목록/임시 저장과 섞이지 않음.
6. 캔버스에서 전술 목록으로 돌아갈 수 있고, 전술 목록에서 팀 선택으로 복귀. 팀 전환 시 다른 팀의 목록/임시 저장과 섞이지 않음.
7. 로그아웃 시 편집/공유 상태를 정리하고 로그인 화면으로 복귀.
## 검토 기준
@@ -29,6 +31,7 @@
- 운영자는 로컬 설정 절차로 초기화하며 공개 기본 비밀번호를 제공하지 않는다.
- 비밀번호는 해시로 저장하고 세션은 HttpOnly 쿠키로 관리한다.
- 서버가 매 요청의 승인 상태와 팀 소속을 확인한다.
- 운영자만 서비스 이용을 승인하고, 해당 팀 소유자만 팀 가입을 승인하거나 팀원 권한을 변경한다. 팀 소유자 역할은 일반 팀원 권한 변경 대상이 아니다.
- 팀 정보와 전술은 MongoDB에 저장되어 Fastify 재시작 후에도 남는다.
- 사용자·팀·전술명은 화면에서 데이터로 출력한다.
- 팀 변경/로그아웃 후 이전 요청 응답이 새 화면을 덮어쓰지 않는다.
@@ -39,6 +42,9 @@
## 검증 시나리오
- 비로그인 → 로그인 필요; 미승인 로그인 → 대기; 승인 후 → 팀 화면.
- 별도 관리자 페이지 직접 접속/새로고침/로그인 복귀와 일반 계정의 접근 제한 확인.
- 팀 검색 → 가입 신청 → 중복 신청 방지 → 소유자 승인 → 신청자의 내 팀에 표시.
- 열람자/편집자 권한 변경과 서버 저장 허용 여부, 소유자 이외 계정의 구성원 관리 제한 확인.
- 팀 A/B 생성 → 각각 다른 전술 저장 → 왕복 전환/새로고침 후 분리 확인.
- 승인된 별도 계정은 멤버가 아닌 팀의 목록/전술에 접근 불가.
- 세션 로그아웃/승인 중단 후 서버 작업 거부.