尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Mise AI - Your Personal AI Chef
Mise AI is a modern SaaS application that solves the eternal "What's for dinner?" problem. By leveraging Artificial Intelligence, it generates custom recipes based on user cravings, organizes them into a weekly meal plan, and automatically generates consolidated grocery lists.
This project is built as a highly scalable, production-ready Next.js application, featuring robust authentication, database management, and AI integration.檢視完整 README ↗Mise AI is a modern SaaS application that solves the eternal "What's for dinner?" problem. By leveraging Artificial Intelligence, it generates custom recipes based on user cravings, organizes them into a weekly meal plan, and automatically generates consolidated grocery lists.
This project is built as a highly scalable, production-ready Next.js application, featuring robust authentication, database management, and AI integration.
The application uses the Next.js 16 App Router.
RecipeGenerator (form state, animations), WeeklyMeals (drag-and-drop), and GroceryList.Zustand is used for global client state that needs to persist across navigation but doesn't necessarily need an immediate database write (like the current generated recipe being viewed or transient UI states).The "backend" is implemented using Next.js API Routes (src/app/api/) which act as a secure proxy between the client and external services.
/api/generate-recipe: Handles the prompt engineering and communication with OpenAI. This keeps API keys secure on the server./api/refine-recipe: Refines an existing recipe based on user instructions./api/rate-limit: Checks and updates user rate limits before allowing expensive AI operations.The project uses Supabase for PostgreSQL and Authentication.
Schema Overview:
recipes: Stores generated recipe JSON data.collections: Links users to saved recipes.weekly_plan: Maps recipes to specific days/slots for a user.user_usage_counters: Tracks usage for AI generation and refinement.plan_entitlements: Defines limits per subscription plan.Security (RLS):
Row Level Security (RLS) policies are strictly enforced. Users can only SELECT, INSERT, UPDATE, or DELETE rows where user_id matches their authenticated UUID.
Usage Tracking Implementation: To prevent abuse and manage costs, PostgreSQL RPC functions are used:
check_and_increment_usage: Atomically checks weekly, per-minute, and per-hour limits before incrementing.get_usage_status: Returns current usage counts and remaining limits.record_usage_tokens: Records token consumption after AI requests.git clone <repository-url>
cd recipe-gen-app
npm install
Create a .env.local file in the root directory:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key_for_admin_tasks
OPEN_ROUTER_API_KEY=your_openrouter_api_key
# Optional: Tier-based model configuration
OPENROUTER_FREE_TIER_MODEL=google/gemini-2.5-flash-lite
OPENROUTER_PLUS_TIER_MODEL=google/gemini-2.5-flash
OPENROUTER_PRO_TIER_MODEL=google/gemini-3-flash-preview
OPENROUTER_FALLBACK_MODEL=google/gemini-2.5-flash-lite
Note: SUPABASE_SERVICE_ROLE_KEY is required for the rate-limit check API route which needs to bypass RLS to reliably increment counters via RPC.
Note: The app also supports OPENROUTER_API_KEY (without the underscore) for compatibility with the OpenRouter SDK docs.
Note: Different subscription tiers use different AI models. Free users get a lighter model, while Plus and Pro users get faster, higher-quality models.
The schema is managed with the Supabase CLI. Migrations live in supabase/migrations/, and supabase/seed.sql adds fake test data for local use. See docs/supabase-migrations.md for setup (npx supabase start, then npx supabase db reset).
The SQL files in src/lib/supabase/ are historical and may be out of date. Do not run them. The baseline migration replaces them.
npm run dev
Open http://localhost:3000 with your browser.
This project is proprietary software. All rights reserved.