尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
한 달에 한 번 식단표(사진/PDF)를 업로드하면 Google Gemini API가 날짜별 메뉴(점심/오전간식/오후간식)를 자동으로 인식해 Supabase에 저장합니다. 저장된 식단은 로그인 없이 공유 링크로 누구나 일간/주간/월간 캘린더로 조회할 수 있고, 홈 화면에 앱처럼 추가할 수 있는 PWA로 동작합니다. • 관리자 업로드 (/admin): PIN으로 보호. 식단표 이미지 또는 PDF와 연/월을 입력하면 Gemini가 즉시 인식해 확인 절차 없이 Supabase에 저장합니다. • 공개 조회 (/): 로그인 없이 접근 가능한 캘린더. 일간/주간/월간 뷰 전환. • PWA: 홈 화면에 아이콘 추가, 오프라인에서도 마지막으로 본 화면 셸 표시. • Next.js 16 (App Router, TypeScript, Tailwind CSS v4) • Supabase (Postgres + RLS) — 데이터 저장 • Google Gemini API (@google/genai) — 식단표 이미지/PDF 인식 • jose — 관리자 세션 쿠키 서명(JWT)查看完整 README ↗
한 달에 한 번 식단표(사진/PDF)를 업로드하면 Google Gemini API가 날짜별 메뉴(점심/오전간식/오후간식)를 자동으로 인식해 Supabase에 저장합니다. 저장된 식단은 로그인 없이 공유 링크로 누구나 일간/주간/월간 캘린더로 조회할 수 있고, 홈 화면에 앱처럼 추가할 수 있는 PWA로 동작합니다.
/admin): PIN으로 보호. 식단표 이미지 또는 PDF와 연/월을 입력하면 Gemini가 즉시 인식해 확인 절차 없이 Supabase에 저장합니다./): 로그인 없이 접근 가능한 캘린더. 일간/주간/월간 뷰 전환.@google/genai) — 식단표 이미지/PDF 인식jose — 관리자 세션 쿠키 서명(JWT)supabase/schema.sql 파일 내용을 그대로 실행합니다.
menus 테이블 생성, RLS 활성화, "누구나 조회 가능" 정책까지 한 번에 설정됩니다.service_role 키로 RLS를 우회해서 저장하기 때문에, anon 키로는 절대 데이터를 수정할 수 없습니다.Project URL → NEXT_PUBLIC_SUPABASE_URLanon public 키 → NEXT_PUBLIC_SUPABASE_ANON_KEYservice_role 키 → SUPABASE_SERVICE_ROLE_KEY (절대 클라이언트에 노출하지 마세요)Google AI Studio 에서 API 키를 발급받아 GEMINI_API_KEY로 설정합니다.
.env.example을 .env.local로 복사한 뒤 값을 채웁니다.
cp .env.example .env.local
| 변수 | 설명 |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase 프로젝트 URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anon(public) 키 — 공개 조회용 |
SUPABASE_SERVICE_ROLE_KEY | Supabase service role 키 — 서버에서만 사용, 절대 노출 금지 |
GEMINI_API_KEY | Gemini API 키 |
GEMINI_MODEL | (선택) 사용할 모델, 기본값 gemini-3.5-flash-lite |
ADMIN_PIN | /admin 업로드 페이지 접근용 PIN |
ADMIN_SESSION_SECRET | 관리자 세션 쿠키 서명용 무작위 문자열 (openssl rand -hex 32로 생성 권장) |
npm install
npm run dev
https://your-app.vercel.app)이 곧 조회용 공유 링크입니다./admin에서 PIN으로 로그인합니다./(홈)에서 누구나 로그인 없이 일간/주간/월간 뷰로 식단을 확인할 수 있습니다. 이 URL을 학부모들에게 공유하면 됩니다.supabase/schema.sql — DB 스키마 및 RLS 정책src/lib/gemini.ts — Gemini API로 식단표 인식하는 로직src/lib/auth.ts, src/proxy.ts — 관리자 PIN 인증 및 세션 보호src/app/api/admin/upload/route.ts — 업로드 → Gemini 인식 → Supabase 저장 APIsrc/components/calendar/ — 일간/주간/월간 캘린더 UIpublic/manifest.json, public/sw.js — PWA 설정