mirror of
https://github.com/nad4-su/meeting-minutes.git
synced 2026-08-12 22:33:25 +09:00
Phase 1 foundation: Prisma + /api/meetings CRUD (#1)
* feat(phase-1): Prisma 연동 + 회의록 CRUD API Phase 1 foundation (ROADMAP #1~#3): - src/lib/db.ts: Prisma 클라이언트 싱글톤 (dev hot-reload 대응) - Meeting 스키마 확장: attendees/tags (String[]), template/depth/ summaryMode/customPrompt (향후 참조 복원용), createdAt 인덱스 - 첫 마이그레이션 `20260421104750_init` 생성 - /api/meetings (GET 목록 + POST 생성) - q 파라미터로 제목/transcript/markdown 부분 검색 - limit (max 100), offset 페이지네이션 - attendees/tags 배열 타입 정규화 - /api/meetings/[id] (GET/PUT/DELETE) - PUT은 markdownMinutes/title/attendees/tags만 편집 허용 - 존재하지 않는 id에 대해 404 - docker-compose.yml: tools 프로필에 migrate 서비스 추가 (app 컨테이너 bloat 없이 마이그레이션 실행) - Prisma mock 기반 API 테스트 14개 신규 (총 71 tests) * docs: migrate 실행 단계 추가, ROADMAP의 #1/#2 완료 체크 * docs: PR 본문 드래프트 추가
This commit is contained in:
@@ -57,7 +57,7 @@
|
||||
| STT (실시간) | Web Speech API — Chrome 내장, 무료 |
|
||||
| AI 요약 | Gemini 2.5 Flash Lite — 무료 등급 15 RPM / 1000 RPD |
|
||||
| DB | PostgreSQL 16 + Prisma 7 (스키마 준비, Phase 1에서 활용 예정) |
|
||||
| 테스트 | Vitest (57 tests, jsdom) |
|
||||
| 테스트 | Vitest (71 tests, jsdom) |
|
||||
| 배포 | Docker Compose (app + db + test profile) |
|
||||
|
||||
---
|
||||
@@ -75,7 +75,15 @@ cp .env.example .env
|
||||
`.env`에서 **`GEMINI_API_KEY`** 설정 ([Google AI Studio](https://aistudio.google.com/apikey)에서 무료 발급).
|
||||
> 키가 없어도 "단순 변환" 모드는 정상 동작.
|
||||
|
||||
### 2. 기동
|
||||
### 2. DB 마이그레이션 (최초 1회 + 스키마 변경 시)
|
||||
|
||||
```bash
|
||||
docker compose --profile tools run --rm migrate
|
||||
```
|
||||
|
||||
이 명령은 `db` 컨테이너를 자동 기동하고 `prisma migrate deploy`로 테이블을 생성합니다.
|
||||
|
||||
### 3. 기동
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
@@ -148,7 +156,7 @@ src/
|
||||
│ ├── upload/AudioUploader.tsx
|
||||
│ ├── recorder/LiveRecorder.tsx # 좌우 분할 뷰
|
||||
│ └── minutes/MinutesViewer.tsx
|
||||
└── __tests__/ # 57 tests
|
||||
└── __tests__/ # 71 tests
|
||||
|
||||
docs/
|
||||
├── ROADMAP.md # 개발 로드맵 (Phase 0~4)
|
||||
|
||||
Reference in New Issue
Block a user