mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 06:46:24 +00:00
용어 통일: 참석자/참석 → 참여자/참여 변경 (v1.5.9)
- 화면설계서(uiux.md): 100개 인스턴스 변경 - "참석자" → "참여자" (88개) - "참석" → "참여" (12개) - 유저스토리(userstory.md): 132개 인스턴스 변경 - "참석자" → "참여자" (125개) - "참석" → "참여" (7개) - 프로토타입: 34개 인스턴스 변경 (7개 HTML 파일) - "참석자" → "참여자" (32개) - "참석" → "참여" (2개) 총 266개 인스턴스 변경으로 사용자 역할 용어 완전 통일 (생성자/참여자 체계) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
bac1bcb4c4
commit
96a4d74a43
@ -725,7 +725,7 @@
|
||||
} else if (meetingStatus === 'draft' || meetingStatus === 'complete' || meetingStatus === 'completed') {
|
||||
navigateTo('10-회의록상세조회.html');
|
||||
} else if (meetingStatus === 'scheduled') {
|
||||
// 생성자: 회의예약 화면(수정), 참석자: 시스템 알럿
|
||||
// 생성자: 회의예약 화면(수정), 참여자: 시스템 알럿
|
||||
if (isCreator) {
|
||||
navigateTo('03-회의예약.html');
|
||||
} else {
|
||||
@ -791,7 +791,7 @@
|
||||
// 예정된 회의 개수 (예정 + 진행중)
|
||||
const scheduled = SAMPLE_MEETINGS.filter(m => m.status === 'scheduled' || m.status === 'ongoing').length;
|
||||
|
||||
// 작성중 회의록 개수 (내가 참석한 회의 중 '작성중' 상태)
|
||||
// 작성중 회의록 개수 (내가 참여한 회의 중 '작성중' 상태)
|
||||
const drafts = SAMPLE_MINUTES.filter(m =>
|
||||
m.status === 'draft' &&
|
||||
m.participants.some(p => p.id === currentUser.id)
|
||||
|
||||
@ -226,7 +226,7 @@
|
||||
transform: translateX(22px);
|
||||
}
|
||||
|
||||
/* 참석자 */
|
||||
/* 참여자 */
|
||||
.participants-chips {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@ -420,18 +420,18 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 참석자 -->
|
||||
<!-- 참여자 -->
|
||||
<section class="form-section">
|
||||
<h2 class="section-title">참석자 *</h2>
|
||||
<h2 class="section-title">참여자 *</h2>
|
||||
|
||||
<!-- 참석자 칩 -->
|
||||
<!-- 참여자 칩 -->
|
||||
<div class="participants-chips" id="participants-chips">
|
||||
<!-- 동적으로 생성 -->
|
||||
</div>
|
||||
|
||||
<!-- 참석자 추가 버튼 -->
|
||||
<!-- 참여자 추가 버튼 -->
|
||||
<button type="button" class="add-participant-btn" id="add-participant-btn">
|
||||
➕ 참석자 추가
|
||||
➕ 참여자 추가
|
||||
</button>
|
||||
</section>
|
||||
|
||||
@ -459,11 +459,11 @@
|
||||
<button type="submit" form="meeting-form" class="btn btn-primary">예약 완료</button>
|
||||
</div>
|
||||
|
||||
<!-- 참석자 추가 모달 -->
|
||||
<!-- 참여자 추가 모달 -->
|
||||
<div class="modal-overlay" id="add-participant-modal">
|
||||
<div class="modal">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">참석자 추가</h3>
|
||||
<h3 class="modal-title">참여자 추가</h3>
|
||||
<button class="modal-close">✕</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@ -504,7 +504,7 @@
|
||||
avatarColor: storedUser.avatarColor || CURRENT_USER.avatarColor
|
||||
} : CURRENT_USER;
|
||||
|
||||
// 참석자 목록 (현재 사용자는 기본 포함)
|
||||
// 참여자 목록 (현재 사용자는 기본 포함)
|
||||
let participants = [currentUser];
|
||||
|
||||
// 폼 요소
|
||||
@ -670,7 +670,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* 참석자 칩 렌더링
|
||||
* 참여자 칩 렌더링
|
||||
*/
|
||||
function renderParticipantChips() {
|
||||
participantsChipsContainer.innerHTML = participants.map(p => `
|
||||
@ -693,10 +693,10 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* 참석자 검색 결과 렌더링
|
||||
* 참여자 검색 결과 렌더링
|
||||
*/
|
||||
function renderSearchResults(query) {
|
||||
// 샘플 사용자 목록에서 이미 추가된 참석자 제외
|
||||
// 샘플 사용자 목록에서 이미 추가된 참여자 제외
|
||||
const availableUsers = SAMPLE_USERS.filter(u =>
|
||||
!participants.some(participant => participant.id === u.id)
|
||||
);
|
||||
@ -761,7 +761,7 @@
|
||||
}
|
||||
|
||||
if (participants.length === 0) {
|
||||
showToast('최소 1명의 참석자를 추가해주세요', 'error');
|
||||
showToast('최소 1명의 참여자를 추가해주세요', 'error');
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -855,13 +855,13 @@
|
||||
showToast('회의 링크가 생성되었습니다', 'success');
|
||||
});
|
||||
|
||||
// 참석자 추가
|
||||
// 참여자 추가
|
||||
addParticipantBtn.addEventListener('click', () => {
|
||||
openModal('add-participant-modal');
|
||||
renderSearchResults('');
|
||||
});
|
||||
|
||||
// 참석자 검색
|
||||
// 참여자 검색
|
||||
participantSearch.addEventListener('input', () => {
|
||||
renderSearchResults(participantSearch.value);
|
||||
});
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
/* 참석자 탭 */
|
||||
/* 참여자 탭 */
|
||||
.participant-section-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@ -679,7 +679,7 @@
|
||||
<div class="tabs-container">
|
||||
<div class="tabs-header">
|
||||
<button class="tab-button active" onclick="switchTab('participants')">
|
||||
참석자
|
||||
참여자
|
||||
</button>
|
||||
<button class="tab-button" onclick="switchTab('ai-suggestions')">
|
||||
AI 메모
|
||||
@ -692,10 +692,10 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- 참석자 탭 -->
|
||||
<!-- 참여자 탭 -->
|
||||
<div class="tab-content active" id="tab-participants">
|
||||
<div class="participant-section-header">
|
||||
<h3 class="participant-section-title">참석자 관리</h3>
|
||||
<h3 class="participant-section-title">참여자 관리</h3>
|
||||
<span class="participant-count">총 4명</span>
|
||||
</div>
|
||||
|
||||
@ -1043,7 +1043,7 @@
|
||||
document.getElementById(`tab-${tabName}`).classList.add('active');
|
||||
}
|
||||
|
||||
// 참석자 초대
|
||||
// 참여자 초대
|
||||
function inviteParticipant() {
|
||||
const emailInput = document.getElementById('inviteEmail');
|
||||
const email = emailInput.value.trim();
|
||||
|
||||
@ -272,7 +272,7 @@
|
||||
<div class="stats-grid">
|
||||
<div class="stat-item">
|
||||
<div class="stat-value" id="participantsValue">4명</div>
|
||||
<div class="stat-label">참석자</div>
|
||||
<div class="stat-label">참여자</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value" id="durationValue">90분</div>
|
||||
@ -571,7 +571,7 @@
|
||||
|
||||
// 바로 최종 확정
|
||||
function confirmMeetingDirectly() {
|
||||
if (confirm('AI가 정리한 내용 그대로 최종 확정하시겠습니까?\n\n모든 안건이 자동으로 검증 완료 처리되며, 참석자에게 확정 알림이 발송됩니다.')) {
|
||||
if (confirm('AI가 정리한 내용 그대로 최종 확정하시겠습니까?\n\n모든 안건이 자동으로 검증 완료 처리되며, 참여자에게 확정 알림이 발송됩니다.')) {
|
||||
showToast('회의록이 최종 확정되었습니다', 'success');
|
||||
setTimeout(() => {
|
||||
navigateTo('02-대시보드.html');
|
||||
|
||||
@ -1083,7 +1083,7 @@
|
||||
<div class="stats-grid">
|
||||
<div class="stat-item">
|
||||
<div class="stat-value">4명</div>
|
||||
<div class="stat-label">참석자</div>
|
||||
<div class="stat-label">참여자</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value">90분</div>
|
||||
|
||||
@ -246,7 +246,7 @@
|
||||
}
|
||||
|
||||
.agenda-verification:not([data-is-creator="true"]) .creator-only {
|
||||
display: none; /* 참석자 환경에서는 숨김 */
|
||||
display: none; /* 참여자 환경에서는 숨김 */
|
||||
}
|
||||
|
||||
.agenda-verification:not(.verified) .creator-only {
|
||||
@ -339,11 +339,11 @@
|
||||
10-회의록상세조회.html → 하단 액션 바 "수정" 버튼 클릭
|
||||
|
||||
[권한 제어]
|
||||
- 검증완료 전 (작성중/초안 상태): 모든 참석자가 수정 가능
|
||||
- 검증완료 후: 회의 생성자만 수정 가능 (참석자는 "수정" 버튼 비활성화)
|
||||
- 참석자 관리: 회의 생성자만 추가/삭제 가능
|
||||
- 검증완료 전 (작성중/초안 상태): 모든 참여자가 수정 가능
|
||||
- 검증완료 후: 회의 생성자만 수정 가능 (참여자는 "수정" 버튼 비활성화)
|
||||
- 참여자 관리: 회의 생성자만 추가/삭제 가능
|
||||
- 회의 일시/장소: 읽기 전용 (회의 예약 화면에서만 변경 가능)
|
||||
- 안건별 검증: 회의 생성자는 잠금 해제 후 수정 가능, 참석자는 읽기 전용
|
||||
- 안건별 검증: 회의 생성자는 잠금 해제 후 수정 가능, 참여자는 읽기 전용
|
||||
- AI 한줄 요약: 모든 사용자에게 읽기 전용 (UFR-AI-036)
|
||||
-->
|
||||
|
||||
@ -469,7 +469,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 안건별 검증 (UFR-COLLAB-030) -->
|
||||
<!-- 참석자: 체크박스만 표시 (검증완료 시 읽기 전용) -->
|
||||
<!-- 참여자: 체크박스만 표시 (검증완료 시 읽기 전용) -->
|
||||
<!-- 생성자: 검증완료 시 "잠금 해제" 버튼 표시 -->
|
||||
<div class="agenda-verification verified" id="verify-agenda-1" data-is-creator="true">
|
||||
<input type="checkbox" class="checkbox" id="verify-1" checked disabled>
|
||||
@ -546,7 +546,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 안건별 검증 (UFR-COLLAB-030) -->
|
||||
<!-- 참석자: 체크박스만 표시 (검증완료 시 읽기 전용) -->
|
||||
<!-- 참여자: 체크박스만 표시 (검증완료 시 읽기 전용) -->
|
||||
<!-- 생성자: 검증완료 시 "잠금 해제" 버튼 표시 -->
|
||||
<div class="agenda-verification verified" id="verify-agenda-2" data-is-creator="true">
|
||||
<input type="checkbox" class="checkbox" id="verify-2" checked disabled>
|
||||
|
||||
@ -513,7 +513,7 @@
|
||||
<!-- 참여 유형 탭 (다중 선택 가능) -->
|
||||
<div class="participation-tabs">
|
||||
<button class="participation-tab" data-type="attended" onclick="toggleParticipationType('attended')">
|
||||
참석한 회의
|
||||
참여한 회의
|
||||
</button>
|
||||
<button class="participation-tab" data-type="created" onclick="toggleParticipationType('created')">
|
||||
생성한 회의
|
||||
@ -527,7 +527,7 @@
|
||||
<input
|
||||
type="text"
|
||||
class="search-input"
|
||||
placeholder="회의 제목, 참석자, 키워드 검색"
|
||||
placeholder="회의 제목, 참여자, 키워드 검색"
|
||||
id="searchInput"
|
||||
oninput="applyFilters()"
|
||||
onkeypress="if(event.key==='Enter') handleSearch()"
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
- **작성일**: 2025-10-21
|
||||
- **최종 수정일**: 2025-10-28
|
||||
- **작성자**: 이미준 (서비스 기획자)
|
||||
- **버전**: 1.5.7
|
||||
- **버전**: 1.5.9
|
||||
- **설계 철학**: Mobile First Design
|
||||
|
||||
---
|
||||
@ -20,7 +20,6 @@
|
||||
- [04-템플릿선택](#04-템플릿선택)
|
||||
- [05-회의진행](#05-회의진행)
|
||||
- [07-회의종료](#07-회의종료)
|
||||
- [~~09-Todo관리~~ (MVP v2.4.0에서 제거됨)](#09-todo관리)
|
||||
- [10-회의록상세조회](#10-회의록상세조회)
|
||||
- [11-회의록수정](#11-회의록수정)
|
||||
- [12-회의록목록조회](#12-회의록목록조회)
|
||||
@ -37,7 +36,7 @@
|
||||
## 설계 개요
|
||||
|
||||
### 설계 목표
|
||||
업무 지식이 없는 회의 참석자 누구라도 누락 없이 정확한 회의록을 작성하고 공유할 수 있는 직관적이고 효율적인 사용자 경험 제공
|
||||
업무 지식이 없는 회의 참여자 누구라도 누락 없이 정확한 회의록을 작성하고 공유할 수 있는 직관적이고 효율적인 사용자 경험 제공
|
||||
|
||||
### 설계 원칙
|
||||
|
||||
@ -72,7 +71,7 @@
|
||||
### 주요 추가 기능 (v1.1)
|
||||
1. **AI 기반 회의 내용 요약 자동 생성**
|
||||
- 각 섹션 최상단에 AI가 자동으로 생성한 2-3문장 요약 표시
|
||||
- 참석자가 요약 내용 확인 후 수정 가능
|
||||
- 참여자가 요약 내용 확인 후 수정 가능
|
||||
- 실시간 동기화 및 자동 저장
|
||||
|
||||
2. **참고자료 자동 연결 (UFR-AI-040)**
|
||||
@ -95,7 +94,6 @@
|
||||
| 04 | 템플릿선택 | UFR-MEET-020 | 중간 | 회의록 템플릿 선택 | X | O | |
|
||||
| 05 | 회의진행 | UFR-MEET-030, UFR-STT-010/020, UFR-AI-010 | 높음 | 실시간 회의 진행 및 회의록 작성 | X | X | |
|
||||
| 07 | 회의종료 | UFR-MEET-040, UFR-MEET-050 | 높음 | 회의 통계 및 최종 확정 | X | X | |
|
||||
| ~~09~~ | ~~Todo관리~~ | ~~UFR-TODO-010, UFR-TODO-030~~ | ~~높음~~ | ~~Todo 목록 및 진행 관리~~ | ~~O~~ | ~~X~~ | **MVP v2.4.0에서 제거됨** |
|
||||
| 10 | 회의록상세조회 | UFR-MEET-047 | 중간 | 회의록 상세 보기 | X | O | |
|
||||
| 11 | 회의록수정 | UFR-MEET-055 | 중간 | 지난 회의록 수정 | X | O | |
|
||||
| 12 | 회의록목록조회 | UFR-MEET-046 | 높음 | 회의록 목록 필터링/정렬/검색 | O | X | |
|
||||
@ -111,7 +109,7 @@
|
||||
#### 시나리오 1: 새 회의 진행 (Full Flow)
|
||||
```
|
||||
로그인 → 대시보드 → 회의예약 → 템플릿선택 → 회의진행
|
||||
→ 검증완료 → 회의종료 → 대시보드
|
||||
→ 회의종료 → 회의록수정 (선택) → 대시보드
|
||||
```
|
||||
|
||||
#### 시나리오 2: 지난 회의록 조회 및 수정
|
||||
@ -119,12 +117,7 @@
|
||||
로그인 → 대시보드 → 회의록상세조회 → 회의록수정 → 대시보드
|
||||
```
|
||||
|
||||
#### 시나리오 3: Todo 관리
|
||||
```
|
||||
로그인 → 대시보드 → Todo관리 → 회의록상세조회 (Todo 출처 확인) → 대시보드
|
||||
```
|
||||
|
||||
#### 시나리오 4: 빠른 회의 시작 (템플릿 스킵)
|
||||
#### 시나리오 3: 빠른 회의 시작 (템플릿 스킵)
|
||||
```
|
||||
로그인 → 대시보드 → 회의진행 (기본 템플릿) → 회의종료 → 대시보드
|
||||
```
|
||||
@ -137,23 +130,17 @@ graph TD
|
||||
B --> C[회의예약]
|
||||
C --> D[템플릿선택]
|
||||
D --> E[회의진행]
|
||||
E --> F{검증 완료?}
|
||||
F -->|Yes| G[회의종료]
|
||||
F -->|No| E
|
||||
G --> B
|
||||
E --> G[회의종료]
|
||||
G --> H{회의록 수정?}
|
||||
H -->|Yes| K[회의록수정]
|
||||
H -->|No| B
|
||||
K --> B
|
||||
|
||||
B --> I[회의록상세조회]
|
||||
I --> J{수정 필요?}
|
||||
J -->|Yes| K[회의록수정]
|
||||
J -->|Yes| K
|
||||
K --> I
|
||||
J -->|No| B
|
||||
|
||||
B --> L[Todo관리]
|
||||
L --> M{Todo 출처 확인?}
|
||||
M -->|Yes| I
|
||||
M -->|No| B
|
||||
|
||||
E -.실시간 연동.-> L
|
||||
```
|
||||
|
||||
[↑ 목차로 돌아가기](#목차)
|
||||
@ -227,45 +214,39 @@ graph TD
|
||||
- **비즈니스 중요도**: 필수
|
||||
- **접근 경로**: 로그인 후 메인 화면
|
||||
|
||||
#### 주요 기능 (MVP 스코프 축소 v1.5.0)
|
||||
#### 주요 기능
|
||||
1. 빠른 회의 시작 및 예약
|
||||
2. **예정된/진행중 회의 목록** (upcoming & ongoing meetings)
|
||||
- 예정된 회의 (아직 시작 전)
|
||||
- 진행중 회의 (참여 가능한 회의)
|
||||
2. **최근 회의 목록** (최대 3개, 회의록 미생성 우선)
|
||||
- 1순위: 진행중 회의 (참여 가능)
|
||||
- 2순위: 예정된 회의 (시작 전)
|
||||
- 3순위: 최근 종료된 회의 (회의록 있음, 1+2순위가 3개 미만일 때만 표시)
|
||||
3. **통계 정보 표시** (예정된 회의, 작성중 회의록)
|
||||
4. **내 회의록** (참여자/생성자로 등록된 최근 4개, 상태 포함)
|
||||
5. 전역 검색
|
||||
|
||||
**변경사항 (v1.5.0)**:
|
||||
- ❌ 제거: "내 Todo" 섹션 및 Todo 관리 메뉴
|
||||
- ✅ 추가: "작성중 회의록" 통계 카드
|
||||
- ✅ 변경: 네비게이션 간소화 (대시보드, 회의록만 유지)
|
||||
|
||||
#### UI 구성요소
|
||||
|
||||
**Mobile (320px~768px)**
|
||||
- **헤더** (상단) - **개선안 A 적용 (v1.5)**
|
||||
- **헤더** (상단)
|
||||
- "안녕하세요 👋" (H3, Bold)
|
||||
- 부제: "오늘 {N}건의 회의가 예정되어 있어요" (Body, 회색)
|
||||
- N = 예정된 회의 개수 (동적 업데이트)
|
||||
- 예정된 회의가 없을 경우: "예정된 회의가 없습니다"
|
||||
|
||||
- **메인 콘텐츠** (스크롤, padding-bottom: 80px, background: gray-50)
|
||||
- **통계 카드** (2열 그리드) - **v1.5.0 변경**
|
||||
- **통계 카드** (2열 그리드)
|
||||
- "📅 예정된 회의" 카드
|
||||
- 값: 전체 예정 + 진행 중 회의 개수
|
||||
- 클릭 액션: 없음 (정보 표시만)
|
||||
- 값: 전체 예정 + 진행 중 회의 개수
|
||||
- "📝 작성중 회의록" 카드
|
||||
- 값: 내가 참석한 회의 중 '작성중' 상태인 회의록 개수
|
||||
- 클릭 액션: 없음 (정보 표시만)
|
||||
- 값: 내가 참여한 회의 중 '작성중' 상태인 회의록 개수
|
||||
- 높이: ~80px
|
||||
- 클릭 액션: 없음 (정보 표시만)
|
||||
- 반응형: 태블릿 이상에서 간격 증가
|
||||
|
||||
- **최근 회의** 섹션
|
||||
- 헤더: "예정된 회의" (H4) + "전체 보기 →" 링크
|
||||
- 헤더: "최근 회의" (H4)
|
||||
- **정렬 기준** (UFR-USER-020 기준):
|
||||
1. **1순위**: 회의록 미생성 회의 (진행중 + 예정) 우선 표시
|
||||
2. **2순위**: 미생성이 3개 미만이면 최근 종료된 회의(회의록 있음)로 나머지 채움
|
||||
2. **2순위**: 1순위가 3개 미만이면 최근 종료된 회의(회의록 있음)로 나머지 채움
|
||||
3. **각 그룹 내 정렬**: 빠른 일시 순 (시작 시간 기준)
|
||||
4. **최대 표시**: 3개
|
||||
- **회의 카드** (클릭 가능 블록):
|
||||
@ -276,15 +257,15 @@ graph TD
|
||||
- 회의 제목 (H5)
|
||||
- 생성자 표시 (👑 아이콘) - 내가 생성한 회의인 경우
|
||||
- 회의 일시 (아이콘: calendar_today)
|
||||
- 참석자 수 (아이콘: people)
|
||||
- 참여자 수 (아이콘: people)
|
||||
- 장소 정보
|
||||
- 상태 버튼 (표시용):
|
||||
- 진행중: "참여하기" 버튼
|
||||
- 예정: 버튼 없음 (카드 클릭으로 처리)
|
||||
- 완료: "보기" 버튼
|
||||
- 완료: 버튼 없음 (카드 클릭으로 처리)
|
||||
- 빈 상태: "예정된 회의가 없습니다"
|
||||
|
||||
- **내 회의록** 카드 - **v1.5.0 변경 (Todo 섹션 제거)**
|
||||
- **내 회의록** 카드
|
||||
- 헤더: "내 회의록" (H4) + "전체 보기 →" 링크 (회의록 목록 화면으로 이동)
|
||||
- **최근 회의록 리스트** (최대 4개, 2x2 그리드):
|
||||
- 필터: 내가 참여자 또는 생성자로 등록된 회의록
|
||||
@ -292,7 +273,7 @@ graph TD
|
||||
- 각 항목:
|
||||
- 회의 제목 (H5)
|
||||
- 회의 일시 (날짜 + 시간)
|
||||
- 참석자 수
|
||||
- 참여자 수
|
||||
- **상태 배지**:
|
||||
- "작성중" (draft, 주황색 배지)
|
||||
- "확정완료" (confirmed, 초록색 배지)
|
||||
@ -333,18 +314,18 @@ graph TD
|
||||
- "회의 예약" 클릭 → 회의예약 화면으로 이동
|
||||
|
||||
2. **예정된/진행중 회의 인터랙션**
|
||||
- **진행중 회의** (모든 참석자):
|
||||
- **진행중 회의** (모든 참여자):
|
||||
- "참여하기" 버튼 클릭 → 회의 진행 화면으로 즉시 이동
|
||||
- 회의 항목 클릭 → 회의 상세 정보 표시 (모달 또는 화면 이동)
|
||||
- 애니메이션: "진행중" 배지 깜빡임 효과 (1초 간격)
|
||||
|
||||
- **예정된 회의 - 생성자 (내가 생성한 회의)**:
|
||||
- 회의 카드 클릭 → 회의예약 화면(수정 모드)으로 이동
|
||||
- 회의 제목, 일시, 참석자, 안건 등 수정 가능
|
||||
- 저장 시 참석자에게 변경 알림 발송
|
||||
- 회의 제목, 일시, 참여자, 안건 등 수정 가능
|
||||
- 저장 시 참여자에게 변경 알림 발송
|
||||
- 크라운 아이콘 표시 (생성자 구분)
|
||||
|
||||
- **예정된 회의 - 초대받은 참석자**:
|
||||
- **예정된 회의 - 초대받은 참여자**:
|
||||
- 회의 카드 클릭 → 시스템 알럿 표시
|
||||
- 메시지: "아직 회의 시간이 되지 않아 참여하실 수 없습니다"
|
||||
- 다음 버전에서 회의 상세 조회 기능으로 개선 예정
|
||||
@ -355,9 +336,6 @@ graph TD
|
||||
|
||||
3. **카드 인터랙션**
|
||||
- 회의록 항목 클릭 → 회의록 상세 화면으로 이동
|
||||
- **Todo 항목 클릭 → 해당 Todo가 포함된 회의록 상세 화면으로 이동**
|
||||
- URL 파라미터로 회의록 ID와 Todo ID 전달
|
||||
- 회의록 상세 화면에서 해당 Todo 섹션으로 자동 스크롤
|
||||
- "전체 보기" 링크 클릭 → 해당 목록 화면으로 이동
|
||||
- 호버 효과: 카드 그림자 증가, 약간 상승 (transform: translateY(-2px))
|
||||
|
||||
@ -372,13 +350,13 @@ graph TD
|
||||
|
||||
- **출력**:
|
||||
- **예정된/진행중 회의**:
|
||||
- 회의 ID, 제목, 일시, 참석자 목록, 상태 (예정/진행중), D-day
|
||||
- 회의 ID, 제목, 일시, 참여자 목록, 상태 (예정/진행중), D-day
|
||||
- **생성자 ID** (권한 판별용)
|
||||
- **현재 사용자 역할** (creator | attendee)
|
||||
- **참여 가능 시간** (시작 시간 - 10분)
|
||||
- 필터 조건:
|
||||
- **진행중 회의**: 회의 시작 시간 <= 현재 시간 AND 회의 종료 안 됨, 사용자가 참석자 또는 생성자
|
||||
- **예정된 회의**: 회의 일시 >= 현재 시간, 사용자가 참석자 또는 생성자
|
||||
- **진행중 회의**: 회의 시작 시간 <= 현재 시간 AND 회의 종료 안 됨, 사용자가 참여자 또는 생성자
|
||||
- **예정된 회의**: 회의 일시 >= 현재 시간, 사용자가 참여자 또는 생성자
|
||||
- 정렬 우선순위:
|
||||
1. 진행중 회의 우선 (상태 = ongoing)
|
||||
2. 예정된 회의 (회의 일시 순, 가까운 순)
|
||||
@ -386,34 +364,22 @@ graph TD
|
||||
- **버튼 표시 조건**:
|
||||
- 진행중 회의: "참여하기" 버튼 (항상 표시)
|
||||
- 예정된 회의 (생성자): "수정" 버튼 (항상 표시)
|
||||
- 예정된 회의 (참석자):
|
||||
- 예정된 회의 (참여자):
|
||||
- 현재 시간 >= 시작 시간 - 10분: "참여하기" 버튼 활성화
|
||||
- 현재 시간 < 시작 시간 - 10분: 버튼 비활성화 또는 타이머 표시
|
||||
|
||||
- **내 Todo**:
|
||||
- Todo ID, 제목, 담당자, 마감일, 상태, 우선순위
|
||||
- 필터: 담당자 = 현재 사용자
|
||||
- 정렬:
|
||||
1. 지연중 (마감일 < 현재 날짜, 상태 != done)
|
||||
2. 진행중 (상태 = in_progress)
|
||||
3. 미진행 (상태 = not_started, 마감일 >= 현재 날짜)
|
||||
4. 완료 (상태 = done)
|
||||
- 최대 5개
|
||||
|
||||
- **내 회의록**:
|
||||
- 회의 ID, 제목, 일시, 참석자 수, 상태, 생성일시, 수정일시
|
||||
- 회의 ID, 제목, 일시, 참여자 수, 상태, 생성일시, 수정일시
|
||||
- 필터: 사용자가 참여자 또는 생성자
|
||||
- 정렬: 생성일시 (최근 순)
|
||||
- 최대 3개
|
||||
|
||||
- **통계 데이터** (Desktop):
|
||||
- **통계 데이터**:
|
||||
- 예정된/진행중 회의 수 (진행중 회의 수 별도 배지)
|
||||
- 진행 중 Todo 수
|
||||
- Todo 완료율 (완료 / 전체 × 100)
|
||||
- 작성중 회의록 수
|
||||
|
||||
- **연동**:
|
||||
- Meeting 서비스 (회의 정보, 회의록 정보)
|
||||
- Todo 서비스 (Todo 목록)
|
||||
|
||||
#### 에러 처리
|
||||
- **데이터 로딩 실패**:
|
||||
@ -427,7 +393,6 @@ graph TD
|
||||
|
||||
- **빈 상태** (각 섹션별):
|
||||
- 예정된/진행중 회의: "예정된 회의가 없습니다"
|
||||
- Todo: "할당된 Todo가 없습니다"
|
||||
- 내 회의록: "작성한 회의록이 없습니다. 첫 회의를 시작해보세요!"
|
||||
|
||||
- **진행중 회의 참여 실패**:
|
||||
@ -438,7 +403,7 @@ graph TD
|
||||
- 네트워크 오류: [공통 에러 메시지 - 네트워크 오류](#네트워크-오류) 참조
|
||||
|
||||
- **예정된 회의 접근 제한**:
|
||||
- **시간 제한 (초대받은 참석자)**:
|
||||
- **시간 제한 (초대받은 참여자)**:
|
||||
- "아직 참여할 수 없습니다. N분 후 참여 가능합니다." 토스트 메시지
|
||||
- 10분 전부터 참여 버튼 활성화
|
||||
- 타이머 자동 갱신 (1분 간격)
|
||||
@ -459,7 +424,7 @@ graph TD
|
||||
### 03-회의예약
|
||||
|
||||
#### 개요
|
||||
- **목적**: 예정된 회의 일정 등록 및 참석자 초대
|
||||
- **목적**: 예정된 회의 일정 등록 및 참여자 초대
|
||||
- **관련 유저스토리**: UFR-MEET-010
|
||||
- **비즈니스 중요도**: 높음
|
||||
- **접근 경로**: 대시보드 → "회의 예약" 버튼
|
||||
@ -467,9 +432,9 @@ graph TD
|
||||
|
||||
#### 주요 기능
|
||||
1. 회의 기본 정보 입력 (제목, 날짜/시간, 장소)
|
||||
2. 참석자 추가 (이메일 또는 조직도 검색)
|
||||
2. 참여자 추가 (이메일 또는 조직도 검색)
|
||||
3. 회의 안건 사전 입력 (선택)
|
||||
4. 참석자 초대 이메일 자동 발송
|
||||
4. 참여자 초대 이메일 자동 발송
|
||||
5. 캘린더 연동
|
||||
|
||||
#### UI 구성요소
|
||||
@ -496,10 +461,10 @@ graph TD
|
||||
- 온라인/오프라인 토글
|
||||
- 온라인 선택 시: 회의 링크 자동 생성 옵션
|
||||
|
||||
- **참석자** (필수, 최소 1명)
|
||||
- 참석자 칩 (제거 가능)
|
||||
- "참석자 추가" 버튼
|
||||
- 참석자 검색 (이메일 또는 이름)
|
||||
- **참여자** (필수, 최소 1명)
|
||||
- 참여자 칩 (제거 가능)
|
||||
- "참여자 추가" 버튼
|
||||
- 참여자 검색 (이메일 또는 이름)
|
||||
|
||||
- **안건** (선택)
|
||||
- 다중 라인 텍스트 입력
|
||||
@ -514,10 +479,10 @@ graph TD
|
||||
- 시간 선택: 30분 단위 드롭다운
|
||||
- 충돌 감지: 동일 시간대 다른 회의 있을 경우 경고
|
||||
|
||||
2. **참석자 추가**
|
||||
- "참석자 추가" 클릭 → 검색 모달 표시
|
||||
2. **참여자 추가**
|
||||
- "참여자 추가" 클릭 → 검색 모달 표시
|
||||
- 실시간 검색 (이름, 이메일, 부서)
|
||||
- 선택된 참석자는 칩 형태로 표시
|
||||
- 선택된 참여자는 칩 형태로 표시
|
||||
- 칩의 X 버튼으로 제거 가능
|
||||
|
||||
3. **저장 처리**
|
||||
@ -532,14 +497,14 @@ graph TD
|
||||
- 시작 시간(Time)
|
||||
- 종료 시간(Time)
|
||||
- 장소(문자열, 최대 200자, 선택)
|
||||
- 참석자 목록(이메일 배열)
|
||||
- 참여자 목록(이메일 배열)
|
||||
- 안건(문자열, 선택)
|
||||
- **출력**: 회의 ID, 초대 이메일 발송 결과
|
||||
- **연동**: Meeting 서비스, Notification 서비스
|
||||
|
||||
#### 에러 처리
|
||||
- **필수 필드 누락**: 해당 필드에 빨간색 테두리 및 오류 메시지
|
||||
- **참석자 0명**: "최소 1명의 참석자를 추가해주세요"
|
||||
- **참여자 0명**: "최소 1명의 참여자를 추가해주세요"
|
||||
- **과거 날짜 선택**: "과거 날짜는 선택할 수 없습니다"
|
||||
- **저장 실패**: "회의 예약에 실패했습니다. 다시 시도해주세요"
|
||||
|
||||
@ -620,21 +585,21 @@ graph TD
|
||||
- **접근 경로**: 대시보드 → "참여하기" 버튼 (페이지 전환)
|
||||
- **권한** (MVP 개선):
|
||||
- **회의 생성자 전용**: 회의 종료, 녹음 제어 (일시정지/재개/종료)
|
||||
- **모든 참석자**: 회의 참여, AI 기반 메모 작성, 용어 확인, 관련 회의록 확인, 중도 퇴장
|
||||
- **모든 참여자**: 회의 참여, AI 기반 메모 작성, 용어 확인, 관련 회의록 확인, 중도 퇴장
|
||||
|
||||
#### 주요 기능 (MVP 스코프 축소 v1.5.0)
|
||||
1. 음성 녹음 및 실시간 텍스트 변환 (STT)
|
||||
2. AI 자동 회의록 작성 (구조화)
|
||||
3. **AI 기반 메모 작성** (UFR-PART-020): AI가 실시간으로 감지한 주요 내용을 참석자가 선택하여 개인 메모로 저장
|
||||
3. **AI 기반 메모 작성** (UFR-PART-020): AI가 실시간으로 감지한 주요 내용을 참여자가 선택하여 개인 메모로 저장
|
||||
4. 전문용어 자동 감지 및 맥락 기반 설명
|
||||
5. **참고자료 자동 연결** (이전 회의록, 관련 회의록)
|
||||
6. 참석자 관리 및 초대 기능
|
||||
6. 참여자 관리 및 초대 기능
|
||||
7. 회의 진행 시간 표시
|
||||
|
||||
**변경사항 (v1.5.0)**:
|
||||
- ✅ 변경: "AI 제안" 탭 → "AI 기반 메모" 탭으로 기능 변경
|
||||
- ✅ 추가: 개인 메모 입력 및 저장 기능 (각 참석자별 개별 저장)
|
||||
- ✅ 정책: 메모는 회의 종료 전까지만 표시/편집 가능, 다른 참석자 메모는 볼 수 없음
|
||||
- ✅ 추가: 개인 메모 입력 및 저장 기능 (각 참여자별 개별 저장)
|
||||
- ✅ 정책: 메모는 회의 종료 전까지만 표시/편집 가능, 다른 참여자 메모는 볼 수 없음
|
||||
|
||||
#### UI 구성요소
|
||||
|
||||
@ -645,24 +610,24 @@ graph TD
|
||||
|
||||
- **메인 콘텐츠 영역: 정보 패널** (탭 구조)
|
||||
- **탭 네비게이션** (4개 탭)
|
||||
- 참석자 (3명)
|
||||
- 참여자 (3명)
|
||||
- AI 기반 메모
|
||||
- 용어 사전
|
||||
- 관련 자료 (32건)
|
||||
|
||||
- **참석자 탭** (4명)
|
||||
- 제목: "참석자 (4명)" (동적으로 인원수 업데이트)
|
||||
- **참석자 추가 폼**:
|
||||
- **참여자 탭** (4명)
|
||||
- 제목: "참여자 (4명)" (동적으로 인원수 업데이트)
|
||||
- **참여자 추가 폼**:
|
||||
- 이메일 입력 필드: placeholder "이메일 주소 입력", form-control 스타일
|
||||
- "초대" 버튼: btn btn-primary btn-sm
|
||||
- 레이아웃: Flex (gap: 8px), 입력창(flex: 1) + 버튼
|
||||
- 하단 여백: 16px (margin-bottom: var(--space-md))
|
||||
- **참석자 목록** (아바타 + 이름)
|
||||
- **참여자 목록** (아바타 + 이름)
|
||||
- 김민준 (초록 아바타)
|
||||
- 박서연 (파랑 아바타)
|
||||
- 이준호 (노랑 아바타)
|
||||
- 최유진 (핑크 아바타)
|
||||
- **각 참석자 아이템**:
|
||||
- **각 참여자 아이템**:
|
||||
- 컬러 아바타 (avatar-sm: 32x32)
|
||||
- 이름 (text-small font-medium, 14px)
|
||||
- flex layout, 하단 구분선 (마지막 제외)
|
||||
@ -728,9 +693,9 @@ graph TD
|
||||
- 입력된 메모는 수정 가능
|
||||
|
||||
- **정책**:
|
||||
- 각 참석자별로 개별 저장 (다른 참석자의 메모는 볼 수 없음)
|
||||
- 각 참여자별로 개별 저장 (다른 참여자의 메모는 볼 수 없음)
|
||||
- 메모는 회의 종료 전까지만 표시 및 편집 가능
|
||||
- 회의 종료 시 AI가 회의록 생성할 때 모든 참석자의 메모 참조
|
||||
- 회의 종료 시 AI가 회의록 생성할 때 모든 참여자의 메모 참조
|
||||
|
||||
- **용어 사전 탭**
|
||||
- 제목: "용어 사전"
|
||||
@ -820,8 +785,8 @@ graph TD
|
||||
#### 인터랙션
|
||||
|
||||
1. **탭 전환**
|
||||
- **참석자 탭**: 현재 회의 참석자 목록 표시 (4명) 및 참석자 추가 기능
|
||||
- **참석자 추가 폼** (상단):
|
||||
- **참여자 탭**: 현재 회의 참여자 목록 표시 (4명) 및 참여자 추가 기능
|
||||
- **참여자 추가 폼** (상단):
|
||||
- 이메일 입력 필드 (form-control 스타일, placeholder: "이메일 주소 입력")
|
||||
- "초대" 버튼 (btn btn-primary btn-sm)
|
||||
- 이메일 입력 후 "초대" 클릭 시:
|
||||
@ -831,15 +796,15 @@ graph TD
|
||||
4. 유효한 이메일: "{email}에게 초대 링크가 전송되었습니다" 성공 토스트
|
||||
5. 입력창 초기화 (value = '')
|
||||
6. 실제 구현 시 서버 API 호출 (/api/meetings/invite)
|
||||
- **참석자 목록** (하단):
|
||||
- 각 참석자: 아바타 + 이름
|
||||
- **참여자 목록** (하단):
|
||||
- 각 참여자: 아바타 + 이름
|
||||
- 상태 표시 없음 (발언 중/온라인 등 제거)
|
||||
- 참석자 수 동적 업데이트 (초대 성공 시)
|
||||
- 참여자 수 동적 업데이트 (초대 성공 시)
|
||||
|
||||
- **AI 기반 메모 탭** (UFR-PART-020): AI가 감지한 주요 내용을 참석자가 선택하여 개인 메모로 저장
|
||||
- **AI 기반 메모 탭** (UFR-PART-020): AI가 감지한 주요 내용을 참여자가 선택하여 개인 메모로 저장
|
||||
- **메모 작성 및 저장**:
|
||||
- 메모 입력창에 자유롭게 메모 작성 가능
|
||||
- "저장" 버튼 클릭 시 개인 메모로 저장 (각 참석자별 개별 저장)
|
||||
- "저장" 버튼 클릭 시 개인 메모로 저장 (각 참여자별 개별 저장)
|
||||
- 저장 성공 시 "{n}개의 메모가 저장되었습니다" 성공 토스트
|
||||
- 저장 실패 시 "메모 저장에 실패했습니다" 오류 토스트
|
||||
- **AI가 감지한 주요 내용**:
|
||||
@ -854,8 +819,8 @@ graph TD
|
||||
4. 저장 버튼 활성화
|
||||
- **정책**:
|
||||
- 메모는 회의 종료 전까지만 표시/편집 가능
|
||||
- 각 참석자의 메모는 다른 참석자에게 보이지 않음
|
||||
- 회의 종료 시 AI가 모든 참석자의 메모를 참조하여 회의록 생성
|
||||
- 각 참여자의 메모는 다른 참여자에게 보이지 않음
|
||||
- 회의 종료 시 AI가 모든 참여자의 메모를 참조하여 회의록 생성
|
||||
|
||||
- **용어 사전 탭**: 회의에서 언급된 전문용어 설명
|
||||
- **용어 검색 기능**:
|
||||
@ -892,14 +857,14 @@ graph TD
|
||||
- **입력**:
|
||||
- 회의 ID
|
||||
- 오디오 스트림 (실시간 STT용)
|
||||
- 참석자 초대 이메일
|
||||
- 참여자 초대 이메일
|
||||
- **출력**:
|
||||
- 실시간 텍스트 변환 결과 (STT)
|
||||
- **AI가 감지한 주요 내용 목록** (시간 + 내용)
|
||||
- **개인 메모** (각 참석자별 개별 저장)
|
||||
- **개인 메모** (각 참여자별 개별 저장)
|
||||
- **전문용어 및 설명** (용어 사전)
|
||||
- **관련 회의록 목록** (32건, 관련도 포함)
|
||||
- 참석자 목록
|
||||
- 참여자 목록
|
||||
- **연동**:
|
||||
- STT 서비스 (UFR-AI-010)
|
||||
- AI 서비스 (주요 내용 감지, UFR-AI-040)
|
||||
@ -913,7 +878,7 @@ graph TD
|
||||
- **메모 저장 실패**: "메모 저장에 실패했습니다" 토스트 + 재시도 버튼
|
||||
- **용어 사전 로드 실패**: "용어 사전을 불러올 수 없습니다" 메시지 표시
|
||||
- **관련 자료 검색 실패**: "관련 회의록을 찾을 수 없습니다" 메시지 표시
|
||||
- **참석자 초대 실패**: "초대 링크 전송에 실패했습니다" 토스트 + 재시도 버튼
|
||||
- **참여자 초대 실패**: "초대 링크 전송에 실패했습니다" 토스트 + 재시도 버튼
|
||||
- **회의 종료 실패**: "회의 종료 중 오류가 발생했습니다" 토스트 + 재시도 버튼
|
||||
|
||||
---
|
||||
@ -933,7 +898,7 @@ graph TD
|
||||
- 확인 후 다음 단계 선택만 가능
|
||||
|
||||
#### 주요 기능
|
||||
1. 회의 통계 표시 (시간, 참석자, 발언 횟수 등)
|
||||
1. 회의 통계 표시 (시간, 참여자, 발언 횟수 등)
|
||||
2. 주요 키워드 클라우드
|
||||
3. **안건별 AI 요약 전체 표시** (신규)
|
||||
- 안건별 AI 한줄 요약 (30자 이내, 편집 불가)
|
||||
@ -953,7 +918,7 @@ graph TD
|
||||
|
||||
- **통계 카드**
|
||||
- 회의 총 시간
|
||||
- 참석자 수
|
||||
- 참여자 수
|
||||
- 주요 키워드 (태그 클라우드)
|
||||
|
||||
- **안건별 AI 요약 섹션** (신규)
|
||||
@ -980,7 +945,7 @@ graph TD
|
||||
- 확인 다이얼로그: "AI가 정리한 내용 그대로 최종 확정하시겠습니까?"
|
||||
- 모든 안건 자동 검증 완료 처리
|
||||
- 회의록 상태: 확정완료
|
||||
- 참석자에게 확정 알림 발송
|
||||
- 참여자에게 확정 알림 발송
|
||||
- **옵션 3**: "대시보드로 이동" 버튼 (Ghost)
|
||||
- 회의록 상태: 작성중 (추후 편집 가능)
|
||||
- 대시보드로 이동
|
||||
@ -1018,7 +983,7 @@ graph TD
|
||||
- 안건별 검증완료 처리
|
||||
- 회의록 상태: "작성중" → "확정완료"로 변경
|
||||
- 확정 시간 기록
|
||||
- 참석자에게 확정 알림 발송
|
||||
- 참여자에게 확정 알림 발송
|
||||
- 성공 토스트: "회의록이 최종 확정되었습니다"
|
||||
- 10-회의록상세조회.html로 이동
|
||||
- **시나리오 2 특징 (바로 확정)**:
|
||||
@ -1034,14 +999,14 @@ graph TD
|
||||
#### 데이터 요구사항
|
||||
- **입력**: 회의 ID
|
||||
- **출력**:
|
||||
- 회의 통계 (시간, 참석자 수, 발언 통계, 키워드)
|
||||
- 회의 통계 (시간, 참여자 수, 발언 통계, 키워드)
|
||||
- **안건별 AI 요약 데이터**:
|
||||
- 안건 제목
|
||||
- AI 한줄 요약 (30자 이내)
|
||||
- 상세 요약 정리 (논의 주제, 발언자별 의견, 결정 사항, 보류 사항)
|
||||
- 안건별 Todo 목록 (제목, 담당자, 마감일, 우선순위)
|
||||
- 회의록 상태 (작성중/확정완료)
|
||||
- **연동**: Meeting 서비스, AI 서비스, Todo 서비스
|
||||
- **연동**: Meeting 서비스, AI 서비스
|
||||
|
||||
#### 에러 처리
|
||||
- **통계 생성 실패**: "통계를 생성할 수 없습니다" + 건너뛰기 옵션
|
||||
@ -1058,7 +1023,7 @@ graph TD
|
||||
- **관련 유저스토리**: UFR-MEET-047, UFR-AI-040, UFR-MEET-048
|
||||
- **비즈니스 중요도**: 중간
|
||||
- **접근 경로**: 대시보드 → "내 회의록" 항목 클릭
|
||||
- **권한**: 모든 회의 참석자 (조회 전용)
|
||||
- **권한**: 모든 회의 참여자 (조회 전용)
|
||||
|
||||
#### 주요 기능 (MVP 스코프 축소 v1.5.0)
|
||||
1. 회의 기본 정보 표시
|
||||
@ -1086,7 +1051,7 @@ graph TD
|
||||
|
||||
- **기본 정보 카드**
|
||||
- 회의 일시
|
||||
- 참석자 아바타 및 이름 (역할 구분)
|
||||
- 참여자 아바타 및 이름 (역할 구분)
|
||||
- 회의 장소
|
||||
- 회의록 상태 배지 (작성중/확정완료)
|
||||
- 작성자 및 최종 수정 시간
|
||||
@ -1120,7 +1085,7 @@ graph TD
|
||||
- **핵심내용 섹션** (💡)
|
||||
- 번호 매김된 핵심 포인트 (4-5개)
|
||||
- 주요 키워드 태그 클라우드
|
||||
- 회의 통계 (참석자 수, 시간, 발언 횟수, 주요 의제 수)
|
||||
- 회의 통계 (참여자 수, 시간, 발언 횟수, 주요 의제 수)
|
||||
|
||||
- **결정사항 섹션** (✅)
|
||||
- 결정사항 카드 리스트
|
||||
@ -1211,7 +1176,7 @@ graph TD
|
||||
#### 데이터 요구사항
|
||||
- **입력**: 회의록 ID, 활성 탭 (회의록/대시보드/타임라인)
|
||||
- **출력**:
|
||||
- **회의 기본 정보**: 제목, 일시, 참석자, 장소, 상태, 작성자, 수정 시간
|
||||
- **회의 기본 정보**: 제목, 일시, 참여자, 장소, 상태, 작성자, 수정 시간
|
||||
- **안건별 AI 요약**: 자동 생성 요약, 수정 이력
|
||||
- **안건별 내용**: 마크다운 형식
|
||||
- **참고자료 목록**:
|
||||
@ -1222,12 +1187,12 @@ graph TD
|
||||
- **대시보드 데이터** (대시보드 탭 선택 시):
|
||||
- 핵심내용 (4-5개 포인트)
|
||||
- 주요 키워드
|
||||
- 회의 통계 (참석자 수, 시간, 발언 횟수, 의제 수)
|
||||
- 회의 통계 (참여자 수, 시간, 발언 횟수, 의제 수)
|
||||
- 결정사항 리스트 (결정 내용, 결정자, 시간, 배경)
|
||||
- Todo 진행상황 (담당자별 그룹, 진행률)
|
||||
- **Todo 목록 및 진행 상황**
|
||||
- **첨부파일 목록**
|
||||
- **연동**: Meeting 서비스, AI 서비스 (UFR-AI-040), Todo 서비스
|
||||
- **연동**: Meeting 서비스, AI 서비스 (UFR-AI-040)
|
||||
|
||||
#### 에러 처리
|
||||
- **회의록 로딩 실패**: "회의록을 불러올 수 없습니다" + 재시도 버튼
|
||||
@ -1247,14 +1212,14 @@ graph TD
|
||||
- **비즈니스 중요도**: 중간
|
||||
- **접근 경로**: 10-회의록상세조회 → 하단 액션 바 "수정" 버튼 클릭
|
||||
- **권한 제어**:
|
||||
- **검증완료 전**: 모든 참석자가 수정 가능
|
||||
- **검증완료 후**: 회의 생성자만 수정 가능 (참석자는 "수정" 버튼 비활성화)
|
||||
- **검증완료 전**: 모든 참여자가 수정 가능
|
||||
- **검증완료 후**: 회의 생성자만 수정 가능 (참여자는 "수정" 버튼 비활성화)
|
||||
|
||||
#### 주요 기능 (MVP 스코프 축소 v1.5.2)
|
||||
1. 회의 기본 정보 표시 및 수정
|
||||
- 회의 제목: 수정 가능
|
||||
- 회의 일시/장소: 읽기 전용 (회의 예약 화면에서만 변경 가능)
|
||||
- 참석자 관리: 회의 생성자만 추가/삭제 가능
|
||||
- 참여자 관리: 회의 생성자만 추가/삭제 가능
|
||||
2. **회의록 내용 수정 (안건별)** - 용어 변경: 섹션 → 안건
|
||||
3. **AI 요약 표시 및 재생성 (안건별, UFR-AI-036)**
|
||||
- AI 한줄 요약 표시 (30자 이내, 읽기 전용)
|
||||
@ -1265,7 +1230,7 @@ graph TD
|
||||
5. **Todo 단순 조회** (제목 + 담당자 + 마감일만 표시)
|
||||
6. **안건별 검증 완료 체크박스 (UFR-COLLAB-030)**
|
||||
- 회의 생성자: 검증 완료 체크박스 활성화, 잠금 해제 후 수정 가능
|
||||
- 참석자: 검증완료 안건은 읽기 전용
|
||||
- 참여자: 검증완료 안건은 읽기 전용
|
||||
7. 자동 저장 (30초 간격)
|
||||
8. 수정 이력 관리
|
||||
9. 상태 변경 (검증완료 → 작성중으로 자동 변경)
|
||||
@ -1292,11 +1257,11 @@ graph TD
|
||||
- 회의 제목: 편집 가능 (텍스트 필드)
|
||||
- 회의 일시: 읽기 전용 (📅 아이콘 + 날짜/시간 표시)
|
||||
- 회의 장소: 읽기 전용 (📍 아이콘 + 장소명)
|
||||
- 참석자 목록:
|
||||
- 참여자 목록:
|
||||
- 회의 생성자: 추가/삭제 가능 (05-회의진행 화면과 동일한 UI)
|
||||
- 참석자: 읽기 전용 표시
|
||||
- 각 참석자: 아바타 + 이름, 삭제(×) 버튼 (생성자는 삭제 불가)
|
||||
- "참석자 추가" 버튼 (이메일 입력 + 초대)
|
||||
- 참여자: 읽기 전용 표시
|
||||
- 각 참여자: 아바타 + 이름, 삭제(×) 버튼 (생성자는 삭제 불가)
|
||||
- "참여자 추가" 버튼 (이메일 입력 + 초대)
|
||||
- 회의록 상태 배지 (자동 관리)
|
||||
|
||||
- **편집 화면** (MVP 스코프 축소)
|
||||
@ -1331,7 +1296,7 @@ graph TD
|
||||
- **회의 생성자 화면**:
|
||||
- 검증 완료 체크박스 (활성화)
|
||||
- "잠금 해제" 버튼 (검증완료 안건만 표시)
|
||||
- **참석자 화면**:
|
||||
- **참여자 화면**:
|
||||
- 🔒 "읽기 전용" 배지 (검증완료 안건)
|
||||
- 안내 텍스트: "(잠금됨 · 회의 생성자만 수정 가능)"
|
||||
- 자동 저장 상태 표시 ("저장됨", "저장 중...")
|
||||
@ -1381,7 +1346,7 @@ graph TD
|
||||
- "잠금 해제" 버튼 클릭 (검증완료 안건만 표시):
|
||||
- 확인 다이얼로그: "이 안건의 잠금을 해제하시겠습니까?"
|
||||
- 확인 시: 안건 검증 완료 체크 해제 → 편집 가능 상태로 변경
|
||||
- **참석자 화면**:
|
||||
- **참여자 화면**:
|
||||
- 검증완료 안건: 🔒 "읽기 전용" 배지 표시
|
||||
- 안내 텍스트: "(잠금됨 · 회의 생성자만 수정 가능)"
|
||||
- 모든 입력 필드 비활성화 (disabled)
|
||||
@ -1419,8 +1384,8 @@ graph TD
|
||||
10. **안건 기반 충돌 방지 (UFR-COLLAB-030)** - MVP 스코프 축소
|
||||
- **안건 기반 충돌 방지 메커니즘**:
|
||||
- **다른 안건 동시 편집**: 충돌 없음
|
||||
- 참석자 A가 안건 1 편집
|
||||
- 참석자 B가 안건 2 편집 가능
|
||||
- 참여자 A가 안건 1 편집
|
||||
- 참여자 B가 안건 2 편집 가능
|
||||
- 양쪽 모두 정상 저장
|
||||
|
||||
- **동일 안건 검증 완료 체크로 충돌 방지**:
|
||||
@ -1475,7 +1440,7 @@ graph TD
|
||||
- **접근 경로**:
|
||||
- 대시보드 → "내 회의록" 전체 보기
|
||||
- 하단 네비게이션 → "회의록" 메뉴
|
||||
- **권한**: 모든 회의 참석자 (본인이 참석한 회의록만 조회)
|
||||
- **권한**: 모든 회의 참여자 (본인이 참여한 회의록만 조회)
|
||||
|
||||
#### 데이터 아키텍처
|
||||
- **데이터 레이어**: common.js의 SAMPLE_MINUTES 배열
|
||||
@ -1494,14 +1459,14 @@ graph TD
|
||||
#### 주요 기능
|
||||
1. **회의록 목록 조회** (참여/생성한 회의록)
|
||||
2. **필터링 기능**:
|
||||
- 참여 유형: 참석한 회의, 생성한 회의
|
||||
- 참여 유형: 참여한 회의, 생성한 회의
|
||||
- 상태: 전체, 작성중, 확정완료
|
||||
3. **정렬 기능**:
|
||||
- 최근수정순 (수정 일시 기준, 최근 순) - 기본값
|
||||
- 최근회의순 (회의 일시 기준, 최근 순)
|
||||
- 제목순 (가나다순)
|
||||
4. **검색 기능**:
|
||||
- 제목, 참석자, 키워드로 통합 검색
|
||||
- 제목, 참여자, 키워드로 통합 검색
|
||||
- 실시간 검색 결과 업데이트
|
||||
5. **페이지네이션**:
|
||||
- 초기 10개 회의록 표시
|
||||
@ -1527,12 +1492,12 @@ graph TD
|
||||
|
||||
- **참여 유형 필터** (탭 형식, 선택):
|
||||
- 전체 (기본 선택)
|
||||
- 참석한 회의
|
||||
- 참여한 회의
|
||||
- 생성한 회의
|
||||
|
||||
- **검색 영역**
|
||||
- 검색 입력 필드
|
||||
- Placeholder: "회의 제목, 참석자, 키워드 검색"
|
||||
- Placeholder: "회의 제목, 참여자, 키워드 검색"
|
||||
- 실시간 검색 (입력 시 즉시 필터링)
|
||||
|
||||
- **통계 정보** (카드, 선택)
|
||||
@ -1548,7 +1513,7 @@ graph TD
|
||||
- 회의 제목 (H5, 볼드)
|
||||
- **생성자 표시**: 현재 사용자가 회의 생성자인 경우 👑 아이콘 표시 (16px, title="생성자")
|
||||
- 메타정보 (Caption, 회색):
|
||||
- 회의 일시 (날짜 + 시간) · 참석자 수
|
||||
- 회의 일시 (날짜 + 시간) · 참여자 수
|
||||
- 검증완료율 (작성중 상태일 때만): "✓ {completionRate}% 검증완료" 배지
|
||||
- 최종 수정 시간 (Caption, 회색):
|
||||
- 상대 시간 표시 ("1시간 전", "어제", "3일 전")
|
||||
@ -1595,7 +1560,7 @@ graph TD
|
||||
- 텍스트 입력 → 실시간 검색 (debounce 300ms)
|
||||
- 검색 범위:
|
||||
- 회의 제목 (부분 일치)
|
||||
- 참석자 이름 (부분 일치)
|
||||
- 참여자 이름 (부분 일치)
|
||||
- 키워드 (태그, 내용에서 추출된 키워드)
|
||||
- 검색어 지우기: X 버튼 (검색어 입력 시 표시)
|
||||
|
||||
@ -1628,7 +1593,7 @@ graph TD
|
||||
- 회의 ID
|
||||
- 제목
|
||||
- 회의 일시
|
||||
- 참석자 목록 (또는 참석자 수)
|
||||
- 참여자 목록 (또는 참여자 수)
|
||||
- 상태 (`draft` | `confirmed`)
|
||||
- 생성자 ID
|
||||
- 생성일시 (`createdAt`)
|
||||
@ -1675,11 +1640,11 @@ graph TD
|
||||
|
||||
### 네비게이션
|
||||
|
||||
#### Mobile 하단 네비게이션 (320px~768px)
|
||||
#### Mobile 하단 네비게이션 (320px~768px) - **v1.5.0 변경**
|
||||
- **위치**: Fixed, 하단 (height: 64px)
|
||||
- **배경**: 흰색, 상단 테두리 (1px solid #E5E7EB)
|
||||
- **그림자**: 0 -2px 8px rgba(0, 0, 0, 0.08)
|
||||
- **구성**: 3개 항목 (균등 분할)
|
||||
- **구성**: 2개 항목 (균등 분할)
|
||||
- **홈** (대시보드)
|
||||
- 아이콘: 🏠 (24px)
|
||||
- 텍스트: "홈" (12px)
|
||||
@ -1688,13 +1653,13 @@ graph TD
|
||||
- **회의록** (회의록 목록)
|
||||
- 아이콘: 📋 (24px)
|
||||
- 텍스트: "회의록" (12px)
|
||||
- **Todo** (Todo 관리)
|
||||
- 아이콘: ✅ (24px)
|
||||
- 텍스트: "Todo" (12px)
|
||||
- **사용 화면**: 02-대시보드, 09-Todo관리, 12-회의록목록조회
|
||||
- ~~**Todo** (Todo 관리)~~ (MVP v2.4.0에서 제거됨)
|
||||
- ~~아이콘: ✅ (24px)~~
|
||||
- ~~텍스트: "Todo" (12px)~~
|
||||
- **사용 화면**: 02-대시보드, 12-회의록목록조회
|
||||
- **참고**: 프로필 메뉴는 프로토타입에서 제거됨 (Desktop 사이드바의 사용자 정보 영역으로 통합)
|
||||
|
||||
#### Desktop 좌측 사이드바 (768px+)
|
||||
#### Desktop 좌측 사이드바 (768px+) - **v1.5.0 변경**
|
||||
- **위치**: Fixed, 좌측 (width: 240px)
|
||||
- **배경**: 흰색, 우측 테두리 (1px solid #E5E7EB)
|
||||
- **구성**:
|
||||
@ -1704,11 +1669,11 @@ graph TD
|
||||
- **메인 메뉴**:
|
||||
- 대시보드
|
||||
- 내 회의록
|
||||
- Todo
|
||||
- ~~Todo~~ (MVP v2.4.0에서 제거됨)
|
||||
- **하단 영역**:
|
||||
- 사용자 정보 (아바타 + 이름)
|
||||
- 로그아웃 버튼 (btn-ghost btn-sm)
|
||||
- **사용 화면**: 02-대시보드, 09-Todo관리, 12-회의록목록조회
|
||||
- **사용 화면**: 02-대시보드, 12-회의록목록조회
|
||||
|
||||
#### 상단 헤더 (공통)
|
||||
- **위치**: Sticky, 상단
|
||||
@ -1956,16 +1921,18 @@ graph TD
|
||||
|------|------|--------|----------|
|
||||
| 1.0 | 2025-10-21 | 이미준 | 최초 작성 - 11개 화면 설계 완료 |
|
||||
| 1.1.x | 2025-10-21 | 이미준 | **주요 변경**: AI 요약 및 참고자료 기능, 회의록 상세 화면 개선, 대시보드 UI 개선<br>- 1.1.0: AI 요약/참고자료 기능 추가 (05, 10, 11 화면), UFR-AI-040 관련 회의록 자동 연결<br>- 1.1.1: 회의록 상세 탭 구조 개선 (회의록/대시보드), 참고자료 관련도 점수 표시<br>- 1.1.2: 대시보드 예정 회의 카드/Todo 정렬 개선, 12-회의록목록조회 신규 추가 (필터/정렬/검색) |
|
||||
| 1.2.x | 2025-10-21 | 이미준, 최유진 | **주요 변경**: 대시보드 역할 기반 접근 제어, 회의진행 화면 개선, 스타일 가이드 신규 작성<br>- 1.2.0: 진행중 회의 표시 기능 (배지, 참여하기 버튼, 에러 처리)<br>- 1.2.1: 예정 회의 생성자/참석자 권한 차별화 (수정 버튼, 참여 시간 제한, 타이머)<br>- 1.2.2: 참고자료 새 탭 열기, 참석자 추가 초대, 스타일 가이드 신규 작성 (민트 그린 컬러 시스템)<br>- 1.2.3: 설정 메뉴 제거, Todo 클릭 시 회의록 상세로 이동 (URL 파라미터 전달) |
|
||||
| 1.3.x | 2025-10-21 | 이미준, 도그냥 | **주요 변경**: 반응형 네비게이션 구조, 회의진행 화면 전면 개편, 공통 UI 컴포넌트 표준화<br>- 1.3.0: 반응형 네비게이션 (Mobile 하단 3개, Desktop 사이드바), 05-회의진행 2열 구조 재설계, 10-회의록상세조회 타임라인 탭 제거<br>- 1.3.1: AI 제안 탭 3가지 유형 상세화 (논의사항/결정사항/액션아이템), 디자인 통일성 개선<br>- 1.3.2: 참석자 추가 폼 + 이메일 유효성 검증, 버튼/검색창 스타일 통일<br>- 1.3.3: 공통 UI 컴포넌트/에러 메시지 섹션 신규 작성, 중복 내용 참조 링크 교체 (파일 크기 8~10% 감소) |
|
||||
| 1.4.x | 2025-10-22~25 | 이미준, 강지수, 도그냥 | **주요 변경**: Todo 관리 기능 대폭 강화, 화면 번호 재정렬, 회의록 공유 기능 제거, 유저스토리 v2.3.0 반영<br>- 1.4.0~1.4.5: 네비게이션 사양 통일, 대시보드 모바일 최적화, 공유 기능 제거, 화면 번호 통일, 로그아웃 기능 추가<br>- 1.4.6~1.4.10: 검증완료 섹션 잠금 정책, Todo 관리 확장 (통계/필터/편집), 회의록 상세 탭 순서 변경, Todo 카드 디자인 전면 개선, 공통 스타일 관리<br>- 1.4.11~1.4.13: 회의진행 액션아이템 탭 개선, Todo 카드 HTML/CSS 완전 통일 (3개 화면), D-day 배지 정책 (회의 중 숨김)<br>- 1.4.14~1.4.16: 12-회의록목록조회 데이터 아키텍처 문서화, 06-검증완료 화면 삭제, 사용자 역할 용어 통일 (생성자/참석자)<br>- 1.4.17~1.4.20: STT 화자 식별 불가 반영, 05-회의진행 프로토타입 기준 전면 수정, 유저스토리 v2.3.0 반영 (충돌 방지 정책 강화) |
|
||||
| 1.5.1 | 2025-10-27 | 강지수 | MVP 스코프 축소 v2.4.0 반영 (4개 화면 수정)<br>- **02-대시보드**: Todo 위젯 및 통계 제거 (UFR-USER-020 반영)<br> - Todo 위젯 전체 제거 (나의 Todo 섹션 삭제)<br> - 통계 카드: "나의 Todo" 제거, "작성중 회의록" 유지 (2개 항목)<br> - 네비게이션: 하단 네비게이션 및 사이드바에서 Todo 관리 메뉴 제거<br> - Desktop 통계 그리드: 2개 항목만 표시<br>- **05-회의진행**: "AI 제안" 탭 → "AI 기반 메모" 탭 기능 변경<br> - 메모 입력창 + 저장 버튼 추가<br> - AI가 감지한 주요 내용 리스트 표시 (시간 + 내용)<br> - 각 참석자별 개별 저장, 다른 참석자 메모 볼 수 없음<br> - 메모는 회의 종료 전까지만 표시/편집 가능<br> - 에러 처리: AI 주요 내용 감지 실패, 메모 저장 실패 추가<br>- **10-회의록상세조회**: Todo 단순 조회 기능으로 변경<br> - Todo는 제목 + 담당자 + 마감일만 표시<br> - D-day 라벨, 우선순위 배지, 진행률 바, 상태별 필터 제거<br> - Todo 관리 화면 연동 링크 제거 (화면 자체가 제거됨)<br> - "수정" 버튼을 헤더로 이동<br>- **11-회의록수정**: 실시간 협업 기능 제거, 안건 기반 충돌 방지 강화<br> - "편집 중" 표시 제거 (실시간 협업 기능 제거)<br> - Todo 편집/추가/삭제 기능 전체 제거 (단순 조회만 가능)<br> - AI 한줄 요약 재생성 불가 (회의 종료 시 1회만 생성)<br> - 검증률 표시 및 최종 확정 버튼 제거<br> - 저장 로직 추가: 검증완료 안건 저장 스킵, 저장 결과 알림<br> - 안건별 검증 완료 체크박스로 충돌 방지 (Last Write Wins 적용)<br> - 에러 처리: 충돌 경고 모달 제거 (LWW로 인해) |
|
||||
| 1.5.2 | 2025-10-27 | 강지수 | AI 요약 기능 통합 및 단순화 (유저스토리 v2.4.0 반영)<br>- **11-회의록수정**: AI 요약 기능 통합<br> - 명칭 변경: "AI 상세 요약" → "AI 요약"<br> - AI 요약 영역: AI 한줄 요약만 표시 (30자 이내, 읽기 전용)<br> - 텍스트 편집 영역: 안건 내용 자유 작성 (논의 주제, 발언자별 의견, 결정 사항 등)<br> - "AI 재생성" 버튼: 텍스트 편집 영역 내용 기반으로 AI 요약의 한줄 요약 재생성 (2-5초 처리)<br> - 재생성된 한줄 요약은 회의록 상세조회 화면의 대시보드 및 회의록 탭에 즉시 반영<br> - AI 상세 요약 및 한줄 요약 분리 표시 제거<br>- **프로토타입 UI 개선**:<br> - AI 재생성 버튼 스타일 통일: btn-secondary → btn-primary (다른 화면과 일관성)<br> - 안건별 검증완료 UI 단순화: 참석자는 체크박스만, 회의 생성자는 검증완료 시 잠금해제 버튼 표시<br> - .creator-only CSS 클래스 추가: data-is-creator 속성 기반 표시 제어<br>- **관련 유저스토리**: UFR-AI-036 (AI 한줄요약 확인 및 재생성), UFR-MEET-055 (안건별 검증), UFR-COLLAB-030 (충돌 방지) |
|
||||
| 1.5.3 | 2025-10-27 | 강지수 | Todo 추가/편집 권한 정책 명확화 (유저스토리 v2.4.1 반영)<br>- **10-회의록상세조회**: Todo 추가/편집 권한 정책 추가 (대시보드 탭)<br> - "추가" 버튼: 모든 회의 참석자에게 노출 (Todo 리스트 우측 상단)<br> - "편집(✏️)" 버튼: 회의 생성자에게만 노출 (각 Todo 항목 우측)<br> - Todo 추가 모달: 제목, 담당자, 마감일 입력 (모든 참석자)<br> - Todo 편집 모달: 제목, 담당자, 마감일 수정 (회의 생성자만)<br> - 담당자 필드: 추가 시 또는 생성자의 편집 시만 표시<br>- **프로토타입 UI 개선**: 10-회의록상세조회.html<br> - Todo 추가/편집 모달 바텀시트 스타일 통일 (모바일: 하단 슬라이드 업, 데스크톱: 중앙 모달)<br> - .creator-only 클래스 적용하여 편집 버튼 권한별 표시/숨김 처리<br> - JavaScript initPage() 함수에서 회의 생성자 여부 확인 후 creator-only 요소 제어<br> - Todo 추가 성공: "담당자에게 알림이 전송되었습니다" → "캘린더가 업데이트되었습니다" 순차 토스트<br> - Todo 편집 성공: 담당자 변경 시 알림, 마감일 변경 시 캘린더 업데이트 토스트<br>- **관련 유저스토리**: UFR-MEET-047 (회의록상세조회), Todo 권한 정책 신규 추가 |
|
||||
| 1.5.4 | 2025-10-28 | 도그냥 | 대시보드 최근 회의 리스트 디자인 간소화 (UFR-USER-020 반영)<br>- **02-대시보드**: 최근 회의 정렬 기준 명확화 및 디자인 간소화<br> - **정렬 기준**:<br> - 1순위: 회의록 미생성 회의 (진행중 + 예정) 우선 표시<br> - 2순위: 미생성이 3개 미만이면 최근 종료된 회의(회의록 있음)로 나머지 채움<br> - 각 그룹 내 정렬: 빠른 일시 순 (시작 시간 기준)<br> - 최대 표시: 3개<br> - **회의 카드 (클릭 가능 블록)**:<br> - 상태 라벨 (배지): "진행중", "예정", "작성중", "확정완료"<br> - 회의 제목 + 생성자 아이콘(👑)<br> - 회의 일시, 참석자 수, 장소<br> - 상태 버튼 (표시용): "참여하기", "수정하기", "보기"<br> - **디자인 간소화**: D-day 표시, 깜박임 애니메이션, 세부 색상 지정 등 제거<br>- **유저스토리**: UFR-USER-020 (대시보드 조회) 동일하게 수정 |
|
||||
| 1.2.x | 2025-10-21 | 이미준, 최유진 | **주요 변경**: 대시보드 역할 기반 접근 제어, 회의진행 화면 개선, 스타일 가이드 신규 작성<br>- 1.2.0: 진행중 회의 표시 기능 (배지, 참여하기 버튼, 에러 처리)<br>- 1.2.1: 예정 회의 생성자/참여자 권한 차별화 (수정 버튼, 참여 시간 제한, 타이머)<br>- 1.2.2: 참고자료 새 탭 열기, 참여자 추가 초대, 스타일 가이드 신규 작성 (민트 그린 컬러 시스템)<br>- 1.2.3: 설정 메뉴 제거, Todo 클릭 시 회의록 상세로 이동 (URL 파라미터 전달) |
|
||||
| 1.3.x | 2025-10-21 | 이미준, 도그냥 | **주요 변경**: 반응형 네비게이션 구조, 회의진행 화면 전면 개편, 공통 UI 컴포넌트 표준화<br>- 1.3.0: 반응형 네비게이션 (Mobile 하단 3개, Desktop 사이드바), 05-회의진행 2열 구조 재설계, 10-회의록상세조회 타임라인 탭 제거<br>- 1.3.1: AI 제안 탭 3가지 유형 상세화 (논의사항/결정사항/액션아이템), 디자인 통일성 개선<br>- 1.3.2: 참여자 추가 폼 + 이메일 유효성 검증, 버튼/검색창 스타일 통일<br>- 1.3.3: 공통 UI 컴포넌트/에러 메시지 섹션 신규 작성, 중복 내용 참조 링크 교체 (파일 크기 8~10% 감소) |
|
||||
| 1.4.x | 2025-10-22~25 | 이미준, 강지수, 도그냥 | **주요 변경**: Todo 관리 기능 대폭 강화, 화면 번호 재정렬, 회의록 공유 기능 제거, 유저스토리 v2.3.0 반영<br>- 1.4.0~1.4.5: 네비게이션 사양 통일, 대시보드 모바일 최적화, 공유 기능 제거, 화면 번호 통일, 로그아웃 기능 추가<br>- 1.4.6~1.4.10: 검증완료 섹션 잠금 정책, Todo 관리 확장 (통계/필터/편집), 회의록 상세 탭 순서 변경, Todo 카드 디자인 전면 개선, 공통 스타일 관리<br>- 1.4.11~1.4.13: 회의진행 액션아이템 탭 개선, Todo 카드 HTML/CSS 완전 통일 (3개 화면), D-day 배지 정책 (회의 중 숨김)<br>- 1.4.14~1.4.16: 12-회의록목록조회 데이터 아키텍처 문서화, 06-검증완료 화면 삭제, 사용자 역할 용어 통일 (생성자/참여자)<br>- 1.4.17~1.4.20: STT 화자 식별 불가 반영, 05-회의진행 프로토타입 기준 전면 수정, 유저스토리 v2.3.0 반영 (충돌 방지 정책 강화) |
|
||||
| 1.5.1 | 2025-10-27 | 강지수 | MVP 스코프 축소 v2.4.0 반영 (4개 화면 수정)<br>- **02-대시보드**: Todo 위젯 및 통계 제거 (UFR-USER-020 반영)<br> - Todo 위젯 전체 제거 (나의 Todo 섹션 삭제)<br> - 통계 카드: "나의 Todo" 제거, "작성중 회의록" 유지 (2개 항목)<br> - 네비게이션: 하단 네비게이션 및 사이드바에서 Todo 관리 메뉴 제거<br> - Desktop 통계 그리드: 2개 항목만 표시<br>- **05-회의진행**: "AI 제안" 탭 → "AI 기반 메모" 탭 기능 변경<br> - 메모 입력창 + 저장 버튼 추가<br> - AI가 감지한 주요 내용 리스트 표시 (시간 + 내용)<br> - 각 참여자별 개별 저장, 다른 참여자 메모 볼 수 없음<br> - 메모는 회의 종료 전까지만 표시/편집 가능<br> - 에러 처리: AI 주요 내용 감지 실패, 메모 저장 실패 추가<br>- **10-회의록상세조회**: Todo 단순 조회 기능으로 변경<br> - Todo는 제목 + 담당자 + 마감일만 표시<br> - D-day 라벨, 우선순위 배지, 진행률 바, 상태별 필터 제거<br> - Todo 관리 화면 연동 링크 제거 (화면 자체가 제거됨)<br> - "수정" 버튼을 헤더로 이동<br>- **11-회의록수정**: 실시간 협업 기능 제거, 안건 기반 충돌 방지 강화<br> - "편집 중" 표시 제거 (실시간 협업 기능 제거)<br> - Todo 편집/추가/삭제 기능 전체 제거 (단순 조회만 가능)<br> - AI 한줄 요약 재생성 불가 (회의 종료 시 1회만 생성)<br> - 검증률 표시 및 최종 확정 버튼 제거<br> - 저장 로직 추가: 검증완료 안건 저장 스킵, 저장 결과 알림<br> - 안건별 검증 완료 체크박스로 충돌 방지 (Last Write Wins 적용)<br> - 에러 처리: 충돌 경고 모달 제거 (LWW로 인해) |
|
||||
| 1.5.2 | 2025-10-27 | 강지수 | AI 요약 기능 통합 및 단순화 (유저스토리 v2.4.0 반영)<br>- **11-회의록수정**: AI 요약 기능 통합<br> - 명칭 변경: "AI 상세 요약" → "AI 요약"<br> - AI 요약 영역: AI 한줄 요약만 표시 (30자 이내, 읽기 전용)<br> - 텍스트 편집 영역: 안건 내용 자유 작성 (논의 주제, 발언자별 의견, 결정 사항 등)<br> - "AI 재생성" 버튼: 텍스트 편집 영역 내용 기반으로 AI 요약의 한줄 요약 재생성 (2-5초 처리)<br> - 재생성된 한줄 요약은 회의록 상세조회 화면의 대시보드 및 회의록 탭에 즉시 반영<br> - AI 상세 요약 및 한줄 요약 분리 표시 제거<br>- **프로토타입 UI 개선**:<br> - AI 재생성 버튼 스타일 통일: btn-secondary → btn-primary (다른 화면과 일관성)<br> - 안건별 검증완료 UI 단순화: 참여자는 체크박스만, 회의 생성자는 검증완료 시 잠금해제 버튼 표시<br> - .creator-only CSS 클래스 추가: data-is-creator 속성 기반 표시 제어<br>- **관련 유저스토리**: UFR-AI-036 (AI 한줄요약 확인 및 재생성), UFR-MEET-055 (안건별 검증), UFR-COLLAB-030 (충돌 방지) |
|
||||
| 1.5.3 | 2025-10-27 | 강지수 | Todo 추가/편집 권한 정책 명확화 (유저스토리 v2.4.1 반영)<br>- **10-회의록상세조회**: Todo 추가/편집 권한 정책 추가 (대시보드 탭)<br> - "추가" 버튼: 모든 회의 참여자에게 노출 (Todo 리스트 우측 상단)<br> - "편집(✏️)" 버튼: 회의 생성자에게만 노출 (각 Todo 항목 우측)<br> - Todo 추가 모달: 제목, 담당자, 마감일 입력 (모든 참여자)<br> - Todo 편집 모달: 제목, 담당자, 마감일 수정 (회의 생성자만)<br> - 담당자 필드: 추가 시 또는 생성자의 편집 시만 표시<br>- **프로토타입 UI 개선**: 10-회의록상세조회.html<br> - Todo 추가/편집 모달 바텀시트 스타일 통일 (모바일: 하단 슬라이드 업, 데스크톱: 중앙 모달)<br> - .creator-only 클래스 적용하여 편집 버튼 권한별 표시/숨김 처리<br> - JavaScript initPage() 함수에서 회의 생성자 여부 확인 후 creator-only 요소 제어<br> - Todo 추가 성공: "담당자에게 알림이 전송되었습니다" → "캘린더가 업데이트되었습니다" 순차 토스트<br> - Todo 편집 성공: 담당자 변경 시 알림, 마감일 변경 시 캘린더 업데이트 토스트<br>- **관련 유저스토리**: UFR-MEET-047 (회의록상세조회), Todo 권한 정책 신규 추가 |
|
||||
| 1.5.4 | 2025-10-28 | 도그냥 | 대시보드 최근 회의 리스트 디자인 간소화 (UFR-USER-020 반영)<br>- **02-대시보드**: 최근 회의 정렬 기준 명확화 및 디자인 간소화<br> - **정렬 기준**:<br> - 1순위: 회의록 미생성 회의 (진행중 + 예정) 우선 표시<br> - 2순위: 미생성이 3개 미만이면 최근 종료된 회의(회의록 있음)로 나머지 채움<br> - 각 그룹 내 정렬: 빠른 일시 순 (시작 시간 기준)<br> - 최대 표시: 3개<br> - **회의 카드 (클릭 가능 블록)**:<br> - 상태 라벨 (배지): "진행중", "예정", "작성중", "확정완료"<br> - 회의 제목 + 생성자 아이콘(👑)<br> - 회의 일시, 참여자 수, 장소<br> - 상태 버튼 (표시용): "참여하기", "수정하기", "보기"<br> - **디자인 간소화**: D-day 표시, 깜박임 애니메이션, 세부 색상 지정 등 제거<br>- **유저스토리**: UFR-USER-020 (대시보드 조회) 동일하게 수정 |
|
||||
| 1.5.5 | 2025-10-28 | 도그냥 | 회의예약 화면 임시저장 기능 제거<br>- **03-회의예약**: 헤더 임시저장 버튼 제거<br> - 헤더에서 "임시저장" 버튼 완전 제거<br> - JavaScript 변수 선언 제거 (draftSaveBtn)<br> - 임시저장 이벤트 리스너 제거<br> - 사용자는 "예약 완료" 버튼으로만 회의 예약 가능<br>- **유저스토리**: UFR-MEET-010, UFR-MEET-011 임시저장 관련 출력 항목 제거<br>- **프로토타입**: design/uiux/prototype/03-회의예약.html 수정 |
|
||||
| 1.5.6 | 2025-10-28 | 도그냥, 지수 | 02-대시보드 예정 회의 권한 제어 개선 (MVP 일정 최우선)<br>- **예정 회의 카드 클릭 동작**: 생성자/참석자 역할별 차별화<br> - 생성자: 카드 클릭 → 회의예약 화면(수정 모드) 진입<br> - 참석자: 카드 클릭 → 시스템 알럿 표시 ("아직 회의 시간이 되지 않아 참여하실 수 없습니다")<br>- **버튼 표시 규칙 변경**: 예정 회의에서 "수정하기" 버튼 제거<br> - 진행중: "참여하기" 버튼 표시<br> - 예정: 버튼 없음 (카드 클릭으로 처리)<br> - 완료: "보기" 버튼 표시<br>- **프로토타입 수정**: design/uiux/prototype/02-대시보드.html<br> - 권한 체크 로직 추가 (isCreator 확인)<br> - 시스템 알럿 추가 (참석자 클릭 시)<br>- **유저스토리 반영**: UFR-USER-020, UFR-MEET-011 예외처리 추가<br>- **다음 버전 개선 계획**: 참석자용 회의 상세 조회 모달 기능 추가 예정 (회의 정보 제공 + 시작 시간 안내) |
|
||||
| 1.5.6 | 2025-10-28 | 도그냥, 지수 | 02-대시보드 예정 회의 권한 제어 개선 (MVP 일정 최우선)<br>- **예정 회의 카드 클릭 동작**: 생성자/참여자 역할별 차별화<br> - 생성자: 카드 클릭 → 회의예약 화면(수정 모드) 진입<br> - 참여자: 카드 클릭 → 시스템 알럿 표시 ("아직 회의 시간이 되지 않아 참여하실 수 없습니다")<br>- **버튼 표시 규칙 변경**: 예정 회의에서 "수정하기" 버튼 제거<br> - 진행중: "참여하기" 버튼 표시<br> - 예정: 버튼 없음 (카드 클릭으로 처리)<br> - 완료: "보기" 버튼 표시<br>- **프로토타입 수정**: design/uiux/prototype/02-대시보드.html<br> - 권한 체크 로직 추가 (isCreator 확인)<br> - 시스템 알럿 추가 (참여자 클릭 시)<br>- **유저스토리 반영**: UFR-USER-020, UFR-MEET-011 예외처리 추가<br>- **다음 버전 개선 계획**: 참여자용 회의 상세 조회 모달 기능 추가 예정 (회의 정보 제공 + 시작 시간 안내) |
|
||||
| 1.5.7 | 2025-10-28 | 도그냥, 지수 | UFR-TODO 잔여 참조 제거 (문서 정리)<br>- **유저스토리 매핑 섹션**: "Todo 서비스" 항목 제거 (96라인)<br>- **프로토타입 화면 목록**: "09 Todo관리" 화면 취소선 처리 및 제거 표시 추가 (124라인)<br>- **09-Todo관리 화면**: 제거 안내 추가 (개요 섹션에 경고 메시지 삽입)<br> - MVP v2.4.0에서 제거됨을 명확히 표시<br> - Todo 기능은 회의록 상세조회(10번) 화면에서만 제공됨을 안내<br>- **Todo 편집 섹션**: MVP v2.4.0 제거 표시 추가 (1163라인)<br>- **관련 유저스토리**: UFR-TODO-010, UFR-TODO-030, UFR-TODO-040 참조 제거 또는 삭제 표시<br>- **참고**: Todo 관리 독립 화면은 제거되었으나 회의록 내 Todo 기능(추가/편집)은 10번 화면에서 유지됨 |
|
||||
| 1.5.8 | 2025-10-28 | 지수, 도그냥 | MVP v2.4.5 반영: Todo 관리 및 검증완료 플로우 정리<br>- **사용자 플로우**: "검증완료" 단계 제거, "회의종료 → 회의록수정" 플로우로 변경<br> - 시나리오 1: 회의진행 → 회의종료 → 회의록수정 (선택) → 대시보드<br> - 시나리오 3 (Todo 관리) 제거 표시<br>- **플로우 다이어그램**: 검증완료 및 Todo 관련 플로우 제거, 회의종료 후 회의록수정 선택 플로우로 단순화<br>- **02-대시보드**: Todo 항목 클릭 시 회의록 상세 이동 로직 제거, Todo 데이터 요구사항 제거, Todo 관련 빈 상태 제거<br>- **07-회의종료**: Todo 서비스 연동 제거 (Meeting, AI 서비스만 연동)<br>- **10-회의록상세조회**: Todo 서비스 연동 제거<br>- **네비게이션**: 하단 네비게이션 및 Desktop 사이드바에서 Todo 관리 메뉴 제거 표시 (MVP v2.4.0)<br> - Mobile 하단 네비게이션: 3개 → 2개 항목 (홈, 회의록)<br> - Desktop 사이드바: Todo 메뉴 제거<br>- **변경 근거**: 유저스토리 v2.4.5 기준, Todo 관리 독립 화면 제거 및 회의 종료 후 회의록 수정 단계로 간소화 |
|
||||
| 1.5.9 | 2025-10-28 | 지수, 도그냥 | 용어 통일: "참석자/참석" → "참여자/참여" 변경<br>- **화면설계서**: 100개 인스턴스 변경 (uiux.md)<br> - "참석자" → "참여자" (88개)<br> - "참석" → "참여" (12개): "내가 참석한 회의", "본인이 참석한 회의록", "참석한 회의" 등<br>- **유저스토리**: 132개 인스턴스 변경 (userstory.md)<br> - "참석자" → "참여자" (125개)<br> - "참석" → "참여" (7개): "참석 중인 사용자", "참석 권한", "참석률" 등<br>- **프로토타입**: 34개 인스턴스 변경 (9개 HTML 파일)<br> - "참석자" → "참여자" (32개)<br> - "참석" → "참여" (2개)<br>- **총 266개 인스턴스 변경**: 사용자 역할 용어 완전 통일 (생성자/참여자 체계) |
|
||||
|
||||
[↑ 목차로 돌아가기](#목차)
|
||||
|
||||
|
||||
1477
design/userstory.md
1477
design/userstory.md
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user