# hoppin做饭 **Repository Path**: hoppin/hoppin-cooking ## Basic Information - **Project Name**: hoppin做饭 - **Description**: qweqweqweqwe - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-23 - **Last Updated**: 2026-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 🍳 食刻手记 · Cooking Journal 一方厨房,一本手记。 记录每一道菜的做法与心得,让每一次下厨都有迹可循。 **菜谱管理** · **烹饪笔记** · **AI 营养分析** · **购物清单** · **菜谱对比** · **分享海报**
## ✨ 功能特性 - **菜谱管理** — 创建、编辑、收藏菜谱,支持关键词 / 分类 / 标签 / 卡路里筛选与排序(服务端分页) - **烹饪笔记与热力图** — 按日记录下厨情况,年度热力图 + 连续天数统计 - **AI 营养分析** — 一键分析每份菜谱的卡路里与营养成分(后端 AI 驱动) - **购物清单** — 根据计划菜谱自动汇总食材清单 - **菜谱对比** — 并排对比两份菜谱的营养与做法 - **分享海报** — Canvas 本地渲染多种主题与比例的分享图 - **评论互动** — 菜谱评论区,支持 Markdown 子集与图片 ## 🛠 技术栈 - 前端:React 19 · Vite · TypeScript · Tailwind CSS v4 · lucide-react · motion - 托管:Express(`server.ts` 仅承载前端页面,无 API 路由) - 后端:Java 服务 `hoppinzq-module-cooking`,接口契约见 [`docs/api.md`](docs/api.md) ## 🚀 快速开始 ```bash pnpm install # 安装依赖 pnpm run dev # 启动开发服务器(默认 http://localhost:3000) ``` > 开发时需保证后端可用(默认代理到 `http://127.0.0.1:3008` 测试环境)。 > 端口冲突自动顺延:3000 被占用时会依次尝试 3001、3002…… 其他命令: ```bash pnpm run build # 生产构建 → dist/(资源带 /cooking/ 前缀) pnpm run preview # 预览构建产物 pnpm run lint # TypeScript 类型检查 ``` ## ⚙️ 环境配置 复制 `.env.example` 为 `.env.development`(默认配置即可直接使用): | 变量 | 说明 | 默认值 | | --- | --- | --- | | `VITE_API_BASE_URL` | cooking 模块 API 地址 | `/app-api/cooking`(经 vite 代理) | | `BACKEND_URL` | vite 代理目标后端 | `http://127.0.0.1:3008`(测试环境) | | `VITE_BASE` | 构建产物 base 路径 | `/cooking/` | | `VITE_ZAI_LOGIN_PAGE` | ZAI 登录页地址 | 内置默认值 | | `VITE_ZAI_BACKEND_BASE` | ZAI 认证后端 | 内置默认值 | 生产环境不配置 `VITE_API_BASE_URL` 时,直连 `https://hoppinzq.com:3008/app-api/cooking`。 ## 🔐 认证 - 读接口(`/app-api/cooking/**`)公开访问 - 写接口(`/admin-api/cooking/user/**`)需 ZAI 登录,Bearer token 过期自动刷新(详见 `src/api/auth.ts`) ## 📦 部署 生产部署于 `https://hoppinzq.com:3008/cooking/`: ```bash pnpm run build ``` 部署到其他路径时用 `VITE_BASE` 覆盖(根路径部署设 `VITE_BASE="/"`), 并同步更新 `index.html` 中的 SEO 头(canonical / Open Graph 等)。 ## 📖 相关文档 - [`docs/api.md`](docs/api.md) — 后端接口契约(权威) - [`CLAUDE.md`](CLAUDE.md) — 架构与开发约定