- SPRINT-009: 회원가입 제거 + Sprint 동기화 + 진행률 정상화 + 프로필 사진 수정 - SPRINT-010: 관리자 코드 정리 + JWT 단일화 + API Key 정리
64 lines
2.5 KiB
Markdown
64 lines
2.5 KiB
Markdown
# SPRINT-009: 관리자 단순화 + 프로젝트 진행률 정상화 + 프로필 사진 수정
|
|
|
|
## 목표
|
|
관리자 전용 서비스에 맞게 회원가입 제거, 프로젝트 진행률 계산 정상화, 자매 프로필 사진 표시 버그 수정
|
|
|
|
## 태스크
|
|
|
|
### TASK-032: 회원가입 제거
|
|
- `/register` 페이지 제거
|
|
- `POST /api/auth/register` 엔드포인트 제거 또는 비활성화
|
|
- `INVITE_CODE` 환경변수 및 초대코드 기반 가입 로직 제거
|
|
- 로그인 전용 플로우로 단순화
|
|
- FE: 로그인 페이지에서 회원가입 링크 제거
|
|
- UX: 비로그인 시 `/login`으로만 이동
|
|
|
|
### TASK-033: 프로젝트 Sprint 동기화
|
|
- 각 프로젝트 repo의 `.plans/sprints/` 디렉토리를 읽어 Sprint DB 레코드 생성/업데이트
|
|
- Gitea API로 repo tree 조회 또는 raw 파일 fetch
|
|
- 동기화 대상:
|
|
- `SPRINT-001.md` ~ `SPRINT-XXX.md`
|
|
- Sprint number, name, status(기본 pending) 추출
|
|
- API:
|
|
- `POST /api/admin/projects/:id/sync-sprints`
|
|
- `POST /api/admin/projects/sync-all-sprints`
|
|
- Gitea sync 시 Sprint 동기화도 함께 수행 가능하도록 확장
|
|
|
|
### TASK-034: 프로젝트 진행률 계산 수정
|
|
- 현재 “스프린트 없음” 문제 해결
|
|
- 진행률 계산 방식:
|
|
- 기본: `완료 Sprint 수 / 전체 Sprint 수`
|
|
- 가능하면 `.qa/` 또는 상태 기반으로 `done/review/in_progress` 반영
|
|
- 프로젝트 목록 페이지(`/projects`): 진행률 바/퍼센트 표시
|
|
- 프로젝트 상세 페이지(`/projects/[id]`): Sprint 목록 + 상태 표시
|
|
- “No sprint data” fallback 제거
|
|
|
|
### TASK-035: 프로필 사진 버그 수정
|
|
- 현재 아이콘 fallback만 보이는 문제 원인 파악
|
|
- 점검 항목:
|
|
- avatar API 경로 연결 여부
|
|
- FE 이미지 src 설정
|
|
- 캐시(5분 TTL) fallback 지속 문제
|
|
- 실제 서버 파일 경로 (`~/.openclaw/avatar.png|jpg|webp`) 확인
|
|
- 수정 목표:
|
|
- 실제 사진 있으면 항상 우선 표시
|
|
- 실패 시에만 SVG fallback
|
|
- 반영 위치:
|
|
- 대시보드 자매 카드
|
|
- `/sisters`
|
|
- `/sisters/[name]`
|
|
|
|
## 의존성
|
|
- TASK-032는 독립적
|
|
- TASK-033 → TASK-034 순서 필수
|
|
- TASK-035는 독립적, 병렬 가능
|
|
|
|
## 검증 기준
|
|
- `/register` 접근 불가 또는 로그인으로 리다이렉트
|
|
- 회원가입 API 제거/비활성화 확인
|
|
- 프로젝트별 Sprint 동기화 후 진행률 표시 정상
|
|
- 프로젝트 목록/상세에서 Sprint 데이터 렌더링
|
|
- 자매 프로필 사진 실제 이미지 표시 확인
|
|
- npm run build 성공 + 테스트 통과
|
|
- 외부 URL QA 필수
|