尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Recipe-sharing web app inspired by Ratatouille. TypeScript + Next.js. Live at remy-recipes.com
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A modern recipe sharing platform where users can discover, create, and share amazing recipes with a vibrant community.
🚀 LIVE NOW - Try the live demo at remy-s.vercel.app
✅ v1.3.0 Production Release - Engineering maturity with CI/CD, Sentry, and E2E tests!檢視完整 README ↗A modern recipe sharing platform where users can discover, create, and share amazing recipes with a vibrant community.
🚀 LIVE NOW - Try the live demo at remy-s.vercel.app
✅ v1.3.0 Production Release - Engineering maturity with CI/CD, Sentry, and E2E tests!
# 1. Clone and install
git clone https://github.com/yourusername/remys-recipe-app.git
cd remys-recipe-app
npm install
# 2. Set up environment
cp .env.example .env
# Edit .env with your database credentials
# 3. Start database (Docker)
npm run docker:db:start
# 4. Initialize database
npm run db:push
npm run db:seed # Optional: Add sample data
# 5. Start app
npm run dev
Open http://localhost:3000 🎉
| Document | Description |
|---|---|
| Production Readiness | Complete deployment guide |
| V1 Launch Summary | All implemented features |
| Database Migrations | Database management guide |
| Docker Setup | Docker configuration |
| UI Testing | Testing guidelines |
Frontend: Next.js 16 • TypeScript • Material-UI v6 • Framer Motion Backend: Next.js API Routes • Prisma • PostgreSQL PWA: Serwist • Service Worker • Web App Manifest Media: Cloudinary CDN • Image optimization Auth: JWT • bcrypt • NextAuth Testing: Jest • React Testing Library • Playwright E2E DevOps: Docker • Vercel • GitHub Actions CI/CD Observability: Sentry • Vercel Analytics
npm test # All unit/integration tests with coverage
npm run test:watch # Watch mode
npm run test:e2e # Playwright E2E tests (starts dev server)
npm run test:e2e:ui # E2E tests with visual debugger
Coverage: 98% statements | 92% branches | 98% lines | All 1,161 tests passing
# Development
npm run dev # Start dev server
npm run build # Production build
npm run start # Start production
# Code Quality
npm run lint # ESLint (TypeScript rules)
npm run lint:fix # Auto-fix lint issues
npm run format # Prettier format all files
npm run typecheck # TypeScript type checking
# Database
npm run db:migrate:deploy # Deploy migrations (prod)
npm run db:studio # Database GUI
npm run db:seed # Seed test data
# Docker
npm run docker:up # Start all services
npm run docker:prod # Production mode
# Testing
npm test # Run Jest tests
npm run test:e2e # Playwright E2E tests
npm run test:all # Both Jest + E2E
Required variables (see .env.example for all):
DATABASE_URL="postgresql://..."
JWT_SECRET="min-32-random-chars"
NEXTAUTH_SECRET="min-32-random-chars"
NODE_ENV="production"
NEXT_PUBLIC_APP_URL="https://yourdomain.com"
src/
├── app/ # Next.js 15 App Router (Presentation Layer)
│ ├── api/ # API endpoints (28+ routes)
│ │ ├── auth/ # Authentication endpoints
│ │ ├── recipes/ # Recipe CRUD operations
│ │ ├── users/ # User management
│ │ ├── pantry/ # Pantry management
│ │ └── search/ # Search functionality
│ ├── recipe/[id]/ # Dynamic recipe pages
│ ├── profile/[username]/ # User profiles
│ ├── error.tsx # Global error boundary
│ ├── loading.tsx # Loading states
│ └── not-found.tsx # 404 page
│
├── components/ # React Components (View Layer)
│ ├── recipe/ # Recipe-related components
│ │ ├── RecipeCard.tsx # Reusable recipe cards
│ │ ├── RecipeFeed.tsx # Recipe feed with infinite scroll
│ │ ├── MatchedRecipes.tsx # Pantry-based recipe matching
│ │ ├── EditRecipeModal.tsx # 'Edit recipe' (thin wrapper over the recipe editor)
│ │ ├── form/ # Recipe editor (create + edit): RecipeTextFirstDialog,
│ │ │ # the form engine, the shared blocks, draft autosave
│ │ └── display/ # Display blocks shared by the recipe page and the preview
│ ├── auth/ # Authentication UI
│ ├── settings/ # Settings components
│ └── Navigation.tsx # Main navigation system
│
├── contexts/ # React Context (State Management)
│ ├── AuthContext.tsx # Authentication state
│ ├── CreateRecipeContext.tsx # The one 'New recipe' dialog + openCreate()
│ ├── ThemeContext.tsx # Dark/light mode theme
│ └── ToastContext.tsx # Global notifications
│
├── domain/ # Domain Layer (Business Entities)
│ └── types/ # TypeScript domain models
│ ├── recipe.ts # Recipe entity definitions
│ ├── user.ts # User entity definitions
│ └── pantry.ts # Pantry entity definitions
│
├── infrastructure/ # Infrastructure Layer (External Services)
│ ├── services/ # Business Logic Services
│ │ ├── RecipeService.ts # Recipe business logic
│ │ ├── UserService.ts # User management logic
│ │ ├── PantryService.ts # Pantry operations
│ │ ├── AuthService.ts # Authentication logic
│ │ ├── NotificationService.ts
│ │ └── TokenService.ts # JWT token management
│ │
│ └── repositories/ # Data Access Layer (Repository Pattern)
│ ├── RecipeRepository.ts # Recipe data access
│ ├── UserRepository.ts # User data access
│ ├── PantryRepository.ts
│ └── NotificationRepository.ts
│
├── lib/ # Shared Utilities
│ ├── validation/ # Input validation schemas
│ ├── utils.ts # Helper functions
│ └── prisma.ts # Database client singleton
│
├── middleware.ts # Security & Rate Limiting
└── prisma/
├── schema.prisma # Database schema
└── migrations/ # Database migrations
✅ JWT Authentication ✅ Password Hashing (bcrypt) ✅ Rate Limiting (100 req/15min) ✅ CORS Configuration ✅ Security Headers (HSTS, CSP, XSS Protection) ✅ Environment Validation ✅ SQL Injection Protection (Prisma)
docker-compose --profile production up -d
npm ci
npm run db:migrate:deploy
npm run build
npm start
📖 Full Guide: See Production Readiness
Health Endpoints:
/api/health - Application health/api/ready - Readiness probeObservability:
Built with:
✅ v1.3.0 - LIVE IN PRODUCTION
Live URL: remy-recipes.com
Fully operational and serving users! 🚀
Built with ❤️ - Share • Discover • Create Amazing Recipes 🍽️
New Features:
Technical Upgrades:
imageUrl field to Comment modelUX Improvements:
🌐 Live at: remy-s.vercel.app
Status: Live in Production ✅