Personalised meal planning app built for university students. Generates meal plans with a user-chosen start date and length (1–14 days, default 7) based on dietary preferences, cooking equipment, and goals — then produces a shopping list to match.
- Frontend: React + TypeScript, Vite, Tailwind CSS
- Mobile: Capacitor (iOS)
- Backend: Supabase (Auth, Database, Edge Functions)
- Payments: RevenueCat (StoreKit integration)
- Onboarding flow: preferences, cooking equipment, dietary goals
- Meal plan generation with user-chosen start date and plan length, and per-meal nutrition breakdown
- Meal swap functionality with nutritional comparison
- Shopping list with per-category grouping and checklist
- School selection and student community
- Mandatory paywall with monthly/yearly subscription plans
- Profile management with achievements and streak tracking
- Multi-language support (English, Simplified Chinese)
- Admin dashboard for recipe database management
src/
app/
components/ # React components (pages, modals, steps)
hooks/ # Custom hooks (useSubscription, useLanguage, etc.)
services/ # RevenueCat SDK integration
constants/ # Achievements, static data
utils/ # Recipe images, helpers
utils/ # Supabase client
supabase/
functions/ # Supabase Edge Functions (auth, meal plans, recipes)
ios/ # Capacitor iOS project
npm install
npm run devQuality gates:
npm run typecheck
npm test
npm run buildEnd-to-end smoke tests:
npm run test:e2eInstall the Playwright browser once on a new machine with npx playwright install chromium.
To build for production:
npm run buildThe iOS project lives in ios/ and is managed via Capacitor. After building:
npx cap sync ios
npx cap open iosThe app connects to a Supabase project for auth, database, and edge functions. Project credentials are configured in utils/supabase/info.tsx; deployment and secret placeholders are documented in .env.example.
RevenueCat is configured for subscription management — see src/app/services/revenuecat.ts for SDK setup.
See docs/DEPLOYMENT.md for the Supabase Edge Function deploy command, smoke checks, iOS build notes, and App Store launch blockers.