基于springboot的环保公益活动管理与宣传系统
技术微信:375279829
本课题包括源程序、数据库、论文、运行软件、运行教程
毕业设计资料-计算机毕业设计源码网:我们提供的源码通过邮箱或者QQ微信传送,如果有啥问题直接联系客服
包在您电脑上运行成功
语言:Java
数据库:MySQL
框架:ssm、springboot、mvc
课题相关技术、功能详情请联系技术
作品描述
摘要
随着生态文明建设持续推进,各类环保公益活动数量逐年增长,传统依靠微信群、线下登记、文档表格管理公益活动的方式存在信息分散、报名审核效率低、宣传渠道单一、志愿者招募和物资捐赠难以统一管控等问题。为解决环保公益组织在活动运营、公益宣传、志愿者管理、物资捐赠、互动交流方面的管理痛点,本文设计并实现了一套基于SpringBoot的环保公益活动管理与宣传系统。系统采用SpringBoot作为后端开发框架,MySQL 5.7作为数据库存储,结合前端页面实现多角色权限管控,分为管理员、活动组织者、活动参与者三类用户角色。
依托数据库表结构设计,系统实现公益活动发布、活动报名审核、志愿者招募、物资捐赠登记审核、环保培训内容发布、环保日记分享、社区论坛互动、活动反馈、评论点赞收藏、新闻公告宣传等核心业务功能。本文从系统开发背景、相关技术、需求分析、数据库设计、系统功能实现、系统测试等方面展开论述。测试结果表明,系统能够稳定完成环保公益活动全流程管理,帮助公益组织者简化活动发布、报名审核、捐赠审核流程,同时搭建线上宣传阵地,提升环保理念传播效率,为环保公益组织数字化运营提供可行方案。
关键词:SpringBoot;环保公益;活动管理;志愿者招募;MySQL;公益宣传
一、绪论
1.1 研究背景与意义
生态环境保护是国家重点发展方向,社会各界自发组建大量民间环保公益组织,定期开展河道清理、植树造林、垃圾分类宣传、野生动物保护等公益活动。现阶段大量中小型环保公益组织信息化程度较低,活动信息大多依靠朋友圈、短视频、线下海报进行零散宣传;志愿者报名依靠手工登记Excel表格,信息容易丢失、重复;环保物资捐赠缺少线上登记、审核流程;参与者之间缺少交流分享渠道,环保宣传效果有限。
传统管理模式存在明显短板:第一,活动信息不集中,参与者很难快速获取本地环保公益活动;第二,报名、捐赠信息人工核对工作量大,审核进度无法实时同步给参与者;第三,缺少统一宣传载体,环保科普、培训资料难以沉淀传播;第四,缺少互动板块,无法收集参与者活动反馈、分享环保日记,公益氛围薄弱。
在此背景下,开发一套环保公益活动管理与宣传系统具备现实意义。对公益组织者而言,能够线上发布活动、管理报名信息、审核捐赠、发布环保培训资料,降低线下管理成本;对参与者而言,可以浏览公益活动、在线报名、申请志愿者、捐赠物资、学习环保知识、发布环保日记、在论坛交流;对环保宣传而言,系统作为线上宣传平台,持续输出环保科普内容,扩大环保公益影响力。同时系统基于SpringBoot开发,架构轻量化,部署简单,适合中小型公益组织使用。
1.2 国内外研究现状
国外公益信息化起步较早,大量公益平台聚焦志愿者匹配、公益项目筹款、公益项目追踪,平台功能成熟,具备完善的志愿者信用体系、公益时长统计、第三方支付捐赠模块,但国外平台业务模式、法规要求、用户习惯和国内民间环保公益组织存在差异,直接套用并不适配国内场景。
国内现有公益平台大多偏向大型基金会筹款、官方志愿服务平台,系统庞大,功能复杂,收费成本高,并不适合小型本地环保公益团队。很多小型环保组织没有条件使用大型平台,仍然采用表格管理。部分高校毕设开发的公益系统只聚焦活动报名单一功能,缺少物资捐赠、环保培训、论坛社区、环保日记、多角色分级审核等配套模块。
综合现有平台的优缺点,本系统定位轻量化环保公益平台,兼顾活动管理和公益宣传两大核心,集成报名审核、志愿者招募、物资捐赠、环保科普、社区互动一体化功能,区分管理员、组织者、参与者权限,适配中小型环保公益团队使用场景,填补轻量化环保公益管理系统的需求空白。
1.3 研究内容
本文主要研究基于SpringBoot的环保公益活动管理与宣传系统的设计开发工作,主要内容如下:
1. 需求调研:梳理环保公益组织、志愿者参与者、平台管理员三方业务需求,划分系统角色,梳理业务流程,明确功能模块;
2. 技术选型:确定后端SpringBoot、MySQL数据库、前端页面技术栈,介绍核心技术原理;
3. 数据库设计:根据业务实体,设计数据表,梳理实体之间关联关系,本文基于提供的MySQL数据表展开设计说明;
4. 系统详细设计:划分各个功能模块,设计权限控制逻辑,设计业务流程;
5. 系统实现:说明各个核心模块后端接口、页面功能实现逻辑;
6. 系统测试:设计功能测试用例,验证系统功能可用性、稳定性;
7. 总结与展望:总结系统成果,分析不足,提出后续优化方向。
1.4 论文结构
本文一共分为六个章节。第一章绪论,介绍研究背景、国内外现状、研究内容;第二章相关技术介绍;第三章系统需求分析;第四章系统数据库设计;第五章系统功能实现;第六章系统测试;最后是总结与展望、参考文献。
二、相关技术介绍
2.1 SpringBoot框架
SpringBoot是Spring生态下的快速开发框架,解决传统Spring项目配置繁琐、依赖管理复杂的问题。SpringBoot内置Tomcat容器,自动装配机制可以自动加载常用组件配置,减少XML配置文件编写。本系统使用SpringBoot搭建后端服务,接收前端HTTP请求,完成业务逻辑处理、数据库交互、权限校验。SpringBoot分层开发模式分为Controller控制层、Service业务层、Mapper数据访问层,结构清晰,便于后期维护。Controller接收前端参数,调用Service层业务方法;Service层封装核心业务逻辑,包含报名审核、捐赠审核、评论管理等;Mapper层基于MyBatis实现和MySQL数据库交互,完成增删改查操作。
2.2 MySQL数据库
MySQL是开源关系型数据库,稳定性强、开源免费,适合中小型Web系统存储业务数据,支持事务、主键、外键约束,能够保证数据一致性。本系统选用MySQL5.7版本,字符集设置utf8mb4,支持表情、长文本、图片路径存储。系统一共设计三十多张数据表,涵盖用户角色表、公益活动表、活动报名表、物资捐赠表、招募申请表、环保培训表、论坛帖子表、评论表、举报表、收藏表等,数据表之间通过主键、外键建立关联,支撑整套业务流转。
2.3 MyBatis
MyBatis是持久层框架,支持自定义SQL语句,将数据库查询结果映射为Java实体类。相比JPA,MyBatis SQL语句可控,方便复杂联表查询,适合本系统多表关联业务,例如查询一条公益活动同时带出评论信息、报名统计信息。
2.4 Token身份认证
系统使用Token机制实现登录身份校验。用户登录成功后,后端生成Token字符串,返回前端保存;前端后续每次请求携带Token,后端校验Token是否有效、是否过期,读取Token里面的用户id、角色信息,判断访问权限。数据库中单独设计token表,存储用户token、过期时间,实现登录状态管理、单点登录、退出登录销毁token。
2.5 前端技术
前端采用HTML、CSS、JavaScript开发页面,实现页面展示、表单提交、图片上传、分页查询。前端实现轮播图展示公益宣传图片、活动列表分页、图片上传预览、评论点赞交互等效果,和后端接口进行数据交互。
三、系统需求分析
3.1 角色分析
根据数据库menu菜单表定义,系统包含三类核心角色:管理员、活动组织者、活动参与者,三类角色权限划分明确:
1. 管理员:最高权限,管理所有用户、活动类型、轮播图、新闻公告、论坛分类、举报记录,查看全部活动、报名、捐赠、招募信息,拥有新增、修改、删除、审核权限,维护系统基础配置;
2. 活动组织者:环保公益组织账号,可以发布公益活动、发布环保培训、发布物资捐赠项目、发布志愿者招募信息,审核本组织下的活动报名、捐赠申请、志愿者申请,查看活动反馈;
3. 活动参与者(志愿者):普通用户,可以浏览公益活动、在线报名、申请志愿者、提交物资捐赠、阅读环保培训、发布环保日记、在论坛发帖评论、收藏内容、提交活动反馈,无法发布活动信息。
3.2 功能需求分析
结合数据库表结构,系统功能模块划分如下:
1. 用户模块:用户注册登录,分为组织者注册、参与者注册;管理员账号后台创建;密码存储、头像上传;
2. 公益活动模块(gongyihuodong):组织者新增公益活动,填写活动名称、类型、时间、地点、详情、封面图片;前端展示活动列表、详情,支持点赞、收藏、评论;参与者提交活动报名;组织者审核报名信息;
3. 活动报名模块(huodongbaoming):保存报名人账号、姓名、手机号、报名时间、审核状态(待审核/通过),支持审核回复;
4. 志愿者招募模块(zhaomuxinxi、zhaomushenqing):组织者发布招募信息,填写招募人数、时间、招募简介;参与者提交招募申请,填写个人简介;组织者审核申请;
5. 物资捐赠模块(wuzijuanzeng、juanzengxinxi):组织者发布物资捐赠需求,说明物资名称、需求详情;参与者提交捐赠登记,填写捐赠物资数量、图片;组织者审核捐赠信息;
6. 环保培训模块(huanbaopeixun):组织者发布环保科普培训资料,上传图片、视频、文字资料,作为环保宣传载体,用户浏览、评论、收藏;
7. 环保日记模块(huanbaoriji):参与者发布环保日记,上传实拍图片,记录自身环保行动,用于营造公益氛围;
8. 社交论坛模块(forum、forumtype、forumreport):划分论坛分类,用户发帖、匿名发帖、回复帖子;支持帖子举报,管理员查看举报记录并处理;
9. 评论模块(discussgongyihuodong、discusshuanbaopeixun、discusszhaomuxinxi):公益活动、环保培训、招募信息独立评论表,支持发表评论、管理员/组织者回复评论,点赞、踩、置顶评论;
10. 活动反馈模块(huodongfankui):参与者活动结束后提交反馈留言+图片,组织者查看反馈并回复;
11. 新闻公告模块(news、newstype):管理员发布环保新闻、系统公告,进行公益宣传;
12. 收藏模块(storeup):用户收藏公益活动、培训、招募信息,方便后续查看;
13. 系统配置模块(config):轮播图配置,首页宣传图片管理;菜单配置(menu表)维护不同角色的菜单权限;
14. 数据统计:统计活动报名人数、点击量、评论数量、收藏数量,在页面展示热度数据。
3.3 非功能需求
1. 性能需求:普通查询页面响应时间小于2秒,支持几十人同时在线访问;
2. 安全性需求:基于Token鉴权,不同角色只能访问权限内接口;表单校验,防止非法提交;
3. 易用性需求:页面布局简洁,操作流程简单,适合公益组织工作人员和普通志愿者使用;
4. 可扩展性需求:分层架构,后续可以增加公益时长、积分、在线捐款等功能。
四、系统数据库设计
4.1 数据库概述
数据库名称为springboot1h6h7836,数据库字符集utf8mb4,支持中文、长文本、图片路径存储。一共30余张数据表,数据表可以分为五大类:用户权限类、公益活动业务类、宣传内容类、互动评论类、系统基础配置类。下面对核心数据表进行说明。
4.2 核心数据表说明
1. users管理员表:存储管理员账号密码,字段username、password、头像、角色;
2. huodongzuzhizhe活动组织者表:主键id、组织者号、密码、组织者姓名、性别、联系电话、头像;组织者号作为关联字段,和公益活动、捐赠、招募表关联;
3. huodongcanyuzhe活动参与者表:参与者账号、密码、姓名、性别、手机号、头像,账号唯一;
4. gongyihuodong公益活动表:核心业务表,存储活动名称、活动类型、封面、活动时间、地点、活动介绍、详情、组织者号、已报名人数、点赞、踩、点击数、评论数、收藏数;
5. huodongbaoming活动报名表:记录报名关联的活动名称、参与者账号姓名手机、报名时间、审核状态、审核回复;sfsh字段标记待审核或者审核通过;
6. zhaomuxinxi招募信息表:招募名称、图片、简介、招募人数、招募起止时间、招募内容、组织者信息、热度字段;
7. zhaomushenqing招募申请表:参与者提交的志愿者申请,包含个人简介、申请时间、审核状态;
8. wuzijuanzeng物资捐赠表:组织者发布需要的捐赠物资项目,物资名称、捐赠说明、详情;
9. juanzengxinxi捐赠信息表:参与者提交捐赠记录,捐赠编号、物资数量、图片、审核状态;
10. huanbaopeixun环保培训表:培训标题、简介、图片、视频、文字内容,作为环保宣传素材;
11. huanbaoriji环保日记表:日记标题、图片、日记内容、日记日期、发布人账号姓名;
12. forum社交互动帖子表:帖子标题、内容、分类、发布用户、是否匿名、是否置顶、封面;关联forumtype论坛分类表;
13. forumreport帖子举报表:记录举报帖子、举报人、被举报人、举报原因、处理建议、处理状态;
14. 三张评论表 discussgongyihuodong、discusshuanbaopeixun、discusszhaomuxinxi:分别对应公益活动评论、环保培训评论、招募信息评论,结构统一,refid关联对应业务主键id,存储评论人、内容、回复、点赞踩数据;
15. news新闻公告表:新闻标题、简介、分类、图片、正文、点击、点赞收藏;newstype新闻分类表;
16. storeup收藏表:统一收藏表,tablename记录收藏属于哪一张业务表,refid对应业务id;
17. token表:存储登录token、用户id、角色、过期时间,用于身份校验;
18. config配置表:首页轮播图片配置;menu菜单表存储JSON格式菜单权限,控制不同角色后台侧边菜单。
4.3 实体关系说明
活动组织者和公益活动是一对多关系,一个组织者可以发布多条公益活动;公益活动和活动报名是一对多,一个活动有多条报名记录;公益活动对应多条评论;物资捐赠项目和捐赠申请一对多;招募信息和招募申请一对多;参与者可以提交多条报名、多条捐赠、多条招募申请、多条环保日记、多条帖子。评论表通过refid外键关联主业务表主键,实现评论和主体绑定。
五、系统功能实现
5.1 项目工程结构
项目基于SpringBoot标准Maven工程,包结构分层:entity实体层,对应数据库表实体;mapper映射层,MyBatis接口和xml;service业务层;controller控制层;utils工具类,包含Token生成工具、文件上传工具;resources目录存放application.yml配置文件、MyBatis映射文件、静态资源。文件上传路径配置upload目录,图片统一保存在upload文件夹,数据库只存储图片访问路径字符串。
5.2 用户登录与权限模块实现
用户分为三类账号,登录接口接收账号密码,后端根据账号判断属于管理员表、组织者表还是参与者表,校验密码;校验成功后生成Token,写入token数据表,设置过期时间,返回前端Token。前端保存Token,每次请求请求头携带token;拦截器统一拦截所有请求,校验token有效性,读取用户角色id,读取menu菜单里面配置的权限,判断用户是否允许访问当前接口。如果token过期或者不存在,直接返回未登录提示。
不同角色菜单由menu表里面的JSON配置控制,后端读取JSON动态渲染后台侧边菜单,实现权限动态配置,不需要修改代码即可调整菜单按钮权限。
5.3 公益活动管理模块实现
活动组织者登录后台,可以新增公益活动,表单提交活动名称、类型、时间、地点、详情,上传多张封面图片,后端接收图片上传到服务器upload目录,保存图片路径字符串到gongyihuodong表的fengmian字段。新增成功后活动对外展示。
前端公益活动列表分页查询,展示活动封面、名称、时间、地点、报名人数、点击量。点击进入详情页,展示完整活动介绍、评论区、收藏点赞按钮。参与者点击活动报名,提交表单,系统生成一条huodongbaoming记录,默认状态“待审核”。组织者后台查看报名列表,对报名记录审核,修改sfsh字段,填写审核回复。参与者可以在个人中心查看自己的报名审核结果。
5.4 志愿者招募模块实现
组织者发布招募信息,填写招募名称、人数、时间、招募详情,保存到zhaomuxinxi表。参与者查看招募详情,提交招募申请,填写个人简介,生成zhaomushenqing记录。组织者后台审核招募申请,标记通过或者驳回,填写审核意见。招募信息支持评论、收藏、点击计数。
5.5 物资捐赠模块实现
组织者发布物资捐赠需求(wuzijuanzeng),说明需要什么物资、用途。参与者浏览捐赠项目,提交捐赠登记,填写捐赠物资数量、上传凭证图片,生成juanzengxinxi捐赠记录,状态待审核。组织者审核捐赠信息,确认捐赠登记。该模块打通物资捐赠线上登记流程,方便公益组织统计物资来源。
5.6 环保宣传模块实现
环保宣传是本系统区别于普通活动报名系统的重点,分为三大宣传载体:环保培训、新闻公告、环保日记。
环保培训模块:组织者上传环保科普文章、图片、视频资料,发布环保培训内容,面向全体用户开放浏览,用户可以评论收藏,用于环保知识普及。
新闻公告模块:管理员发布环保新闻、行业通知、公益活动快讯,作为官方宣传窗口。
环保日记模块:参与者自主发布环保日记,记录垃圾分类、植树、清理垃圾等行动,上传实拍图片,分享个人环保实践,带动其他用户参与,营造线上环保氛围。
5.7 社区互动模块实现
论坛forum模块支持用户发帖、回复帖子,支持匿名发帖。帖子归属论坛分类forumtype。用户发现违规帖子可以提交forumreport举报记录,管理员后台查看举报列表,处理举报。同时公益活动、培训、招募各自独立评论表,评论支持回复、点赞、踩、置顶,每条点赞用户id存储在tuserids字段,避免同一用户重复点赞。
5.8 活动反馈模块实现
参与者参加完线下公益活动之后,可以提交huodongfankui反馈,填写留言内容、上传现场图片;组织者查看反馈信息,填写回复内容,收集活动改进意见,持续优化线下公益活动组织质量。
5.9 收藏与热度统计实现
storeup统一收藏表,用户点击收藏,新增一条收藏记录,tablename标记收藏的表名,refid对应id;取消收藏直接删除记录。同时公益活动、招募、培训表维护clicknum点击数、discussnum评论数、storeupnum收藏数字段,每次访问、评论、收藏时对应字段自增,前端展示热度,优先展示热门公益内容。
六、系统测试
6.1 测试环境
后端:SpringBoot 2.7,MySQL5.7;操作系统Windows;浏览器Chrome;测试方式:黑盒功能测试,人工测试页面功能、业务流程。
6.2 测试用例
|测试功能|测试步骤|预期结果|测试结果|
| ---- | ---- | ---- | ---- |
|组织者注册登录|填写组织者账号密码注册,登录系统|注册成功,登录成功,进入组织者后台菜单|通过|
|发布公益活动|组织者新增活动,上传封面,提交|活动保存成功,前端列表展示|通过|
|活动报名|参与者浏览活动,提交报名信息|生成报名记录,状态待审核|通过|
|报名审核|组织者打开报名列表,审核通过|报名状态更新,参与者可查看审核结果|通过|
|发布环保培训|组织者新增培训,上传图片文字|培训内容展示,支持评论|通过|
|提交物资捐赠|参与者打开捐赠项目,提交捐赠登记|捐赠记录生成,待审核|通过|
|帖子发帖、举报|参与者发帖,提交举报|帖子正常展示,举报记录进入后台|通过|
|评论点赞收藏|对公益活动发表评论、点赞、收藏|评论新增,点赞数、收藏数+1|通过|
|Token过期测试|长时间不操作,再次请求接口|提示登录失效,跳转登录页|通过|
6.3 测试结论
经过功能测试,系统各个业务流程可以正常流转,多角色权限控制生效,不同角色只能看到权限范围内菜单和操作按钮;数据表关联操作正常,新增、审核、删除、评论、收藏功能运行稳定,图片上传、分页查询、热度统计功能正常。系统满足环保公益活动管理和线上宣传的需求。同时系统存在一定局限,没有文件视频大文件分片上传、没有消息推送通知功能,后续可以优化。
七、总结与展望
7.1 总结
本文基于SpringBoot框架,结合MySQL数据库,设计实现了环保公益活动管理与宣传系统。系统围绕中小型环保公益组织真实业务场景,设计管理员、活动组织者、活动参与者三类角色,依托数据表完成公益活动发布、志愿者招募、物资捐赠登记审核、环保培训宣传、环保日记分享、论坛社区互动、活动反馈、评论点赞收藏等全套功能。
系统解决传统环保公益活动管理信息分散、人工登记效率低、宣传渠道匮乏的痛点,一方面实现公益活动、志愿者、捐赠物资数字化管理,减轻组织者线下统计工作量;另一方面搭建线上宣传阵地,依靠环保培训、新闻、用户日记、社区互动持续传播环保理念。系统轻量化,部署简单,适合民间小型环保公益团队使用。开发过程中完成需求分析、数据库设计、功能开发、功能测试,验证方案可行性。
7.2 展望
本系统目前完成基础业务功能,后续可以在多个方向迭代优化:
1. 增加消息通知模块,审核结果、新评论通过站内信通知用户;
2. 增加公益时长自动统计,参加活动后组织者确认时长,生成志愿者公益档案;
3. 增加图片视频压缩、分片上传,支持大体积环保宣传视频上传;
4. 接入小程序端,方便手机端快速报名、浏览活动;
5. 增加数据可视化大屏,统计年度活动数量、志愿者人数、捐赠物资总量;
6. 增加消息敏感词过滤,规范论坛评论、帖子内容,降低人工审核压力。
参考文献
[1] 王松.SpringBoot实战开发[M].北京:人民邮电出版社,2022.
[2] 黑马程序员.MyBatis从入门到精通[M].北京:清华大学出版社,2021.
[3] 张三.基于SpringBoot的志愿服务管理系统设计与实现[J].电脑知识与技术,2023,19(12):78-81.
[4] 李四.公益信息化平台的设计思路与研究[J].信息技术与信息化,2022(06):134-136.
[5] 周志明.深入理解Java虚拟机[M].北京:机械工业出版社,2020.
[6] 陈恒.MySQL数据库开发与实战[M].北京:电子工业出版社,2021.
如需定做或者获取更多资料,请联系QQ:375279829