docs: Sync documentation from private repository
This commit is contained in:
parent
4ab31b1d0a
commit
a29824a89b
@ -834,9 +834,52 @@ interface Curriculum {
|
|||||||
|
|
||||||
### 인덱스
|
### 인덱스
|
||||||
- `ownerId` + `createdAt` (사용자별 커리큘럼 조회)
|
- `ownerId` + `createdAt` (사용자별 커리큘럼 조회)
|
||||||
- `visibility` + `forkCount` (공개 커리큘럼 인기순)
|
- `visibility` + `subscriberCount` (공개 커리큘럼 인기순)
|
||||||
- `isSystem` + `createdAt` (시스템 커리큘럼 조회)
|
- `isSystem` + `createdAt` (시스템 커리큘럼 조회)
|
||||||
|
|
||||||
|
### 2단계 구독 모델 (2026-01 업데이트)
|
||||||
|
|
||||||
|
**개념**:
|
||||||
|
커리큘럼 구독은 2단계로 이루어집니다:
|
||||||
|
|
||||||
|
1. **사용자 구독 (라이브러리)**: 사용자가 커리큘럼을 개인 라이브러리에 추가
|
||||||
|
- `users/{userId}.subscribedCurriculumIds[]`에 저장
|
||||||
|
- `curriculums/{id}.subscriberCount` 증가 (유니크 사용자 수)
|
||||||
|
|
||||||
|
2. **팀 활성화**: 라이브러리에 있는 커리큘럼을 팀에서 사용 가능하게 설정
|
||||||
|
- `teams/{teamId}.activeCurriculumIds[]`에 저장
|
||||||
|
- 팀 소유자만 활성화 가능
|
||||||
|
|
||||||
|
**워크플로우**:
|
||||||
|
```
|
||||||
|
[탐색] → [라이브러리에 추가] → [팀에서 사용 활성화] → [팀원들 접근]
|
||||||
|
```
|
||||||
|
|
||||||
|
**관련 필드**:
|
||||||
|
```typescript
|
||||||
|
// FirestoreUser에 추가
|
||||||
|
interface FirestoreUser {
|
||||||
|
subscribedCurriculumIds?: string[]; // 구독한 커리큘럼 ID (개인 라이브러리)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Team 타입 변경
|
||||||
|
interface Team {
|
||||||
|
activeCurriculumIds?: string[]; // 활성화된 커리큘럼 ID (이전: subscribedCurriculumIds)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Curriculum
|
||||||
|
interface Curriculum {
|
||||||
|
subscriberCount: number; // 구독자 수 (유니크 사용자 기준)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**API 엔드포인트**:
|
||||||
|
- `POST /api/curriculum/{id}/user-subscribe`: 라이브러리에 추가
|
||||||
|
- `DELETE /api/curriculum/{id}/user-subscribe`: 라이브러리에서 제거
|
||||||
|
- `GET /api/curriculum/my-library`: 내 라이브러리 조회
|
||||||
|
- `POST /api/curriculum/{id}/subscribe`: 팀에 활성화 (기존 API, 레거시 호환)
|
||||||
|
- `DELETE /api/curriculum/{id}/subscribe`: 팀에서 비활성화
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 10. Sticker (스티커) 🔜
|
## 10. Sticker (스티커) 🔜
|
||||||
|
|||||||
108
FUNCTIONAL_DESCRIPTION.md
Normal file
108
FUNCTIONAL_DESCRIPTION.md
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
# 라온누리 플랫폼 - 기능 명세서
|
||||||
|
|
||||||
|
## 1. 개요 (Introduction)
|
||||||
|
이 문서는 라온누리 플랫폼의 주요 페이지와 기능에 대한 상세 명세서입니다. 플랫폼의 구성 요소와 각 페이지의 핵심 기능을 객관적으로 설명합니다.
|
||||||
|
|
||||||
|
## 2. 공용 페이지 (Public Pages)
|
||||||
|
|
||||||
|
### 2.1 랜딩 페이지 (`/`)
|
||||||
|
**목적:** 비로그인 사용자에게 서비스 정보를 제공하고 회원가입 및 로그인을 지원합니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **메인 섹션:** 서비스 소개 문구와 로그인/회원가입 버튼, 팀 코드 입력(학생용) 버튼을 제공합니다.
|
||||||
|
* **로그인:** 개인 계정 로그인과 단체(팀) 로그인을 분리하여 지원합니다.
|
||||||
|
* **기능 안내:** 글쓰기, 습관 관리, 보상 시스템 등 주요 기능을 아이콘과 텍스트로 설명합니다.
|
||||||
|
* **이용 가이드:** 서비스 사용 절차를 단계별로 안내합니다.
|
||||||
|
* **다국어 지원:** 한국어, 영어, 일본어 언어 변경 기능을 제공합니다.
|
||||||
|
|
||||||
|
### 2.2 요금제 페이지 (`/pricing`)
|
||||||
|
**목적:** 서비스 구독 플랜 정보를 제공하고 결제를 처리합니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **플랜 정보:** Free, Classroom, Academy, School 등 4가지 등급별 요금제와 혜택을 비교하여 표시합니다.
|
||||||
|
* **결제 주기:** 월간 결제와 연간 결제 옵션을 제공하며, 연간 결제 시 할인율을 표기합니다.
|
||||||
|
* **기능 비교표:** 팀 생성 수, AI 크레딧, 멤버 수 제한 등 플랜별 상세 스펙을 표 형태로 제공합니다.
|
||||||
|
* **구독 관리:**
|
||||||
|
* 플랜 변경(업그레이드/다운그레이드) 시 잔여 기간에 대한 크레딧 계산 및 안내 기능을 제공합니다.
|
||||||
|
* 결제 확인 및 처리 프로세스를 포함합니다.
|
||||||
|
|
||||||
|
## 3. 핵심 서비스 (Writer's Hub)
|
||||||
|
|
||||||
|
### 3.1 홈 / 대시보드 (`/home`)
|
||||||
|
**목적:** 로그인 사용자의 메인 화면으로, 주요 기능 접근 및 활동 요약을 제공합니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **사용자 정보:** 사용자 이름과 환영 메시지를 표시합니다.
|
||||||
|
* **빠른 실행 (Quick Actions):** 새 글쓰기, 패턴 분석, 팀 관리 등 자주 사용하는 기능으로 바로 이동하는 바로가기 버튼을 제공합니다.
|
||||||
|
* **활동 요약:** 최근 작성한 글 목록을 표시하여 최근 작업에 빠르게 접근할 수 있도록 합니다.
|
||||||
|
* **글쓰기 패턴 분석 (통계 보고서):** 사용자의 누적된 글쓰기 데이터를 분석하여 시각화된 리포트를 제공합니다.
|
||||||
|
* **학습 습관 분석:** 글쓰기 빈도, 평균 분량, 선호하는 주제 등 창작 활동 패턴을 요약합니다.
|
||||||
|
* **자기 주도적 피드백:** 데이터 기반의 객관적인 지표를 통해 자신의 성장 과정을 파악할 수 있습니다.
|
||||||
|
|
||||||
|
### 3.2 글쓰기 허브 (`/write`)
|
||||||
|
**목적:** 글쓰기 모드를 선택하고 창작 활동을 시작하는 페이지입니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **글쓰기 모드 선택 (2x3 방식):** 시작 방식 2가지와 도움 단계 3가지를 조합하여 총 6가지 글쓰기 방식을 제공합니다.
|
||||||
|
* **시작 방식:**
|
||||||
|
* **이미지 기반:** 이미지를 먼저 업로드하고 관련 내용을 작성합니다.
|
||||||
|
* **텍스트 기반:** 주제를 정하고 텍스트로 작성을 시작합니다.
|
||||||
|
* **도움 단계:**
|
||||||
|
* **AI 초안 (빈칸 채우기):** AI가 생성한 초안의 빈칸을 채우는 방식입니다.
|
||||||
|
* **AI 힌트:** AI가 문장이나 표현을 제안하여 작성을 돕는 방식입니다.
|
||||||
|
* **혼자 쓰기:** AI 도움 없이 직접 작성하는 방식입니다.
|
||||||
|
* **영감 피드:**
|
||||||
|
* **팀 활동 피드:** 소속 팀원의 최근 활동 내역과 추천 글감(주제)을 표시합니다.
|
||||||
|
* **동료 학습 갤러리 (Reference):** 동일한 주제로 다른 팀원들이 생성한 이미지를 갤러리 형태로 조회합니다. 타인의 해석을 참고하여 다양한 관점을 학습하고, 창작의 실마리를 얻을 수 있는 시각적 참고 자료를 제공합니다.
|
||||||
|
* **라우팅 처리:** 이전 작업 내역이나 URL 파라미터에 따라 적절한 에디터 화면으로 자동 연결합니다.
|
||||||
|
|
||||||
|
### 3.3 글 목록 (`/writing`)
|
||||||
|
**목적:** 사용자가 작성한 글을 목록 형태로 조회하고 관리합니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **목록 조회:** 작성한 글을 카드 형태의 그리드 레이아웃으로 표시합니다.
|
||||||
|
* **정렬 및 필터:** 최신순/과거순 정렬 기능을 제공합니다.
|
||||||
|
* **관리:** 개별 글을 삭제하거나 상세 페이지로 이동할 수 있습니다.
|
||||||
|
|
||||||
|
### 3.4 이미지 업로드 및 생성 (`/imageUpload`)
|
||||||
|
**목적:** 작성된 글에 이미지를 추가하거나 AI로 생성합니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **AI 이미지 생성:**
|
||||||
|
* 글 내용을 분석하여 적합한 장면(Scene)을 추출 및 추천합니다.
|
||||||
|
* 선택한 장면을 기반으로 이미지를 생성합니다. (사용자 플랜에 따라 제한됨)
|
||||||
|
* **이미지 업로드:** 사용자의 로컬 이미지를 업로드할 수 있습니다.
|
||||||
|
* **이미지 수정:** 기존에 생성하거나 업로드한 이미지를 변경할 수 있습니다.
|
||||||
|
|
||||||
|
### 3.5 인터랙션 스튜디오 (`/interaction`)
|
||||||
|
**목적:** 이미지에 반응형 효과를 설정합니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **영역 설정:** 이미지 내 특정 영역을 지정하여 마우스/터치 반응을 설정합니다.
|
||||||
|
* **효과 편집:** 회전, 펄스 등 미리 정의된 효과를 선택하거나 물리 파라미터(강도, 속도 등)를 직접 조정합니다.
|
||||||
|
* **보상 시스템:** 글 분석 점수에 따라 설정 가능한 인터랙션 영역의 개수가 제한됩니다. (점수가 높을수록 많은 영역 설정 가능)
|
||||||
|
* **미리보기:** 설정한 효과를 실시간으로 테스트하고 전체 화면으로 조회할 수 있습니다.
|
||||||
|
|
||||||
|
## 4. 팀 및 커리큘럼
|
||||||
|
|
||||||
|
### 4.1 팀 관리 (`/team`)
|
||||||
|
**목적:** 선생님이나 리더가 그룹을 만들고 멤버의 활동을 관리하는 공간입니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **팀 목록:** 사용자가 소유한 팀과 소속된 팀을 구분하여 표시합니다.
|
||||||
|
* **팀 생성:** 수업이나 모임을 위한 그룹을 간편하게 개설합니다.
|
||||||
|
* **실시간 모니터링 대시보드:** 팀 리더(선생님)를 위한 관리 도구를 제공합니다.
|
||||||
|
* **실시간 글쓰기 현황:** 팀원들이 현재 글을 쓰고 있는지, 얼마나 작성했는지를 실시간으로 확인합니다.
|
||||||
|
* **활동 통계 보고서:** 주제별, 멤버별 상세 분석 데이터를 제공합니다.
|
||||||
|
* **개별 멤버 분석:** 특정 멤버의 주제별 작성 현황과 글쓰기 패턴을 분석한 보고서를 조회합니다.
|
||||||
|
* **주제별 작성 현황:** 각 주제에 대해 어떤 멤버들이 참여했는지와 개별 작품의 성과를 한눈에 파악합니다.
|
||||||
|
* **팀 설정 및 멤버 관리:**
|
||||||
|
* **주제별 시각 자료(Visual Prompt) 설정:** 주제 생성 시 텍스트 설명 외에도 '추천 이미지'를 등록할 수 있습니다. 이는 멤버들이 해당 주제로 글쓰기를 시작할 때 가이드 이미지로 제시되어, 추상적인 주제를 구체적으로 시각화하는 데 도움을 줍니다.
|
||||||
|
* **전문 설정:** AI 도움 수준 설정, 채점 기준(루브릭) 관리, 멤버 초대 및 권한 설정을 수행합니다.
|
||||||
|
|
||||||
|
### 4.2 커리큘럼 대시보드 (`/curriculum`)
|
||||||
|
**목적:** 학습 커리큘럼을 관리하고 구독합니다.
|
||||||
|
**주요 기능:**
|
||||||
|
* **나의 커리큘럼:** 사용자가 생성한 커리큘럼 목록을 관리합니다.
|
||||||
|
* **라이브러리:** 구독한 커리큘럼 목록을 표시합니다.
|
||||||
|
* **탐색 (Browse):** 공개된 커리큘럼을 검색하고 상세 내용을 확인합니다.
|
||||||
|
* **배포 및 구독:**
|
||||||
|
* 커리큘럼을 개인 라이브러리에 추가하거나 구독 취소할 수 있습니다.
|
||||||
|
* 팀 소유자는 특정 커리큘럼을 팀에 할당하여 멤버들이 이용하도록 설정할 수 있습니다.
|
||||||
|
|
||||||
|
## 5. 기술 및 환경
|
||||||
|
* **보안:** 사용자 인증 및 권한 관리 시스템(Auth)을 적용했습니다.
|
||||||
|
* **다국어:** next-intl을 활용하여 다국어(i18n)를 지원합니다.
|
||||||
|
* **반응형:** 데스크톱, 태블릿, 모바일 등 다양한 해상도를 지원합니다.
|
||||||
Loading…
x
Reference in New Issue
Block a user