缘起
家里第一盆龟背竹是浇死的,第二盆是忘了浇——死法相反,原因相同:没人记得上一次浇水是哪天,也说不清它到底喜阴还是喜阳。前后数下来,因为忘了管而养死的有 3–5 盆。
市面上的绿植 App 要么是养花社区,要么是通用备忘录,没有一个是「我家这十几盆,谁路过都能顺手浇一下」的。
所以这个小程序的最低目标很朴素:给每株植物建个档案,按周期算出下次该管它是什么时候,再生成一张二维码贴在花盆上——家里任何人扫一下,就知道自己现在该做什么。
背景
一株植物要照顾的事不止浇水:施肥、修剪、换盆各有各的周期,还要看光照和季节,品种不同规则又不同。十几盆、动手的人又不止一个时,需要的是一份共同的档案加上按周期推出来的待办——谁浇过、下一步该谁做,得留得下记录,而不是各自记在脑子里。养护知识本身也是缺口:黄叶是水多还是缺光,光靠记录本判断不了。它要做的是家庭场景下的养护管家:建档、记录、自动待办、多人协作,再加一层能看图给建议的 AI 分析。
方案
按「建档 → 待办 → 记录 → 分析」这条日常动线做的:
- 一份全家共用的绿植台账:每株录入别名、品种、摆放位置、浇水与施肥周期、喜阴还是喜阳,配一张当前照片;家里十几盆摊在一个首页上,哪盆什么状态一眼看清
- 待办自己算出来:按养护周期推出下次该浇水、该施肥是哪天,首页直接列出「待浇水 / 待施肥」和还剩几天——不用再互相问「上次是谁浇的」
- 养护动作随手记:浇水、施肥、修剪、换盆、拍照各记一条,带上当天天气,按时间线回看整株的养护史,谁记的也留痕
- 花盆上贴一张二维码:每株生成专属二维码,打印贴在盆上;谁路过扫一下就直接进这株的详情页,当场记录,不必在列表里翻找
- 一个家庭、一个邀请码:账号登录后先建家庭,家人用邀请码加入,共用同一份台账;家庭动态里能看到最近谁动了哪盆
- 不认识这盆是什么:拍张照识别品种,顺手就把档案建起来
- AI 养护咨询:把档案和最近的养护记录一起交给大模型,让它分析植株现在的状态、指出可能的问题、给出接下来怎么管;新增时只填物种名,习性与养护建议由它起草
- 后台管着谁能进来:PC 管理后台负责邀请码的发放与回收,以及家庭与用户的查看
技术架构
三个可执行体:plant-server(Go 服务,同时托管手机端与 PC 后台的静态产物)、plant-app(手机端)、plant-admin(PC 后台)。对外只有一个进程、一个端口。
| 模块 | 技术选型 |
|---|---|
| 后端 | Go 1.20 + Gin + GORM + SQLite |
| 手机端 | UniApp + Vue3 + Vite,一套代码同时产出 H5 与微信小程序 |
| PC 管理后台 | Vue3 + Element Plus + Vue Router,独立单页应用,构建产物并入后端静态目录 |
| 鉴权 | JWT 双令牌(访问令牌 + 刷新令牌),管理端独立鉴权中间件 |
| AI | OpenAI 兼容协议接入可配置大模型(默认 DeepSeek):档案生成、拍照识别、养护分析 |
| 二维码 | 后端生成植株专属二维码 |
| 交付 | build.sh 一键构建:环境检测 → 前端编译 → 后端编译 → 部署目录组装 → 压缩打包 |
- AI 分析走流式返回,结论逐段出现在页面上,不用等整段生成完;模型与密钥都在配置里换,不写进代码
- 照片在手机端上传前先压缩,省流量也省服务器存储
- 数据库是随服务走的单文件,无外部依赖;照片落在服务器本地目录
- 从 init 到 H5 上线共 12 次提交、跨 5 天(2026-08-15 → 08-19),单人完成服务端、手机端与 PC 后台三部分
- PRD 二期预留:土壤湿度与光照传感器接入、自动数据同步、消息推送——一期刻意不做,先把「人工记录 + 自动待办」这条主线做扎实
成果
- 从「想起来才管」到「打开就有待办」:家里 10 盆上下的绿植,以前全凭记忆,一忙起来就漏一次,累计养死过 3–5 盆;现在打开首页就是今天该浇哪盆、还剩几天,不用再回忆上次是哪天
- 不用再互相问:谁浇的、上次是什么时候,以前靠喊人;现在每一条养护都带时间和记录人,全家看的是同一份数据
- 扫码这件事真的省事:每株一张二维码贴在盆上,不必在列表里翻——看到叶子发蔫,扫一下就到这一株,当场把记录补上
- AI 从新鲜功能变成真的在用:不认识的品种拍照识别;叶片发黄分不清是水多还是缺光,把档案和最近养护记录一起交给它分析,不必再去网上对症状
- 运维代价这一栏:整套系统跑在一台机器、一个进程里,数据库是随服务走的单文件,不额外占一台数据库服务;服务端、手机端与 PC 管理后台两个入口由同一个人写完,共用一份数据
体验
手机浏览器打开 https://fp.bennywen.xyz 就能用(同一套代码也编得出微信小程序版本,目前上线的是网页入口)。注册后先建一个家庭,第二个人用邀请码加入,就能看到同一批绿植;想试完整链路的话,随便建一株、把浇水周期填成 1 天,第二天回首页它就会出现在待浇水里。
