尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Turn hundreds of comments into actionable insights with AI
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Smart Aspiration Monitoring and Opinion Summarization Assistant "Mengubah ratusan aspirasi menjadi insight yang mudah dipahami" Platform berbasis AI yang mengubah feedback dan aspirasi terbuka (survey, evaluasi kegiatan, form kepuasan) menjadi laporan terstruktur siap baca: sentimen, topik, kata kunci, dan insight — dari CSV mentah ke laporan siap-print. • Node.js 22 LTS • pnpm 9+ (corepack enable pnpm) • Akses ke sebuah project Supabase (atau Docker untuk Supabase lokal) • OpenAI API key查看完整 README ↗
Smart Aspiration Monitoring and Opinion Summarization Assistant
"Mengubah ratusan aspirasi menjadi insight yang mudah dipahami"
Platform berbasis AI yang mengubah feedback dan aspirasi terbuka (survey, evaluasi kegiatan, form kepuasan) menjadi laporan terstruktur siap baca: sentimen, topik, kata kunci, dan insight — dari CSV mentah ke laporan siap-print.
corepack enable pnpm)pnpm install
cp .env.example .env.local # isi nilainya
pnpm db:migrate
pnpm db:seed
pnpm dev # http://localhost:3000
| Perintah | Kegunaan |
|---|---|
pnpm dev | Dev server |
pnpm check | typecheck + lint + format:check |
pnpm test | Vitest watch |
pnpm test:run | Vitest sekali jalan |
pnpm test:coverage | Tes + gerbang coverage 80% (dijalankan CI) |
pnpm test:e2e | Playwright |
pnpm db:types | Regenerate types/database.ts dari schema |
pnpm build | Production build |
app/ Routing + thin route handlers (tanpa business logic)
modules/ Business logic: auth, ingestion, analysis, reporting, shared
components/ UI (shadcn primitives + chart/form/layout)
lib/ Supabase client, env (Zod), utils
types/ Tipe database (generated), domain, kontrak API
supabase/ Migrations, RLS policies, seed
tests/ unit / integration / e2e
docs/ ADR + catatan riset
Aturan dependensi satu arah: app/ → modules/ → lib/. Akses lintas modul
hanya lewat index.ts masing-masing modul; ESLint memaksakan ini lewat
no-restricted-imports.
Upload CSV → POST /api/datasets → ingestion.uploadDataset()
→ POST /api/analysis → analysis.createJob() → { jobId } (202)
→ worker: POST /api/webhooks/inngest → analysis.runJob()
parse → batch 30 → adapter LLM → analysis_results
→ client polling GET /api/analysis/[id]/status
→ GET /api/reports/[id] → reporting.buildReport()
.vN
baru di modules/analysis/prompts/ + entry di registry. Setiap
analysis_result menyimpan prompt_version dan model_id demi
reproducibility riset.openai hanya boleh diimpor di
modules/analysis/adapters/. Ada adapter leksikon lokal untuk tes offline dan
sebagai baseline non-LLM.organization_id.
Service-role key hanya dipakai di file bertanda import 'server-only'. Log
tidak pernah memuat teks responden.lib/env.ts; konfigurasi yang kurang membuat app
gagal saat startup, bukan saat request pertama.| Dokumen | Isi |
|---|---|
| docs/OVERVIEW.md | Source of truth — arsitektur, tech stack, data model, konvensi, DoD |
| CLAUDE.md | Penunjuk ringkas untuk sesi Claude Code |
| docs/adr/ | Architecture Decision Records |
| docs/research/ | Catatan eksperimen prompt & model untuk paper |
| # | Judul | Status |
|---|---|---|
| 0001 | Next.js 15 + Supabase stack | Accepted |
| 0002 | Modular monolith | Accepted |
| 0003 | Async analysis via queued jobs | Accepted |
| 0004 | PDF rendering approach | Proposed |
| 0005 | OpenAI sebagai LLM provider | Accepted |