←  返回关于我

项目介绍

独立全栈 / AI 协作开发

Meal4u

面向个人与家庭的智能备餐与膳食规划平台。它把菜谱发现、按食材推荐、多天菜单、营养计算、采购清单和家庭协作串成完整闭环,让“今天吃什么”进一步变成按人数可执行的准备方案。

Meal4u 官网与移动端产品界面

把模糊的吃饭需求变成可执行清单

备餐的成本不只在做饭,还在决定菜品、估算人数用量、检查营养和整理采购。Meal4u 用统一的份量与营养口径连接这些步骤,让不同入口最终都能落到菜单和清单。

查菜名

从菜谱查看每人份食材、制作步骤和营养信息,调整人数后同步缩放实际用量。

按食材推荐

根据手头食材寻找可做菜品,展示匹配与缺失信息,并将结果加入待规划清单。

安排多天菜单

按人数、天数和餐次组织菜品,支持替换、移除、调整份数与营养模板提示。

生成采购清单

同时输出跨菜谱总量和按菜拆分用量,让采购汇总与具体备餐都能直接执行。

家庭共同编辑

计划可设为个人、家庭只读或家庭可编辑,成员权限与隐私资料授权分别控制。

邀请客人选择

通过公开邀请收集客人偏好和菜品投票,关闭收集后把结果带入正式规划流程。

一条从选择到执行的主流程

产品用“待计划清单”统一承接菜谱列表、详情页和食材推荐中的临时选择,避免每个入口形成一套孤立状态。用户确认后进入多天规划,保存计划并生成采购清单。

  1. 发现浏览菜谱,或按现有食材寻找候选菜品。
  2. 选择将菜品加入待计划清单,并跨页面调整份数。
  3. 规划安排日期和餐次,查看每日热量与 P/C/F 提示。
  4. 采购聚合所需食材,按总量购买并按菜拆分执行。
Meal4u 从菜谱选择到采购执行的数据流
发现、待计划清单、多天菜单、营养采购以及保存分享边界。点击图片可查看原图。
Meal4u 移动端菜谱与营养信息界面

统一份量与营养计算口径

食谱配方统一以每 1 人份记录,食材营养以每 100g 或 100ml 为基准。食材单位先换算到质量或体积基准,再汇总热量、蛋白质、碳水与脂肪;人数变化时,用量和营养沿同一条计算链缩放。

  • 份量基准每 1 人份,支持按人数自动缩放。
  • 营养基准每 100g / 100ml,统一单位后再计算。
  • 展示指标热量以及蛋白质、碳水、脂肪的能量占比。
  • 清单粒度总量用于采购,按菜拆分用于备餐执行。

模块化单体与异步任务

后端采用 FastAPI 模块化单体,将 HTTP 边界、业务规则、数据访问和后台任务分层。耗时工作不阻塞请求:API 创建持久化 Job 后交给 Celery,客户端轮询 PostgreSQL 中的任务状态,Redis 主要承担消息代理职责。

Meal4u 整体系统架构图
用户端、管理端、营销站、FastAPI、PostgreSQL 与异步任务系统之间的关系。点击图片可查看原图。

稳定的同步 / 异步边界

请求线程完成校验、写库和建 Job 后立即返回;任务状态可恢复、可查询,不依赖浏览器长连接等待。

关系库派生查询

食谱与食材关系以 PostgreSQL 为事实源,同时支持“食谱到食材”和“食材到候选食谱”两类查询。

明确授权边界

账号认证可复用,但用户端与管理端分别校验角色;公开、个人和家庭数据按资源范围控制访问。

可控的数据维护

管理端维护食材、分类、标签与食谱,CSV 导入按白名单和 ID 更新,关系类数据保持更谨慎的变更策略。

技术栈 React 19 · TypeScript · Astro · FastAPI · Pydantic · SQLAlchemy · Alembic · PostgreSQL · Celery · Redis · Docker · Nginx

家庭协作不是简单共享链接

家庭空间将成员关系、资料授权和计划权限拆开管理。计划拥有者可以选择只读或可编辑范围,服务端校验实际家庭成员关系;身体数据等敏感资料只有显式授权后才向其他成员展示。

角色与成员关系

创建家庭、邀请成员、退出或移除成员等操作具有明确权限和状态变化。

计划可见性

保存时选择仅自己、家庭只读、家庭可编辑或公开只读,并可在之后调整。

隐私资料授权

昵称与偏好可按家庭场景展示,身高、体重和目标等资料需要单独授权。

AI 生成草稿,不直接写入正式内容

AI 能力用于辅助创建食谱和内容处理,但模型输出始终被视为不可信输入。服务端要求结构化结果,通过 Schema 与领域规则校验后形成可编辑草稿,只有用户确认才进入正式数据;超时、失败和重试都通过 Job 状态管理。

  1. 提交意图用户提供菜名、描述或已有材料,服务端创建异步任务。
  2. 结构化生成模型仅返回受约束字段,不获得直接数据库写权限。
  3. 校验编辑服务端检查单位、食材引用和字段边界,用户继续补充或修正。
  4. 确认入库通过正式接口保存,并进入对应的公开性与审核流程。
Meal4u AI 草稿、正式入库与内容审核流程
模型输出、服务端校验、用户确认、正式数据和公开内容审核之间的边界。点击图片可查看原图。

面向真实内容的发布与治理

用户可以创建食材和公开或私有食谱。公开传播内容进入更严格的审核范围,私密家庭内容保持弱干预;图片跟随所属内容治理,后台提供审核、媒体资产和敏感词等运营能力。

公开内容强审核

公开食材、公开食谱、公开邀请和分享计划进入治理范围,未通过前不扩大传播。

私密内容弱干预

私有食谱、家庭内部计划、成员备注和客人私密回复不会默认进入人工审核队列。

公开链接可撤回

公开计划使用不可猜测 Token;撤回后旧链接失效,再次公开时生成新的访问凭证。

AI 仅辅助审核

自动化用于初筛、风险分级和审核提示,最终发布状态仍由明确规则和人工操作控制。

规格驱动的 AI 协作研发

项目以产品规则和阶段规格控制复杂度。每一项能力先明确数据口径、可见性、失败处理和验收条件,再由 AI 协助检索影响范围、实现局部功能、补充测试和同步文档;产品取舍、系统设计、安全边界和最终验收由我负责。

规则先于页面

先锁定份量、营养、家庭权限与公开范围,再让前后端围绕同一套业务语义实现。

小步交付

用阶段计划、验收清单和生产反馈拆分工作,避免一次修改跨越过多业务边界。

迁移可执行

数据库变更配合 Alembic、部署 Runbook 和生产冒烟清单,降低代码与数据版本错配风险。

事实源可核对

发生规格与代码差异时回到实际 Schema、迁移和测试核验,不把 AI 输出直接视为事实。

了解 Meal4u ↗