docs: PLANS 진행상황 갱신 (Phase 4·5 완료 체크)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
32
PLANS.md
32
PLANS.md
@@ -54,21 +54,25 @@
|
||||
- [x] 검색/정렬/필터용 data-* 속성(`data-search`/`data-created`/`data-pop`/`data-starred`/`data-vis`) 부여 → `app.js` 가 클라이언트 처리.
|
||||
- [x] 모의 데이터로 EJS 렌더 검증 통과(헤더 include 포함). 모달/공유모달/상세저장소는 Phase 5.
|
||||
|
||||
## Phase 4 — 라우트(`server.js`)
|
||||
- [ ] `GET /` — 도구(role 필터)+내 프로젝트+피드 데이터 렌더. `?open=:id` 면 해당 모달 자동 오픈.
|
||||
- [ ] `POST /projects` — 생성(visibility, 태그에서 lang 추론). 완료 후 리다이렉트.
|
||||
- [ ] `POST /projects/:id/heart` · `POST /projects/:id/star` — 토글. JS(fetch)면 JSON `{on,count}`, 아니면 리다이렉트.
|
||||
- [ ] `POST /projects/:id/visibility` — 공개/비공개 전환(본인).
|
||||
- [ ] `POST /projects/:id/delete` — 본인 프로젝트 삭제.
|
||||
- [ ] `POST /projects/:id/comments` — 댓글/대댓글(`parent_id` 옵션, 1뎁스 검증). JSON/리다이렉트 분기.
|
||||
- [ ] `POST /comments/:id/delete` — 본인 댓글 삭제.
|
||||
- [ ] `GET /projects/:id` — 모달 내용과 동일 정보의 단독 페이지(비-JS·공유 링크용).
|
||||
## Phase 4 — 라우트(`server.js`) ✅
|
||||
- [x] 공통: res.locals 에 `icon`/`identicon`/`langColor` 노출, `isAjax`/`safeBack` 헬퍼.
|
||||
- [x] `GET /` — `listProjects(me)` → 내 프로젝트/피드 분리, 도구 role 필터. `?open`/`?toast`/`?egg` → body 신호.
|
||||
- [x] `POST /projects` — 태그 정리·lang 추론·visibility 반영 후 toast 리다이렉트.
|
||||
- [x] `POST /projects/:id/heart` · `/star` — 토글. AJAX 면 JSON `{on,count}`, 아니면 Referer 복귀.
|
||||
- [x] `POST /projects/:id/visibility` — 공개/비공개 전환(본인).
|
||||
- [x] `POST /projects/:id/delete` — 본인 프로젝트 삭제.
|
||||
- [x] `POST /projects/:id/comments` — 댓글/대댓글(`parent_id`), LGTM/🚀 egg 신호, `return_to` 복귀.
|
||||
- [x] `POST /comments/:id/delete` — 본인 댓글 삭제.
|
||||
- [x] `GET /projects/:id` — 단독 페이지(비공개는 본인만). `_header` body 신호용 typeof 가드 추가.
|
||||
- [x] 크로스 모듈 import/export 해석 검증 통과(서버 부팅 가능 상태 복구).
|
||||
|
||||
## Phase 5 — 상세 모달 · 공유 모달 · 단독 페이지
|
||||
- [ ] 대시보드에 상세 모달 마크업: 헤더(제목·가시성·작성자·날짜·언어)·태그·설명·❤️/⭐/바로가기/저장소 버튼·댓글 스레드(대댓글 들여쓰기·LGTM 스탬프·답글/삭제)·댓글 입력(Enter 등록).
|
||||
- [ ] 공유 모달 마크업: 제목*·설명·태그·배포 URL·공개범위(공개/비공개) 토글 + 안내문.
|
||||
- [ ] `app.js` 로 모달 데이터 바인딩(렌더된 프로젝트 데이터 사용) + 폼 제출 처리.
|
||||
- [ ] `views/project.ejs` 단독 페이지를 새 디자인에 맞게 갱신.
|
||||
## Phase 5 — 상세 모달 · 공유 모달 · 단독 페이지 ✅
|
||||
- [x] `views/_project_detail.ejs` 신설 — 헤더(제목·가시성·작성자·날짜·언어)·태그·설명·❤️/⭐/바로가기/저장소·소유자 삭제·댓글 스레드(대댓글 들여쓰기·LGTM 스탬프·답글/삭제)·댓글 입력(Enter 등록). 모달/단독 페이지 공용(`modal` 플래그).
|
||||
- [x] 대시보드: `#detailModal` 오버레이 + `#detailStore`(프로젝트별 `<template>`) + 공유 모달(제목*·설명·태그·저장소/배포 URL·공개범위 토글+안내).
|
||||
- [x] 서버: `listCommentsByProjects` 로 댓글 일괄 조회 → `commentsByProject` 전달. `allProjects` 로 저장소 렌더.
|
||||
- [x] `app.js` 가 template 내용을 `.modal` 에 주입해 모달 구성(이미 Phase 2 에서 구현).
|
||||
- [x] `views/project.ejs`(단독) · `views/login.ejs` 새 디자인으로 재작성.
|
||||
- [x] 세 뷰 모의 렌더 검증 통과(저장소 3개·공유모달·body 신호·백링크·알림).
|
||||
|
||||
## Phase 6 — 문서 · 마무리 · 점검
|
||||
- [ ] `ai-dev-portal-prd.md` 보강: 반응 2종(heart/star), 공개/비공개, lang, 댓글 parent_id, 추가 라우트, 다크모드/검색/토스트 등 디자인 확정 사항 반영.
|
||||
|
||||
Reference in New Issue
Block a user