Springboot垃圾分类查询管理系统

背景

随着全球人口的增长和城市化进程的加速,垃圾处理成为了一个日益突出的问题。在城市中,垃圾分类的实施成为了减少垃圾处理成本,保护环境,提高居民环境意识的有效手段。因此,垃圾分类查询管理系统应运而生,旨在帮助居民查询垃圾分类信息,提高居民的垃圾分类意识和垃圾分类正确率。

本文旨在设计一个垃圾分类查询管理系统,该系统采用Springboot框架,基于Hadoop的Mapreduce进行大数据分析。该系统功能涵盖了用户管理、系统设置、公告管理、分类管理、贡献管理、垃圾管理、大数据分析等模块,满足居民查询垃圾分类信息的需求。

需求

垃圾分类查询管理系统应满足以下需求:

用户管理模块:提供用户注册、登录、修改个人信息等功能,区分普通用户和管理员用户。

系统设置模块:提供系统参数配置功能,例如站点名称、logo、联系方式等。

公告管理模块:提供公告发布功能,方便管理员发布系统公告。

分类管理模块:提供垃圾分类信息维护功能,包括垃圾种类、投放方式、投放时间、投放地点等信息。

贡献管理模块:提供贡献积分管理功能,记录用户的垃圾分类贡献,鼓励用户积极参与垃圾分类。

垃圾管理模块:提供垃圾查询、垃圾分类信息展示功能,支持关键字查询和分类查询。

大数据分析模块:提供大数据分析功能,通过Hadoop的Mapreduce计算,分析垃圾分类的热点区域、分类正确率、分类错误率等信息,为城市垃圾分类政策的制定提供数据支持。

概要设计

本系统采用Springboot框架进行开发,采用MVC设计模式,将系统分为模型、视图和控制器三个部分。其中,模型层负责数据的存储和处理,视图层负责页面的展示,控制器层负责业务逻辑的处理。

系统采用前后端分离的设计,前端使用Vue.js进行开发,后端提供Restful API接口。数据库采用MySQL进行存储,系统数据存储在Hadoop分布式文件系统中,大数据分析采用Hadoop的Mapreduce

详细设计

用户管理模块
数据库设计
字段名称 类型 长度 说明
id int 11 用户ID
username varchar 255 用户名
password varchar 255 密码
email varchar 255 邮箱
phone varchar 255 电话
role int 11 用户角色,0表示普通用户,1表示管理员用户
接口设计
注册接口
URL: /api/register
方法: POST
请求参数:
参数名称 类型 必填 说明
username String 是 用户名
password String 是 密码
email String 是 邮箱
phone String 否 电话
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
登录接口
URL: /api/login
方法: POST
请求参数:
参数名称 类型 必填 说明
username String 是 用户名
password String 是 密码
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
修改个人信息接口
URL: /api/user
方法: PUT
请求参数:
参数名称 类型 必填 说明
email String 否 邮箱
phone String 否 电话
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
系统设置模块
数据库设计
字段名称 类型 长度 说明
id int 11 设置ID
site_name varchar 255 站点名称
logo_url varchar 255 站点Logo地址
contact varchar 255 联系方式
接口设计
获取系统设置接口
URL: /api/settings
方法: GET
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
修改系统设置接口
URL: /api/settings
方法: PUT
请求参数:
参数名称 类型 必填 说明
site_name String 否 站点名称
logo_url String 否 站点Logo地址
contact String 否 联系方式
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
公告管理模块
数据库设计
|字段



名称 类型 长度 说明
id int 11 公告ID
title varchar 255 公告标题
content text 公告内容
create_time datetime 公告创建时间
接口设计
获取公告列表接口
URL: /api/notices
方法: GET
请求参数:
参数名称 类型 必填 说明
page int 否 页码,默认为1
size int 否 每页记录数,默认为10
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取公告详情接口
URL: /api/notices/{id}
方法: GET
请求参数:
参数名称 类型 必填 说明
id int 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
新增公告接口
URL: /api/notices
方法: POST
请求参数:
参数名称 类型 必填 说明
title String 是 公告标题
content String 是 公告内容
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
修改公告接口
URL: /api/notices/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
title String 否 公告标题
content String 否 公告内容
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除公告接口
URL: /api/notices/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id int 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
分类管理模块
数据库设计
字段名称 类型 长度 说明
id int 11 分类ID
name varchar 255 分类名称
parent_id int 11 父分类ID
description varchar 255 分类描述
接口设计
获取分类列表接口
URL: /api/categories
方法: GET
请求参数:
参数名称 类型 必填 说明
page

数据库设计

用户表
字段名称 类型 长度 说明
id bigint 20 用户ID
username varchar 255 用户名
password varchar 255 密码
email varchar 255 邮箱
phone varchar 20 手机号
create_time datetime 创建时间
update_time datetime 更新时间
用户角色表
字段名称 类型 长度 说明
id bigint 20 用户角色ID
user_id bigint 20 用户ID
role_id bigint 20 角色ID
角色表
字段名称 类型 长度 说明
id bigint 20 角色ID
name varchar 255 角色名称
description varchar 255 角色描述
角色权限表
字段名称 类型 长度 说明
id bigint 20 角色权限ID
role_id bigint 20 角色ID
permission_id bigint 20 权限ID
权限表
字段名称 类型 长度 说明
id bigint 20 权限ID
name varchar 255 权限名称
url varchar 255 权限URL
description varchar 255 权限描述
接口设计
用户注册接口
URL: /api/users/register
方法: POST
请求参数:
参数名称 类型 必填 说明
username String 是 用户名
password String 是 密码
email String 是 邮箱
phone String 是 手机号
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
用户登录接口
URL: /api/users/login
方法: POST
请求参数:
参数名称 类型 必填 说明
username String 是 用户名
password String 是 密码
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取用户信息接口
URL: /api/users/{id}
方法: GET
请求参数:
参数名称 类型 必填 说明
id Long 是 用户ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
更新用户信息接口
URL: /api/users/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
username String 否 用户名
password String 否 密码
email String 否 邮箱
phone

参数名称 类型 必填 说明
id Long 是 用户ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除用户接口
URL: /api/users/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id Long 是 用户ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
添加分类接口
URL: /api/categories
方法: POST
请求参数:
参数名称 类型 必填 说明
name String 是 分类名称
description String 是 分类描述
parent_id Long 否 父分类ID,为空表示该分类为一级分类
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取分类列表接口
URL: /api/categories
方法: GET
请求参数:
参数名称 类型 必填 说明
page int 否 页码,默认为1
size int 否 每页显示数量,默认为10
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取分类详情接口
URL: /api/categories/{id}
方法: GET
请求参数:
参数名称 类型 必填 说明
id Long 是 分类ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
更新分类接口
URL: /api/categories/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
name String 否 分类名称
description String 否 分类描述
parent_id Long 否 父分类ID,为空表示该分类为一级分类
id Long 是 分类ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除分类接口
URL: /api/categories/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id Long 是 分类ID
响应参数:
|参数名称|类型|说明

添加公告接口
URL: /api/notices
方法: POST
请求参数:
参数名称 类型 必填 说明
title String 是 公告标题
content String 是 公告内容
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取公告列表接口
URL: /api/notices
方法: GET
请求参数:
参数名称 类型 必填 说明
page int 否 页码,默认为1
size int 否 每页显示数量,默认为10
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取公告详情接口
URL: /api/notices/{id}
方法: GET
请求参数:
参数名称 类型 必填 说明
id Long 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
更新公告接口
URL: /api/notices/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
title String 否 公告标题
content String 否 公告内容
id Long 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除公告接口
URL: /api/notices/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id Long 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
添加垃圾接口
URL: /api/garbage
方法: POST
请求参数:
参数名称 类型 必填 说明
name String 是 垃圾名称
category_id Long 是 垃圾所属分类ID
description String 是 垃圾描述
image_url String 否 垃圾图片URL
video_url String 否 垃圾视频URL
audio_url String 否 垃圾音频URL
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功

|message|String|响应信息|
|data|Object|响应数据|

获取垃圾列表接口
URL: /api/garbage
方法: GET
请求参数:
参数名称 类型 必填 说明
page int 否 页码,默认为1
size int 否 每页显示数量,默认为10
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取垃圾详情接口
URL: /api/garbage/{id}
方法: GET
请求参数:
参数名称 类型 必填 说明
id Long 是 垃圾ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
更新垃圾接口
URL: /api/garbage/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
name String 否 垃圾名称
category_id Long 否 垃圾所属分类ID
description String 否 垃圾描述
image_url String 否 垃圾图片URL
video_url String 否 垃圾视频URL
audio_url String 否 垃圾音频URL
id Long 是 垃圾ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除垃圾接口
URL: /api/garbage/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id Long 是 垃圾ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
添加分类接口
URL: /api/categories
方法: POST
请求参数:
参数名称 类型 必填 说明
name String 是 分类名称
description String 否 分类描述
image_url String 否 分类图片URL
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取分类列表接口
URL: /api/categories
方法: GET
请求参数:
参数名称 类型 必填 说明
page int 否

响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取分类详情接口
URL: /api/categories/{id}
方法: GET
请求参数:
参数名称 类型 必填 说明
id Long 是 分类ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
更新分类接口
URL: /api/categories/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
name String 否 分类名称
description String 否 分类描述
image_url String 否 分类图片URL
id Long 是 分类ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除分类接口
URL: /api/categories/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id Long 是 分类ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
添加公告接口
URL: /api/notices
方法: POST
请求参数:
参数名称 类型 必填 说明
title String 是 公告标题
content String 是 公告内容
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取公告列表接口
URL: /api/notices
方法: GET
请求参数:
参数名称 类型 必填 说明
page int 否 页码,默认为1
size int 否 每页显示数量,默认为10
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取公告详情接口
URL: /api/notices/{id}
方法: GET
请求参数:
参数名称 类型 必填 说明
id Long 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
更新公告接口
URL: /api/not

更新公告接口
URL: /api/notices/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
title String 否 公告标题
content String 否 公告内容
id Long 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除公告接口
URL: /api/notices/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id Long 是 公告ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
添加贡献接口
URL: /api/contributions
方法: POST
请求参数:
参数名称 类型 必填 说明
category_id Long 是 分类ID
score int 是 贡献得分
user_id Long 是 用户ID
create_time String 是 创建时间,格式为"yyyy-MM-dd HH:mm:ss"
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取贡献列表接口
URL: /api/contributions
方法: GET
请求参数:
参数名称 类型 必填 说明
page int 否 页码,默认为1
size int 否 每页显示数量,默认为10
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
获取用户贡献列表接口
URL: /api/users/{id}/contributions
方法: GET
请求参数:
参数名称 类型 必填 说明
id Long 是 用户ID
page int 否 页码,默认为1
size int 否 每页显示数量,默认为10
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
添加垃圾接口
URL: /api/trash
方法: POST
请求参数:
参数名称 类型 必填 说明
name String 是 垃圾名称
category_id Long 是 分类ID
description String 是 垃圾描述
image_url String 是 垃圾图片URL

响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
更新垃圾接口
URL: /api/trash/{id}
方法: PUT
请求参数:
参数名称 类型 必填 说明
name String 否 垃圾名称
category_id Long 否 分类ID
description String 否 垃圾描述
image_url String 否 垃圾图片URL
id Long 是 垃圾ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
删除垃圾接口
URL: /api/trash/{id}
方法: DELETE
请求参数:
参数名称 类型 必填 说明
id Long 是 垃圾ID
响应参数:
参数名称 类型 说明
code int 状态码,200表示成功
message String 响应信息
data Object 响应数据
数据库设计
用户表
字段名 类型 长度 说明
id bigint 用户ID
username varchar 50 用户名
password varchar 50 密码
email varchar 50 邮箱
phone varchar 20 手机号码
create_time datetime 创建时间
update_time datetime 更新时间
分类表
字段名 类型 长度 说明
id bigint 分类ID
name varchar 50 分类名称
create_time datetime 创建时间
update_time datetime 更新时间
公告表
字段名 类型 长度 说明
id bigint 公告ID
title varchar 50 公告标题
content text 公告内容
create_time datetime 创建时间
update_time datetime 更新时间
垃圾表
字段名 类型 长度 说明
id bigint 垃圾ID
name varchar 50 垃圾名称
category_id bigint 分类ID
description text 垃圾描述
image_url varchar 200 垃圾图片URL
create_time datetime 创建时间
update_time datetime 更新时间
贡献表
字段名 类型 长度 说明
id bigint 贡献ID
category_id bigint 分类ID
score int 贡献得分
user_id bigint 用户ID
create_time datetime 创建时间
系统测试
系统测试分为功能测试和性能测试两部分。

功能测试

功能测试主要测试系统的各个功能是否满足需求,包括用户管理、分类管理、公告管理、垃圾管理、贡献管理、系统设置和大数据分析等功能。

用户管理功能测试
注册新用户,检查是否成功创建用户并返回正确的用户信息。
使用错误的用户名或密码登录,检查是否提示用户名或密码错误。
使用正确的用户名和密码登录,检查是否成功登录并返回正确的用户信息。
修改用户信息,检查是否成功修改用户信息并返回正确的用户信息。
删除用户,检查是否成功删除用户。
分类管理功能测试
创建新的分类,检查是否成功创建分类并返回正确的分类信息。
修改分类信息,检查是否成功修改分类信息并返回正确的分类信息。
删除分类,检查是否成功删除分类。
公告管理功能测试
创建新的公告,检查是否成功创建公告并返回正确的公告信息。
修改公告信息,检查是否成功修改公告信息并返回正确的公告信息。
删除公告,检查是否成功删除公告。
垃圾管理功能测试
创建新的垃圾,检查是否成功创建垃圾并返回正确的垃圾信息。
修改垃圾信息,检查是否成功修改垃圾信息并返回正确的垃圾信息。
删除垃圾,检查是否成功删除垃圾。
贡献管理功能测试
创建新的贡献,检查是否成功创建贡献并返回正确的贡献信息。
修改贡献信息,检查是否成功修改贡献信息并返回正确的贡献信息。
删除贡献,检查是否成功删除贡献。
系统设置功能测试
修改系统配置信息,检查是否成功修改系统配置信息并返回正确的配置信息。
大数据分析功能测试
运行大数据分析任务,检查是否成功运行分析任务并返回正确的分析结果。
性能测试
性能测试主要测试系统的响应时间、并发处理能力和稳定性等方面。

测试系统的响应时间,包括用户请求响应时间、数据处理时间和数据传输时间等方面。
测试系统的并发处理能力,包括同时处理多个用户请求的能力。
测试系统的稳定性,包括系统的可用性、故障恢复能力和系统负载能力等方面。

总结

本文设计了一个Spring Boot垃圾分类查询管理系统,包括用户管理、系统设置、公告管理、分类管理、贡献管理、垃圾管理和大数据分析等功能。通过对各个功能的详细设计和数据库设计,实现了对垃圾分类查询管理系统的全面规划。同时,本文还对系统的测试方案进行了详细设计,包括功能测试和性能测试两个方面。通过测试,可以保证系统的各个功能和性能满足用户需求,提高系统的可靠性和稳定性。

当然,在实际开发过程中,还需要考虑系统的安全性和可维护性等方面,比如对用户数据进行加密和保护,对系统代码进行规范化和注释,以便后续维护和升级。同时,也需要不断优化系统的性能和响应速度,提高用户体验和满意度。

综上所述,本文的设计和测试方案为开发Spring Boot垃圾分类查询管理系统提供了一个完整的参考。开发人员可以根据实际需求和场景进行调整和优化,以便更好地满足用户需求,提高系统的性能和可靠性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值