✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
文末获取项目下载方式
一、项目背景介绍:
基于SpringBoot的公益慈善平台是一款致力于为社会所有人带来便利服务的B/S架构的应用程序。随着网络技术的发展,公益慈善网站已经逐渐成为公益行动的主要信息载体。在这个平台上,主要有管理员、捐赠者和志愿者三种角色,他们各自拥有不同的权限和功能。
管理员作为平台的运营者,主要负责管理整个平台的运行情况,包括用户信息管理、项目管理等。而捐赠者则是为公益事业做出贡献的人,他们可以浏览平台上的各种公益项目,并选择自己感兴趣的项目进行捐赠。此外,他们还可以在平台上查看自己的捐赠记录和捐赠的项目进展情况。
志愿者是公益事业的重要推动力,他们在平台上可以找到自己感兴趣的志愿者活动,并进行报名参与。同时,他们也可以在平台上查看自己的志愿服务记录和参与的活动信息。
在技术实现上,该平台采用了SpringBoot整合Mybatis、Redis等主流开发技术,以提供高效、稳定的服务。此外,还整合了支付宝支付、websocket聊天室等功能,为用户提供更便捷的操作体验。
二、项目技术简介:
三、系统功能模块介绍:
四、数据库设计:
1:article(article)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 文章ID |
user_id | int | NULL | 作者用户ID |
title | varchar | NULL | 文章标题 |
content | longtext | NULL | 文章正文 |
status | int | NULL | 文章状态:发布(1),回收站(2) |
read_count | int | NULL | 阅读量 |
img | varchar | NULL | 封面图片 |
type | int | NULL | 类型:文章由普通用户发布(1),活动由管理员发表(2) |
is_checked | int | NULL | 文章审核,0:未审核,1:审核通过,2:审核不通过 |
info | varchar | NULL | 审核未通过返回的消息 |
gmt_create | datetime | NULL | 数据插入时间,即发布时间 |
gmt_modified | datetime | NULL | 更新时间 |
2:article_activity(article_activity)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
article_id | int | NULL | 文章的ID |
activity_article_id | int | NULL | 活动文章的ID |
gmt_create | datetime | NULL | 插入数据的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
3:certification(certification)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
user_id | int | NULL | 用户ID |
name | varchar | NULL | 机构名称 |
leader_name | varchar | NULL | 领导者姓名 |
id_card | varchar | NULL | 领导者身份证号码 |
type | varchar | NULL | 机构类型 |
show_name | varchar | NULL | 认证称号(XXX官方账户) |
prove_img | varchar | NULL | 单位证明/营业执照图片地址 |
id_card_img0 | varchar | NULL | 领导者身份证照片(反面) |
id_card_img1 | varchar | NULL | 领导者身份证照片(正面) |
is_checked | int | NULL | 审核(0),成功(1),失败(2) |
info | varchar | NULL | 认证未通过返回的消息 |
gmt_create | datetime | NULL | 插入数据的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
4:comment(comment)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
user_id | int | NULL | 发表评论用户的ID |
user_name | varchar | NULL | 用户名 |
img | varchar | NULL | 用户头像地址 |
target_id | int | NULL | 目标ID:可以是项目ID 、文章ID |
type | int | NULL | 类型:项目(1),文章(2) |
content | varchar | NULL | 评论内容 |
reply_id | int | NULL | 回复评论的ID |
is_first | int | NULL | 是否置顶:置顶(1),不置顶(0) |
gmt_create | datetime | NULL | 插入数据的时间,即发表评论的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
5:feedback(feedback)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
user_id | int | NULL | 反馈的用户的ID |
user_name | varchar | NULL | 用户名 |
img | varchar | NULL | 用户头像地址 |
content | varchar | NULL | 评论内容 |
gmt_create | datetime | NULL | 插入数据的时间,即发表评论的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
6:link(link)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
name | varchar | NULL | 名称 |
target_url | varchar | NULL | 链接地址 |
type | int | NULL | 类型:顶部菜单(1),友情链接(2) |
gmt_create | datetime | NULL | 插入数据的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
7:message(message)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
receive_user_id | int | NULL | 接收消息的用户ID |
sent_user_id | int | NULL | 发送消息的用户ID |
type | int | NULL | 类型:项目评论(1)/文章评论(2)/审核 (3) |
target_id | int | NULL | 目标ID:公益项目/文章ID |
title | varchar | NULL | 标题 |
content | varchar | NULL | 消息的内容 |
is_read | int | NULL | 是否已读:未读(0),已读(1) |
gmt_create | datetime | NULL | 插入数据的时间,即发表评论的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
sent_user_img | varchar | NULL | 发送消息的用户头像 |
8:message_board(message_board)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
name | varchar | NULL | 昵称 |
varchar | NULL | 邮件地址 | |
content | varchar | NULL | 留言内容 |
gmt_create | datetime | NULL | 插入数据的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
9:project(project)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
name | varchar | NULL | 名称 |
background | varchar | NULL | 背景 |
target | varchar | NULL | 目的 |
theme | varchar | NULL | 主题 |
sponsor | varchar | NULL | 赞助 |
content | longtext | NULL | 内容 |
img | varchar | NULL | 公益项目的封面 |
gmt_create | datetime | NULL | 插入数据的时间 |
gmt_modified | datetime | NULL | 更新的时间 |
10:user(user)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
name | varchar | NULL | 姓名 |
password | varchar | NULL | 密码 |
varchar | NULL | 邮箱地址 | |
phone | char | NULL | 手机号码 |
address | varchar | NULL | 地址 |
sex | int | NULL | 性别:女(0)男(1) |
birthday | date | NULL | 出生年月 |
career | varchar | NULL | 职业 |
certification_id | int | NULL | 认证类型ID |
img | varchar | NULL | 头像地址 |
status | int | NULL | 状态:正常(0),封禁(1) |
gmt_create | datetime | NULL | 注册时间 |
gmt_modified | datetime | NULL | 最近更新 |
role | int | NULL | 角色:普通用户(0)管理员(1) |
五、功能模块:
系统主页:浏览系统主页、留言、浏览公益项目、浏览平台活动、浏览求助文章,每次浏览都会累积访问量
用户登录注册:填写用户信息进行账号注册(邮箱验证码)、使用邮箱密码进行登录、忘记密码(邮箱验证码并重置)、退出登录
公益项目:包括项目标题、内容(Markdown)、封面、背景、主题、目的、赞助
平台活动:
留言:
普通用户后台:| 仪表盘 | 数据统计、最新活动、最新求助文章 |
| ---------- | ------------------------------------------------------------ |
| 求助文章 | 标题、编写求助文章(Markdown编辑器)、上传封面、关联平台活动、文章搜索、重新编辑 |
| 审核队列 | 等待审核、已审核 |
| 文章回收站 | 删除文章后自动加入回收站,可再次删除、移出回收站 |
| 评论管理 | 置顶评论、删除评论、查询详情 |
| 通知消息 | 查看消息、全部已读 |
管理员用户管理:
管理员公益项目发布:
管理员认证审核:
六、代码示例:
/**
* 发布求助文章
*/
@PostMapping("/publishArticle")
@ResponseBody
public String publishArticle(String title, String content, String imgPath, Integer activityId) {
// 生成文章对象
Article article = Article.builder()
.title(title).content(content).userId(loginUser.getId())
.type(TypeStatus.ARTICLE).readCount(0).status(TrashStatus.NOT_IN).isChecked(CheckStatus.WAIT)
.gmtCreate(new Date()).gmtModified(new Date())
.build();
// 为文章设置封面,如果为空就生成随机封面
article.setImg(StringUtils.isEmpty(imgPath) ? OssUtils.getRandomFace() : imgPath);
if (articleService.insert(article)) {
if (activityId != -1) {
articleService.insertArticleActivity(article.getId(), activityId);
logger.info("【成功】:添加文章活动");
}
result.setCode(200);
logger.info("【成功】:添加文章");
} else {
result.setCode(500);
logger.info("【失败】:添加文章");
}
return JSONObject.toJSONString(result);
}
/**
* 更新文章
*/
@PostMapping("/updateArticle")
@ResponseBody
public String updateArticle(Integer id, String title, String content, String imgPath, int activityId) {
// 生成文章对象
Article article = Article.builder()
.id(id).title(title).content(content).status(TrashStatus.NOT_IN).isChecked(CheckStatus.WAIT)
.gmtModified(new Date())
.build();
// 为文章设置封面,如果为空就生成随机封面
article.setImg(StringUtils.isEmpty(imgPath) ? OssUtils.getRandomFace() : imgPath);
if (articleService.update(article)) {
if (activityId != -1) {
// 获取原来参加的活动
Article activity = articleService.getActivityByArticleId(id);
if (activity == null || activity.getId() != activityId) {
// 删除参与的活动
articleService.deleteArticleActivity(id);
// 添加新的活动
articleService.insertArticleActivity(article.getId(), activityId);
logger.info("【成功】:更新文章活动");
}
}
result.setCode(200);
logger.info("【成功】:更新文章");
} else {
result.setCode(500);
logger.info("【失败】:更新文章");
}
return JSONObject.toJSONString(result);
}
/**
* 将文章移到回收站
*/
@GetMapping("/putIntoTrash")
public String putIntoTrash(@RequestParam("id") Integer id, @RequestParam("checked") Integer checked) {
// 获取文章
Article article = articleService.getById(id);
if (article.getType() == TypeStatus.ACTIVITY) {
logger.info("【失败】:将文章移到回收站,类型错误");
return "error/400";
}
if (article.getUserId() != loginUser.getId()) {
logger.info("【失败】:将文章移到回收站,无权限");
return "error/401";
}
article.setStatus(TrashStatus.IS_IN);
if (articleService.update(article)) {
logger.info("【成功】:将文字移到回收站");
} else {
logger.info("【失败】:将文字移到回收站");
}
return "redirect:/my-articles?checked=" + checked;
}
七、项目总结:
之前在教材内容读书过程中开发设计技术专业知识,对研究过程的认知,对开发设计设计课程学习,及其如何有效开展系统的市场分析和设计。老师还选了更具有标志性管理方案系统来解读教学过程,课下安排工作使们进行练习。在这段时间,老师还应当掌握系统地完成和测试。应对餐厅点餐管理系统的开发,的脑海里的确有一个清晰的认知。在系统制做及配套文本文件撰写中,按照软件开发流程一步步做好本职工作。
从系统的角度看,依据餐厅点餐管理系统生产,其艰难在于功能清楚、系统构造设计、设计使用性能数据库系统、挑选核心技术进行系统功能等,这种都是自己的难题。针对这一艰难,实行了一些防范措施。当也不知道系统的功能时,在网上找到很多相似的系统,做好记录了一些系统的一般功能,并用了这一系统的高效功能的一部分。除此之外,在在网络上得到了很多关于系统设计的前提知识,包含系统模块划分、设计规范、数据库表的设计和创建,及其程序流程编码的专业技能知识,包含撰写与使用数据和信息加上、删掉和变更编码控制器。在系统序号进行相关功能后,认真的试了系统中所有功能,最后发现自己研发的系统符合规定,能接受。系统功能与系统剖析设计高度一致,系统质量稳定。为应对客户的实际操作不正确,还设有不恰当反馈机制,系统性能稳定。唯一的最大的缺点是系统数据报表的设计不健全,字段名称相匹配的引用类型不正确,一部分系统编码很多地方并没有注解,编码不足简易。
从文本文件的角度看,依据基于SpringBoot的公益慈善平台生产后,应叙述生产过程的需求,包含怎样进行数据分析报告、怎样进行系统设计及其系统功能的具体运作实际效果。在这期间,用了接近一个月的时间来做。要实现院校标准化的文档排版标准,多次在老师的建议下学习办公软件使用和排版设计设计。坚持就是收益。经过长时间的的撰写和优化,的文档终于完成。
总而言之,尽管制做经历了太多阶段,但如果认真完成这件事情,们将在每一个环节得到许多知识,在每一个环节的操作过程中锻练们自己的实践技能。根据该项目的制做,开始明白,许多知识不但来源于书籍,来源于教师在课堂教学中讲的知识,还来源于各种网络学习平台和社会实践。到现在为止,将继续努力,维持新知识的深入学习习惯性
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看获取项目下载链接,博主联系方式
链接点击直达:下载链接