智能植物养护系统 - 微信小程序 + Node.js 后端
本项目是一个面向植物爱好者的智能养护平台,结合物联网设备监测、AI 辅助诊断和微信小程序,帮助用户更好地管理家中植物。
- 植物档案管理:记录植物信息、生长状态、养护计划
- 环境数据监测:温度、湿度、光照、土壤等多维度实时监测
- AI 智能诊断:基于 AI API 的植物健康状态分析
- 会话咨询:用户与 AI 助手进行植物养护问答
- 设备管理:支持 IoT 设备绑定与数据上报
- 微信小程序原生框架
- JavaScript / WXSS / WXML
- Node.js 18+
- Express.js 5.x
- Sequelize ORM 6.x
- MySQL 8.0
- JWT 认证
- 腾讯云 COS 文件存储
- sharp 图片处理
- Jest 测试框架
- ESLint + Prettier 代码规范
- Node.js 调试工具
smart-garden-mvp/
├── frontend/ # 微信小程序前端
│ ├── pages/ # 页面目录
│ │ ├── index/ # 首页
│ │ ├── login/ # 登录页
│ │ ├── plants/ # 植物列表
│ │ ├── add-plant/ # 添加植物
│ │ ├── plant-detail/ # 植物详情
│ │ ├── plant-sessions/ # 植物会话
│ │ ├── sessions/ # 会话列表
│ │ ├── qna/ # 问答页面
│ │ ├── quick-analyze/ # 快速分析
│ │ ├── device-manage/ # 设备管理
│ │ ├── device-detail/ # 设备详情
│ │ ├── metric-detail/ # 指标详情
│ │ └── weather/ # 天气页面
│ ├── components/ # 公共组件
│ └── utils/ # 工具函数
├── backend/server/ # Node.js 后端服务
│ ├── src/
│ │ ├── config/ # 配置文件
│ │ ├── controllers/ # 控制器
│ │ ├── services/ # 业务逻辑层
│ │ ├── models/ # 数据模型
│ │ ├── routes/ # 路由定义
│ │ ├── middleware/ # 中间件
│ │ ├── jobs/ # 定时任务
│ │ └── utils/ # 工具函数
│ └── tests/ # 测试文件
├── _dev/tools/ # 开发工具
│ └── node/ # Node.js 调试工具
└── docs/ # 项目文档
| 模块 | 说明 |
|---|---|
/api/users |
用户管理(注册、登录、认证) |
/api/plants |
植物档案 CRUD |
/api/sessions |
会话管理 |
/api/care-records |
养护记录 |
/api/devices |
设备绑定与管理 |
/api/diagnosis |
AI 诊断卡片 |
/api/ai |
AI 对话与分析 |
/api/environment |
环境数据查询 |
/api/weather |
天气信息 |
/api/upload |
文件上传 |
/api/storage |
存储管理 |
/api/cos |
腾讯云 COS |
/api/logs |
日志查询 |
- Node.js >= 18.0.0
- MySQL >= 8.0
- 微信开发者工具
-
克隆仓库
git clone https://github.com/ShatterDusk/smart-garden-mvp.git cd smart-garden-mvp -
后端配置与启动
cd backend/server npm install cp .env.example .env.local # 编辑 .env.local 配置数据库连接、JWT 密钥、AI API 等 npm run dev
-
前端配置
- 使用微信开发者工具打开
frontend目录 - 修改
utils/config.js中的 API 地址(默认指向本地http://localhost:3000)
- 使用微信开发者工具打开
cd backend/server
npm test # 运行所有测试
npm run test:unit # 单元测试
npm run test:integration # 集成测试
npm run test:coverage # 生成覆盖率报告| 类型 | 数量 | 状态 |
|---|---|---|
| 测试套件 | 35+ | ✅ |
| 测试用例 | 640+ | ✅ |
| 代码覆盖率 | ~60% | 🟡 |
测试范围:
- ✅ Controllers(控制器)
- ✅ Services(服务层)
- ✅ Middleware(中间件)
- ✅ Utils(工具函数)
- ✅ Models(数据模型)
- 代码规范:遵循 ESLint + Prettier 规范
- 测试覆盖:Jest 单元测试、集成测试、端到端测试
- 类型检查:通过 ESLint 进行静态检查
| 依赖 | 用途 |
|---|---|
| express | Web 框架 |
| sequelize | ORM 数据库访问 |
| jsonwebtoken | JWT 认证 |
| cos-nodejs-sdk-v5 | 腾讯云 COS |
| sharp | 图片处理 |
| joi | 参数校验 |
| helmet | 安全中间件 |
| winston | 日志记录 |
- 作者:ShatterDusk
- 许可证:MIT License
- 联系方式:GitHub @ShatterDusk
欢迎提交 Issue 和 Pull Request。在提交代码前,请确保:
- 运行
npm run lint通过代码规范检查 - 运行
npm test通过所有测试 - 新功能附带相应的测试用例
- 微信小程序官方文档
- Sequelize ORM 社区
- Express.js 框架
- 其他开源贡献者
Copyright (c) 2026 ShatterDusk. All rights reserved.