Textus
당신이 펜을 잡으면 AI가 잉크를 이어줍니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗녹음 파일이나 회의 메모를 올리면 회의록이 완성됩니다. 받아쓰기, 안건별 회의록, 담당자와 기한이 붙은 할 일, 구글 캘린더 등록까지 한 번에 처리하는 웹 앱입니다.
배포 주소: https://meetmate-plum.vercel.app (접속 코드 필요)
저장소: https://github.com/yimdahae-hub/meetmate
대학원 「생성형 AI와 바이브코딩」 과제로 AI Coding Agent(Claude Code)와 함께 만들었습니다. 개발 과정과 겪은 문제는 docs/DEVLOG.md에 날짜순으로 기록했습니다.
| 입력 | 처리 | 결과 |
|---|---|---|
| 녹음 파일(mp3·wav는 200MB까지, m4a·webm은 40분까지) | Gemini가 받아쓰기 + 화자 구분 | 회의 원문 |
| 앱에서 바로 녹음 (최대 40분, 시간이 되면 자동 종료) | 녹음 종료와 동시에 처리 | 회의 원문 |
| 회의 메모, 녹취록, 클로바노트 텍스트 | Gemini가 읽고 정리 | — |
| 위 셋 중 하나 | 회의록 작성 + 할 일 추출 | 안건별 회의록, 할 일(담당·기한·세부), 확인 필요 사항 |
| 할 일 | 날짜 계산 ("다음 주 수요일" → 2026-10-28) | 구글 캘린더 등록 화면, .ics 파일 |
회의 원문 탭에서 "녹음으로 넣기"와 "글로 넣기" 중 하나를 고르면 그 입력만 보입니다. 녹음이 기본이고, 카드 안에서 [바로 녹음하기]와 [녹음 파일 올리기] 중 하나를 씁니다. 녹음이 없으면 "글로 넣기"에서 메모·녹취록을 붙여 넣습니다. 녹음을 처리하면 받아쓴 글이 "글로 넣기"의 원문 칸에 들어가므로 따로 적을 필요가 없습니다.
회의 원문 탭에서 고릅니다. 간략은 참석자가 빠르게 확인하는 용도로, 안건별로 "논의한 내용 → 그래서 할 일"을 한 줄씩 씁니다. 상세(기본값)는 회의에 없던 사람이 읽는 용도로, 업무영역 → 세부 주제 아래에 배경·기존안, 나온 의견과 근거(누구 측 의견인지), 결론("로 진행" / " 검토" / "~ 보류" 구분), 그래서 할 일을 논의 순서대로 씁니다.
처음 열면 "기존 회의록 샘플을 하나 올려주세요"라고 묻습니다. .txt, .md, .docx 파일을 올리거나 붙여 넣으면, AI가 그 양식(제목 체계, 번호, 기호, 말투)을 따라 회의록을 씁니다. 샘플이 없으면 추천 양식(■ 주요 내용 / ■ 해야 할 일 / ■ 확인 필요)으로 시작합니다. 양식은 사이드바에서 언제든 바꿀 수 있습니다.
녹음에서 목소리가 다른 사람을 "화자1, 화자2"로 나눕니다. 대화 중에 이름이 불리면("민수 씨?") 그 이름으로 바꾸고, "제가 할게요"라고 말한 사람을 할 일 담당자로 연결합니다. 이름을 모르는 화자는 회의록 화면에서 직접 바꿀 수 있습니다.
[브라우저] [Vercel 서버 함수] [Google Gemini]
녹음 파일 ──── 직접 업로드 ──────────────────────────────────▶ Files API
(업로드 주소만 서버에서 발급)
메모/원문 ───▶ /api/minutes ───▶ API 키를 붙여 요청 ─────────▶ gemini-3.5-flash-lite
결과를 검사해서 돌려줌 ◀────── JSON (안건·할 일·화자·양식 본문)
회의록·할 일 화면 (브라우저에 저장)
→ 구글 캘린더 링크 / .ics / .md 다운로드
meetmate/
index.html 화면 구조 (3개 탭 + 양식 선택 창)
style.css 레이아웃, 모바일 반응형
app.mjs 화면 동작, 브라우저 저장, 녹음·업로드, 양식, 접속 코드
logic.mjs 날짜 계산, 화자 이름 바꾸기, 회의록 .md / .ics 생성, 규칙 기반 추출(예비)
api/_gemini.js Gemini 호출, 프롬프트, 응답 양식(스키마), 응답 검사
api/minutes.js POST /api/minutes — 텍스트 또는 업로드된 녹음 → 회의록 JSON
api/upload.js POST /api/upload — 녹음 업로드 주소 발급
dev-server.mjs 로컬 개발 서버 (정적 파일 + /api 실행)
tests.mjs 단위 테스트 (node tests.mjs)
icon.svg 앱 아이콘
docs/ 개발 기록, 보고서 초안, 스크린샷
.env.local 파일을 만들고 키 입력 (.env.example 참고)
GEMINI_API_KEY=발급받은키
npm run dev # http://localhost:3000
npm test # 단위 테스트
Other, 빌드 명령은 없습니다.GEMINI_API_KEY를 넣습니다. 공개 주소라면 ACCESS_CODE도 넣는 것을 권합니다. 앱에서 그 코드를 한 번 입력해야 AI 기능을 쓸 수 있어서, 모르는 사람이 내 무료 사용량을 쓰는 걸 막습니다.