WallpaperMachine
The wallpapers you love. A new home on your Mac.
어린이집 월간 식단표를 날짜별로 확인하는 앱
Translation pending
LifestyleTypeScript · JavaScriptGitHub @GloridayzOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
한 달에 한 번 식단표(사진/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)Read the full 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 설정