docs: Sync documentation from private repository

This commit is contained in:
Documentation Bot 2025-11-10 08:17:05 +00:00
parent a41a2dc903
commit 6e64188d60
3 changed files with 32 additions and 9 deletions

View File

@ -1,10 +1,11 @@
# 라온누리 - 프로젝트 구조
> 최종 업데이트: 2025-11-10 (다중 글조각 관리, 테마 레시피 추가)
> 최종 업데이트: 2025-11-10 (주제 변경 경고, 다중 글조각 관리)
초등학생을 위한 창작 글쓰기 교육 플랫폼
**주요 업데이트** (2025-11-10):
- ⚠️ 주제 변경 경고 Dialog (내용 초기화 알림, 임시 저장 안내)
- 📝 다중 글조각 관리 시스템 (DraftManager, SavedDraftsDialog)
- 💾 강화된 자동 저장 (2초 debounce, 저장 상태 표시)
- 🎨 테마 슬롯 레시피 추가 (Dialog, Select 자동 배경색)
@ -24,7 +25,7 @@
|-------|------|------|---------|
| **랜딩 페이지** | `/` | 서비스 소개 및 홍보 (비로그인 전용) | Hero, Features, How It Works, CTA, Footer<br>로그인 시 `/home`으로 자동 리다이렉트 |
| **유저 홈** | `/home` | 인증된 사용자 대시보드 | 환영 메시지, 빠른 시작 대시보드, 최근 활동<br>비로그인 시 `/`로 자동 리다이렉트<br>정식 계정은 "내 팀" 카드 추가 표시 |
| **글쓰기** | `/write` | Tiptap 기반 순수 텍스트 에디터 + 주제 선택 | 주제 선택 (자유 주제/개인 주제/팀 주제)<br>제목 입력 (Editable), 순수 텍스트 에디터 (포맷팅 없음)<br>🆕 **다중 글조각 관리** (최대 10개), "새 글쓰기" / "저장된 글조각" 버튼<br>🆕 **강화된 자동 저장** (2초 debounce, 저장 상태 표시: 저장 중/저장됨)<br>템플릿 미리채우기 (제목/내용), Firestore 저장<br>비로그인도 접근 가능 (저장 시 로그인 유도) |
| **글쓰기** | `/write` | Tiptap 기반 순수 텍스트 에디터 + 주제 선택 | 주제 선택 (자유 주제/개인 주제/팀 주제)<br>🆕 **주제 변경 경고** (작성 중 내용 초기화 알림, 임시 저장 안내)<br>제목 입력 (Editable), 순수 텍스트 에디터 (포맷팅 없음)<br>🆕 **다중 글조각 관리** (최대 10개), "새 글쓰기" / "저장된 글조각" 버튼<br>🆕 **강화된 자동 저장** (2초 debounce, 저장 상태 표시: 저장 중/저장됨)<br>템플릿 미리채우기 (제목/내용), Firestore 저장<br>비로그인도 접근 가능 (저장 시 로그인 유도) |
| **테스트** | `/test` | 팀 코드 시스템 테스트 페이지 | 팀 코드 생성/검증 테스트<br>팀/학생 생성 테스트<br>학생 로그인 테스트<br>authStore 상태 확인 |
| **팀 목록** | `/team` | 내가 만든 팀 목록 (정식 계정 전용) | 팀 카드 그리드, 팀 정보 (코드, 멤버 수, 보안 설정)<br>"새 팀 만들기" 버튼 |
| **팀 생성** | `/team/create` | 새 팀 만들기 (정식 계정 전용) | 팀 이름 입력, 팀 코드 자동 생성<br>🆕 **5단계 보안 레벨 선택** (RadioCard, 애니메이션)<br>🆕 **명단 관리 (Level 2/4)**: TagsInput으로 Enter/쉼표 입력<br>생성 후 `/team/[teamId]`로 이동 |
@ -135,6 +136,7 @@
- ✅ 순수 텍스트 입력 (포맷팅 없음)
- ✅ 초등학생 친화적 단순 인터페이스
- ✅ 실시간 글자 수/단어 수 카운터
- ✅ 🆕 **주제 변경 경고 Dialog** (작성 중 내용 초기화 알림 + 임시 저장 안내)
- ✅ 🆕 **다중 글조각 관리** (최대 10개, FIFO 방식)
- ✅ 🆕 **강화된 자동 저장** (2초 debounce, localStorage)
- ✅ 🆕 **저장 상태 표시** (저장 중 → 저장됨 → 시간 표시)

View File

@ -67,6 +67,7 @@
| **테마 슬롯 레시피** | **Dialog, Select slot recipe 추가 (자동 배경색, border, shadow)** | **2025-11-10** |
| **TopicSelector 그룹핑** | **ItemGroup으로 자유/팀/개인 주제 구분, 팀 주제에 팀 이름 표시, Separator 추가** | **2025-11-10** |
| **TopicOption 확장** | **teamName 필드 추가, TopicManager에서 팀 정보 조회 (동적 import)** | **2025-11-10** |
| **주제 변경 경고 Dialog** | **작성 중 내용이 있을 때 주제 변경 시 경고 Dialog 표시, 임시 저장 안내** | **2025-11-10** |
### 🚧 진행 중

View File

@ -1,6 +1,6 @@
# 라온누리 - 기술 스택 및 개발 환경
> 최종 업데이트: 2025-11-07 (타입 Enum화, 팀 주제 시스템 추가)
> 최종 업데이트: 2025-11-10 (주제 변경 경고 Dialog, 다중 글조각 관리)
---
@ -405,32 +405,52 @@ const nickname = teamManager.getMemberNickname(team, uid, user?.name);
```
1. 사용자가 /write 페이지 접근
├─> LocalStorage에서 임시 저장된 글 불러오기
├─> LocalStorage에서 임시 저장된 글 불러오기 (DraftManager)
└─> 에디터에 복원
2. 글 작성 중
2. 주제 선택
├─> 작성 중인 내용 없음: 바로 주제 변경 + 템플릿 적용
└─> 작성 중인 내용 있음:
├─> 🆕 **경고 Dialog 표시**
│ ├─> "제목과 내용이 모두 초기화됩니다"
│ └─> "임시 저장된 내용은 저장된 글조각에서 복구 가능"
├─> 사용자 선택:
│ ├─> "취소": 주제 변경 취소
│ └─> "확인하고 초기화": 주제 변경 + 내용 초기화
└─> 확인 시 템플릿 미리채우기 (제목/내용)
3. 글 작성 중
├─> 제목: Editable 컴포넌트 (인라인 편집)
├─> 본문: Tiptap 순수 텍스트 에디터 (포맷팅 비활성화)
│ └─> 초등학생을 위한 단순한 텍스트 입력에 집중
├─> 3초마다 LocalStorage에 자동 저장
├─> 2초마다 LocalStorage에 자동 저장 (DraftManager, FIFO)
├─> 저장 상태 표시 (저장 중 → 저장됨 → 시간)
└─> 하단 고정 버튼 (취소, 저장)
3. 저장 버튼 클릭
4. 저장 버튼 클릭
├─> 미인증 시: 로그인 다이얼로그 표시
└─> 인증 시:
└─> writingManager.createWriting() 호출
├─> 유효성 검사 (제목, 내용)
├─> 텍스트 통계 계산 (글자 수, 단어 수)
├─> Firestore에 저장
└─> LocalStorage 임시 저장 삭제 후 /home 이동
└─> LocalStorage draft 삭제 후 /home 이동
4. WritingManager API
5. WritingManager API
├─> createWriting() - 새 글 작성
├─> getWriting() - 글 조회
├─> getUserWritings() - 사용자 글 목록
├─> getRecentWritings() - 최근 글 목록
├─> updateWriting() - 글 수정
└─> deleteWriting() - 글 삭제
6. DraftManager (클라이언트 전용)
├─> saveDraft() - 글조각 저장 (최대 10개, FIFO)
├─> getDraft() - 글조각 조회
├─> getAllDrafts() - 전체 글조각 목록
├─> deleteDraft() - 글조각 삭제
├─> setCurrentDraftId() - 현재 편집 중인 draft 설정
└─> migrateLegacyDraft() - 기존 단일 draft 마이그레이션
```
### 4. 상태 관리 원칙