# 绿智分精灵 **Repository Path**: se2023/green-intelligence-fen-elf ## Basic Information - **Project Name**: 绿智分精灵 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 垃圾识别精灵 一个基于Spring Boot后端和微信小程序前端的智能垃圾识别与分类系统。 ## 项目概述 本项目是一个智能垃圾分类应用,通过图像识别和语音识别技术帮助用户快速识别垃圾类型并进行正确分类。系统包含后端API服务和微信小程序前端。 ## 技术栈 ### 后端技术栈 - **Spring Boot 3.3.4** - Java后端框架 - **MyBatis Plus 3.5.8** - ORM框架 - **MySQL 8.0** - 数据库 - **JWT** - 用户认证 - **百度AI开放平台** - 图像识别和语音识别 - **Swagger** - API文档 - **EasyExcel** - Excel处理 - **PageHelper** - 分页插件 ### 前端技术栈 - **微信小程序** - 前端框架 - **Uni-app组件** - UI组件库 ## 功能特性 ### 核心功能 1. **图像识别** - 拍照识别垃圾类型 2. **语音识别** - 语音输入垃圾名称 3. **垃圾分类** - 根据识别结果提供分类建议 4. **挑战赛** - 垃圾分类知识挑战游戏 5. **搜索功能** - 查询垃圾分类信息 6. **用户系统** - 登录注册和个人中心 ### 特色功能 - 多模态识别(图像+语音) - 垃圾分类知识库 - 互动挑战游戏 - 实时分类结果展示 - 历史记录查询 ## 项目结构 ``` ├── backend/ # Spring Boot后端 │ ├── src/main/java/cn/lxsir/uniapp/ │ │ ├── common/ # 通用工具类 │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器层 │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # 数据访问层 │ │ ├── service/ # 业务逻辑层 │ │ ├── dto/ # 数据传输对象 │ │ ├── vo/ # 视图对象 │ │ └── utils/ # 工具类 │ ├── src/main/resources/ │ │ ├── mapper/xml/ # MyBatis XML映射文件 │ │ └── application.yml # 配置文件 │ └── pom.xml # Maven依赖配置 │ ├── mp-weixin/ # 微信小程序前端 │ ├── pages/ # 页面文件 │ │ ├── index/ # 主页 │ │ ├── challenge/ # 挑战赛页面 │ │ ├── search/ # 搜索页面 │ │ ├── login/ # 登录页面 │ │ └── more/ # 更多页面 │ ├── components/ # 自定义组件 │ └── common/ # 公共文件 │ └── README.md # 项目说明文档 ``` ## 成员及分工说明 | | 姓名 | 学号 | 班级 | 分工简介 | | ----- | ------ | ------------ | ---- | -------------------------------------- | | 组长 | 邓奉州 | 202310414209 | 2 | 数据库搭建及后端架构设计,实现用户模块 | | 组员1 | 刘燚 | 202310414208 | 2 | 管理端搭建 | | 组员2 | 程骏 | 202310414201 | 2 | ai功能集成 | | 组员3 | 肖國行 | 202310422107 | 2 | 测试及部署 | | 组员4 | 黄诗桐 | 202310414321 | 1 | 前端小程序页面搭建 | | 组员5 | 杨蕴悦 | 202310414123 | 1 | 业务逻辑编写,包括热门知识,挑战赛 | ## 快速开始 ### 环境要求 - JDK 17+ - MySQL 8.0+ - Maven 3.6+ - 微信开发者工具 - 百度AI开放平台账号(用于图像和语音识别) ### 后端部署 1. **数据库配置** ```sql CREATE DATABASE garbagesort CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. **配置文件修改** 修改 `backend/src/main/resources/application.yml`: - 数据库连接信息 - 百度AI API密钥 - 文件上传路径 3. **启动后端服务** ```bash cd backend mvn clean install mvn spring-boot:run ``` 4. **访问API文档** - Swagger UI: http://localhost:8899/wx/doc.html ### 前端部署 1. **导入微信开发者工具** - 打开微信开发者工具 - 导入 `mp-weixin` 目录 - 配置AppID(需要注册微信小程序) 2. **修改API配置** - 修改小程序中的API地址为后端服务地址 3. **编译运行** - 点击编译按钮 - 在模拟器或真机上测试 ## 配置说明 ### 百度AI配置 项目使用百度AI开放平台提供图像识别和语音识别服务,需要配置以下信息: ```yaml baidu: image: appid: "你的AppID" apikey: "你的API Key" secretkey: "你的Secret Key" speech: appid: "语音识别AppID" apikey: "语音识别API Key" secretkey: "语音识别Secret Key" ``` ### 数据库配置 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/garbagesort username: root password: your_password ``` ### 文件上传配置 ```yaml upload: image: path: /path/to/image/upload/ record: path: /path/to/record/upload/ excel: path: /path/to/excel/upload/ ``` ## API接口 ### 主要接口 - `POST /api/image/classify` - 图像识别 - `POST /api/speech/classify` - 语音识别 - `GET /api/challenge/list` - 获取挑战赛题目 - `POST /api/challenge/submit` - 提交挑战赛答案 - `GET /api/search` - 搜索垃圾信息 - `POST /api/user/login` - 用户登录 - `POST /api/user/register` - 用户注册 ## 数据库设计 主要数据表: - `user` - 用户表 - `question_bank` - 题库表 - `challenge_detail` - 挑战赛详情 - `challenge_result` - 挑战赛结果 - `image_classify` - 图像识别记录 - `speech_classify` - 语音识别记录 - `keyword_search_num` - 关键词搜索统计 ## 开发指南 ### 后端开发 1. 使用IDEA或Eclipse导入Maven项目 2. 配置数据库连接 3. 运行 `UniappApiApplication.java` 4. 访问Swagger文档测试接口 ### 前端开发 1. 安装微信开发者工具 2. 导入小程序项目 3. 修改 `app.js` 中的API地址 4. 使用模拟器或真机调试 ## 注意事项 1. **百度AI配额** - 注意百度AI服务的每日调用限制 2. **文件上传大小** - 默认限制为10MB 3. **JWT令牌** - 用户认证使用JWT,注意令牌过期时间 4. **跨域配置** - 后端已配置CORS,支持小程序调用 5. **生产环境** - 部署时请修改敏感配置信息 ## 贡献指南 1. Fork本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启Pull Request --- **让垃圾分类变得更简单,更智能!**