﻿# PRD — 설문 결과 보고서 자동화

> **실습 방식**: 내 PC 안(로컬) · Claude 데스크톱 앱 **Code** 탭 · 다운로드 › **Test** 폴더 · 가상 데이터만 사용
> 이 문서를 Claude Code가 그대로 읽고 앱을 만듭니다. 고치고 싶은 곳은 직접 고쳐도 됩니다.

## 1. 한 줄 정의
교육 설문 결과를 불러오거나 직접 입력하면 **영역·문항·직급별로 자동 집계**하고, Claude Code가 쓴 **시사점**을 붙여 **결과보고서 한 장**(개요·결과 요약·시사점·개선 계획)으로 바로 완성하는 앱.

## 2. 누가 쓰나
| 역할 | 하는 일 |
|---|---|
| 교육 담당자(우리 팀 구성원) | 설문 결과 CSV 불러오기·종이 설문 입력, 결과 분석 확인, 시사점 요청, 보고서 인쇄 |
| 보고받는 사람(팀장·본부장) | 인쇄(PDF)된 결과보고서를 읽음 — 앱을 직접 쓰지는 않음 |

## 3. 오늘 만들 기능 (필수)
- [ ] **설문 입력**: 모아폼에서 내려받은 `data/responses.csv` 불러오기(미리보기 표) + 종이 설문 1건씩 직접 입력하는 칸
- [ ] **자동 집계**: 응답 수·응답률, 4개 영역(교육내용·강사·운영·현업적용) 평균, 8개 문항 평균, 직급 × 영역 평균표, 전체 만족도
- [ ] **결과 분석 화면**: 문항별 막대그래프, 직급별 응답자 도넛, 개선 의견 주제별 건수
- [ ] **결과보고서 화면**: 1. 교육 개요 → 2. 설문 결과 요약(게이지·영역 막대) → 3. 시사점 → 4. 개선 계획, 결재란 포함, [인쇄] 버튼으로 A4 PDF 저장
- [ ] **시사점 요청문 복사 + insight.md 보기**: 집계 결과와 주관식을 묶은 요청문을 복사 → Claude Code가 `insight.md` 작성 → 보고서 «3. 시사점» 칸에 표시

## 4. 화면 구성
1. **상단**: 앱 이름 · [① 설문 입력 / ② 결과 분석 / ③ 결과보고서] 탭 · 과정 선택(1~4기)
2. **설문 입력**: 파일 끌어다 놓기 칸 → 불러온 응답 표 / 오른쪽에 종이 설문 입력 칸(직급·부서·Q1~Q8·주관식)과 응답률 진행 막대
3. **결과 분석**: KPI 카드 4개(응답률·전체 만족도·가장 낮은 영역·추천 의향) → 문항별 막대 + 직급 도넛 → 직급×영역 표(4.4점↑ 초록, 4.0점 미만 빨강) · 개선 의견 주제 막대 · 주제×직급 히트맵
4. **결과보고서**: 왼쪽 A4 모양 보고서 / 오른쪽 «자동 생성 4단계» 체크와 기수별 만족도 추이 선그래프
5. 그래프에 **마우스를 올리면 수치가 말풍선으로** 보이고, 카드에 마우스를 올리면 그래프가 다시 채워지는 애니메이션

## 5. 데이터 — 파일과 항목 (모두 가상 데이터)
| 파일 | 항목 |
|---|---|
| `data/courses.csv` | 과정ID, 과정명, 교육일, 대상인원 (같은 과정 1~4기) |
| `data/questions.csv` | 문항번호, 영역, 문항, 유형(척도5/주관식) |
| `data/responses.csv` | 응답ID, 과정ID, 직급, 부서, 제출시각, Q1~Q8(1~5), 도움된점, 개선점 — 4기 46명 |
| `data/history.csv` | 과정ID, 응답수, 교육내용, 강사, 운영, 현업적용, 전체평균 — 1~4기 |

- 영역 평균 = 그 영역 2문항 점수의 평균. 전체 만족도 = 8문항 평균. 응답률 = 응답 수 ÷ 대상인원.
- 저장 위치: 브라우저 저장공간(localStorage) + CSV 파일. **외부 서버·데이터베이스를 쓰지 않습니다.**

## 6. AI 분석은 Claude Code가 합니다
앱 안에서 AI를 부르지 않습니다(사내 기준: 별도 API 키 없음). 대신:
1. 결과보고서 탭의 **[시사점 요청문 복사]** → Claude Code 입력창에 붙여넣기
2. Claude Code가 `data/responses.csv`·`history.csv` 를 읽어 **가장 낮은 영역과 원인 의견, 직급별 차이, 기수 대비 변화, 개선 계획**을 `insight.md` 로 저장
3. 앱이 `insight.md` 를 읽어 보고서 «3. 시사점»·«4. 개선 계획» 칸에 표시

## 7. 기술 원칙 (로컬 실행)
- 폴더 하나: `Test/survey-report/` 안에 `index.html`, `style.css`, `app.js`, `data/`
- 순수 HTML·CSS·JavaScript. 외부 인터넷 주소(CDN·글꼴)를 불러오지 않음 — 그래프는 직접 그리거나 라이브러리 파일을 폴더 안에 내려받아 사용
- 인쇄: 보고서 영역만 A4 한 장에 나오도록 인쇄용 스타일(@media print)
- 실행: `python -m http.server 8765` → 브라우저에서 `http://localhost:8765`
- 결과물은 폴더째 zip으로 묶어 가져감. 인터넷에 올리지(배포하지) 않음

## 8. 원래 요청에서 조정한 부분
| 원래 요청 | 오늘은 이렇게 | 이유 |
|---|---|---|
| 교육생이 설문을 작성하면 바로 반영 | 모아폼 결과 CSV 불러오기 + 종이 설문 직접 입력 | 외부 설문 서비스 연동·인터넷 공개는 사내 기준상 불가 |
| 앱이 분석·시사점까지 자동 작성 | 앱은 집계, 시사점은 Claude Code가 `insight.md` 로 작성 | 앱 안 AI 호출에는 별도 API 키가 필요 |
| 결과보고서 PPT 자동 생성 | A4 인쇄용 보고서 화면(PDF 저장) + PPT에 붙일 표 CSV | 4시간 실습 범위 — PPT 파일 생성은 다음 단계 |

## 9. 완료 기준 (테스트)
- [ ] `data/responses.csv` 를 불러오면 응답 수 **46명**, 응답률 **88.5%**(46/52), 전체 만족도 **4.25점**이 표시된다
- [ ] 영역 평균이 교육내용 **4.45** · 강사 **4.50** · 운영 **3.90** · 현업적용 **4.14** 로 나오고, 가장 낮은 문항은 «교육 시간·일정은 적절했다» **3.76점**이다
- [ ] 개선 의견 주제에서 «실습 시간 부족»이 **20건**으로 1위다(전체 39건)
- [ ] 종이 설문 1건을 입력하면 응답 수가 **47명**이 되고, 새로고침(F5)해도 남아 있다
- [ ] [시사점 요청문 복사] 후 Claude Code에 붙여넣으면 `insight.md` 가 생기고 보고서 «3. 시사점»에 보인다
- [ ] [인쇄]를 누르면 보고서가 A4 한 장으로 미리보기된다
- [ ] 폴더를 zip으로 묶어 다른 폴더에 풀어도 똑같이 실행된다

## 10. 다음 단계 (집에서 더 키울 것)
- 기수를 추가하면 지난 기수와 자동 비교표 만들기
- 보고서를 PPT 파일로 바로 저장
- 부서·직급별 맞춤 요약 보고서

## 11. 웹앱·서버 버전 (교육 후, 사내 기준 확인 뒤)

담당자 혼자 쓰는 데는 로컬판으로 충분합니다. 팀원 여러 명이 기수별 결과를 한곳에 쌓고 같은 주소에서 볼 때만 웹앱으로 옮깁니다. **실제 응답 원자료는 사내 IT 승인 전에는 넣지 않습니다.**

| 구분 | 로컬판 | 웹앱판 |
|---|---|---|
| 입력 | 담당자가 CSV 불러오기 + 종이 설문 입력 | 팀원 누구나 로그인해 기수별로 올리기 |
| 저장 | 브라우저 저장공간 + CSV | Supabase 표 3개(과정·기수 / 설문 응답 / 시사점) |
| 화면 주소 | localhost (내 PC) | Vercel 주소 (모두 같은 주소) |
| 권한 | 없음 | 교육 담당자는 올리기·보기, 팀장은 보기만 |

- 로그인: Supabase 이메일 로그인. 팀장 계정은 «보기 전용» 역할 표시
- 잠금 설정: 로그인한 사람만 보기, 응답 올리기·고치기는 교육 담당자만
- 집계 방법(영역 평균·전체 만족도·응답률), 결과보고서 모양, 인쇄용 A4는 로컬판과 같게 유지
- 설문 도구 자동 연동은 사내 IT 검토 후. 가상 데이터(data 폴더 CSV)로 먼저 시험

### 웹앱판 완료 기준
- [ ] 담당자 계정으로 4기 응답을 올리면 46명, 응답률 88.5%, 전체 만족도 4.25점이 나온다
- [ ] 팀장 계정으로 로그인하면 결과보고서는 보이지만 응답을 고칠 수 없다
- [ ] 다른 PC(또는 휴대폰)에서 같은 주소로 들어가도 운영 영역 3.90점이 가장 낮게 같게 보인다
- [ ] 로그인하지 않으면 응답과 보고서가 보이지 않는다
