尚未检测到更新。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 ✅