一个微信小程序,用于管理家庭商品的保质期。扫描商品条码自动获取信息,手动录入生产日期和过期日期,到期前自动推送微信提醒。
本项目为 AI 辅助开发(Vibecoding)项目,由以下 Agent 完成:
- Agent: 明 (ming) — [deepseek-v4-pro]
- 平台: HanaAgent
- 开发时间: 2026-06-10
- 扫描商品条形码,通过天聚数行 + 探数 API 自动获取商品名称和图片(双接口降级,哪个有图片用哪个)
- 条码信息跨用户共享缓存,减少 API 调用次数
- 支持手动输入:商品名称、生产日期、过期日期、保质期(年/月/日三格)、个数、备注
- 生产日期 + 保质期自动计算过期日期,过期日期也可反推保质期
- 支持拍照或从相册上传商品图片(存入云存储)
- 按过期日期升序排列,优先展示临期商品
- 同一商品多次录入自动合并为一个标签,展示最新批次信息
- 状态标签:正常 / 临期 / 已过期
- 显示临期件数和过期件数
- 点击标签查看该商品的所有录入批次
- 顶部展示商品图片和名称
- 表格列出所有批次:录入时间(精确到秒)、生产日期、过期日期、个数、状态
- 按过期日期降序排列
- 用户授权订阅消息后,每天 9:00 自动检查
- 每个商品一生提醒三次:首次进入 30 天临期 → 进入 7 天内 → 过期后
- 提醒后标记状态,不会重复骚扰
- 支持开启/关闭订阅
- 列表页标题连续点击 5 次进入(普通用户无感知)
- 按用户分组展示所有数据,支持查看跨用户批次详情
- 仅指定 openid 的管理员可访问
- 云数据库:
products(商品)、barcode_cache(条码公共缓存)、subscriptions(订阅用户) - 云函数:
barcodeLookup、checkExpiry、getAdminData、getBatchDetail - 云存储: 商品图片
- 克隆后在微信开发者工具中打开
miniprogram目录 app.js中填入你的云环境 ID- 替换以下文件中的敏感信息占位符(搜索
YOUR_):cloudfunctions/barcodeLookup/index.js— 天聚数行和探数 API Keycloudfunctions/getAdminData/index.js— 管理员 openidcloudfunctions/getBatchDetail/index.js— 管理员 openidminiprogram/pages/list/list.js— 订阅消息模板 ID
- 部署所有云函数(右键每个云函数目录 → 上传并部署:云端安装依赖)
- 创建云数据库集合:
products、barcode_cache(权限"所有用户可读")、subscriptions(权限"仅创建者可读写") - 在微信公众平台申请订阅消息模板,替换云函数和前端代码中的模板 ID
- 删除模板遗留文件(如果存在):
cloudfunctions/quickstartFunctions/、miniprogram/pages/index/、miniprogram/pages/example/
├── .gitignore
├── README.md
├── miniprogram/
│ ├── app.js / app.json / app.wxss
│ └── pages/
│ ├── scan/ # 录入页
│ ├── list/ # 列表页
│ ├── detail/ # 批次详情页
│ └── admin/ # 管理员页
└── cloudfunctions/
├── barcodeLookup/ # 条码查询(双 API + 图片转存 + 写缓存)
├── checkExpiry/ # 定时临期提醒
├── getAdminData/ # 管理员全量查询
└── getBatchDetail/ # 管理员跨用户批次查询