# 大三上期末设计-cms新闻发布系统 **Repository Path**: birdflyiot/cms-news ## Basic Information - **Project Name**: 大三上期末设计-cms新闻发布系统 - **Description**: 大三上学期的期末设计,简单的新闻发布cms系统 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-03-04 - **Last Updated**: 2022-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大三上期末设计 ## 小组成员信息 软件18-2班 第三小组 | 成员 | 姓名 | 学号 | 工作内容 | | ---- | ------ | ---------- | ---------------------------------------------------------- | | 组长 | 黄波 | 1808104049 | 代码架构设计。爬虫,在线聊天,新闻相关代码编写,前后端整合 | | 组员 | 胡淇番 | 1803101049 | html(主要),user相关代码,管理admin代码编写 | | 组员 | 赵海旭 | 1801113061 | html,文档编写(主要) | | 组员 | 贾润东 | 1803101050 | 文档编写,数据库设计 | 实现了要求的:**信息后端校验**,**爬虫**,**在线聊天**,**CMS**,**文件上传(头像)**。 ## 介绍 大三上学期的期末设计,一个简单的新闻发布系统。 本课题遵循软件工程的理论,以及需求分析、系统设计、编码、测试这些软件生命周期。本系统开发采用SpringBoot框架开发,Spring框架提供了构建 Web 应用程序的全功能MVC模块,主要由DispatcherServlet、处理器映射(HandlerMapping)、处理器(Controller)、视图解析器(ViewResolver)、视图(View)组成。DispatcherServlet是整个SpringMVC的核心。它负责接收HTTP请求组织协调SpringMVC的各个组成部分。主要采用Java编程语言,MySQL数据库。 根据需求调研结果确定本新闻信息发布系统主要包括以下功能模块,**前端新闻查看,新闻多级评论,新闻发布以及crud,新闻爬取,用户crud,新闻投稿,和其他在线用户聊天。** 其中后台分为**管理员后台和普通用户后台**。 1. 管理员可以发布和爬取新闻,对用户进行相关管理。以及管理新闻投稿,修改自己的信息。 2. 普通用户管理可以管理自己的留言,修改自己的信息等。 ### 技术栈 1. SpringBoot 4. AmazeUI “妹子UI” 5. Thymeleaf 6. Druid数据源 8. Mybatis 6. hutools(用于http爬取) ```xml spring-boot-starter-websocket hutool-all gson log4j lombok mybatis-spring-boot-starter druid spring-boot-starter-jdbc spring-boot-starter-thymeleaf spring-boot-starter-web mysql-connector-java spring-boot-starter-test ``` ### 功能模块 - 登录模块,注册模块。简单的权限控制 - 文章详情,分类,标签 - 友链 - 富文本编辑 - 用户管理,找回密码 - 管理文章帖子,用户留言管理,友情链接管理,,个人信息修改 - 评论管理 - 在线聊天 - 新闻爬取和保存 ![](https://images.gitee.com/uploads/images/2020/1210/003325_9adb4c37_4865385.png) ## 项目演示 ### 首页 #### 新闻展示和原网页 ![](https://img-blog.csdnimg.cn/2020122711064139.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201227110640998.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) --- - 分为文章区,功能区,个人区等网站主要模块 - 各模块分配明了,更方便找到所需操作位置 - 用户可以根据需要选择自己想要浏览的模块 ![](https://img-blog.csdnimg.cn/20201226210709217.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) #### 文章分类 - 用户可按照意愿进行筛选所需信息 ![](https://img-blog.csdnimg.cn/20201226210709113.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) #### 标签 - 实现各大网站新闻快速浏览 - 添加有生活随记,诗词等附加模块 ![](https://img-blog.csdnimg.cn/20201226210709110.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) #### 友链 ![](https://img-blog.csdnimg.cn/20201227113021703.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) #### 投稿 ![](https://img-blog.csdnimg.cn/20201227113021717.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) #### 关于 当前项目说明页面 ![](https://img-blog.csdnimg.cn/20201227113021708.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ### 登陆 - 需用户输入正确账号密码 - 对账户密码格式做出限制 ![](https://img-blog.csdnimg.cn/20201226210747862.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210747887.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ### 注册,找回密码 - 新账号完善账号名,密码,真实姓名,性别等个人信息 - 对每一类注册信息做出说明 - 信息格式规范化 #### 说明 > 技术说明: > > 注册用户时,会同时保存到两张表(新闻和私聊) > > 其中真实姓名用于修改密码时的凭据。 > > 数据库中保存的密码为md5加盐 注册时会查询用户id是否可以使用,以及其他内容是否可行。后台有校验代码 ![](https://img-blog.csdnimg.cn/20201226210747837.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ### 后台 后台分为管理员后台和普通用户后台 #### 管理员后台 ##### 内容管理 - 管理投稿并审核 - 整理新闻与投稿作品 - 管理用户交流,并处理违规评论 ##### 新闻爬取 爬取的内容例子如下 ```json { "version": "https://jsonfeed.org/version/1", "title": "新浪新闻", "description": "新浪全球实时新闻直播", "items": [ { "id": 1936383, "content_html": "", "url": "https://finance.sina.cn/7x24/2020-12-19/detail-iiznezxs7786688.d.html", "title": "【北京:中风险地区底商全部关闭】12月19日,北京市第188场新冠肺炎疫情防控工作新闻发布会召开。自2020年12月19日起将朝阳区汉庭酒店大山子店(包括底商)划定为中风险地区。北京将针对疫情风险等级变化,及时强化各项防控措施。其中包括,全部关闭中风险地区底商,周边集体单位、小区、服务业场所等严格出入登记、加强测温验码。(北京青年报)", "date_modified": "2020-12-19T07:26:58.000Z" }, { "id": 1936382, "content_html": "", "url": "https://finance.sina.cn/7x24/2020-12-19/detail-iiznezxs7786103.d.html", "title": "【北京:朝阳一确诊病例曾到昌平天通苑 已摸排25名密接 核酸均为阴性】12月19日,北京市第188场新冠肺炎疫情防控工作新闻发布会召开,北京市昌平区副区长佟立志表示,朝阳区一名确诊病例曾在14日23时许到天通苑南街道天通苑西一区停留,次日7点离开,针对这一情况,昌平区迅速开展流调,全面划定密接范围,已经摸排该区管理的密接25人,次密接者21人,均已集中观察。对上述人员完成第一次核酸检测,结果均为阴性。(北京青年报)", "date_modified": "2020-12-19T07:23:45.000Z" }, { "id": 1936381, "content_html": "", "url": "https://finance.sina.cn/7x24/2020-12-19/detail-iiznezxs7786063.d.html", "title": "【苗圩谈新时期产业链升级:要自主创新,同时绝不能搞“关门主义”】工信部原部长苗圩表示,新时期要着力推动制造业转型升级,增强产业链、供应链自主可控的能力。这一过程中要处理好自主创新和开放合作的关系。要把关键核心技术掌握在自己手中,不断提升自主创新能力,尽快解决一批“卡脖子”问题,同时要在开放的条件下发展自己,绝对不能搞“关门主义”,不能放弃、排斥国际合作,要在各领域加强国际合作。还要进一步改善营商环境,对各类企业一视同仁,使企业找到归属感和获得感。(中新社)", "date_modified": "2020-12-19T07:23:31.000Z" }, { "id": 1936380, "content_html": "", "url": "https://finance.sina.cn/7x24/2020-12-19/detail-iiznezxs7786011.d.html", "title": " 【全球单日新增新冠病例71.77万例 美国新增24.97万例】美国霍普金斯大学的疫情统计数据显示,12月18日全天,全球新增新冠肺炎确诊病例71.77万例。其中,美国新增新冠肺炎确诊病例24.97万例,创单日新高。截至目前,全球累计确诊7567万例,累计死亡167.48万例,累计确诊国家和地区数191个。", "date_modified": "2020-12-19T07:23:07.000Z" } ......................... ................. ..................... ] } ``` ![](https://img-blog.csdnimg.cn/20201226210811873.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ###### 说明 由于爬取的不稳定性,可能无法一次性成功爬取新闻。需要多次测试 ![](https://img-blog.csdnimg.cn/20201226210811909.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210811904.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210811926.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210811987.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/2020122621081219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ##### 系统设置 - 个人信息设置 **这里可以上传头像** - 密码重置 ![](https://img-blog.csdnimg.cn/20201226210824223.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210824216.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ##### 用户管理 - 已注册用户信息设置 - 用户界面管理 ![](https://img-blog.csdnimg.cn/2020122621083899.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210838151.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ##### 友情链接 - 友情链接添加管理 ![](https://img-blog.csdnimg.cn/20201226210847809.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210847814.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) #### 普通用户后台 - 资料展示 - 资料修改 - 评论管理 - 个人信息完善 ![](https://img-blog.csdnimg.cn/20201226210859619.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210859620.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210859628.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ## 数据库 sql文件已经上传 ![](https://images.gitee.com/uploads/images/2020/1129/005450_506873f0_4865385.png) ![](https://img-blog.csdnimg.cn/20201226210910725.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210910833.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210910861.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/2020122621091121.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ## 在线聊天 可以检测当前有哪些用户登陆,会有弹窗提示用户上下线。选择用户可以聊天。 同时可以发布系统广播。 ![](https://img-blog.csdnimg.cn/20201226210920244.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210920285.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210920290.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210920288.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20201226210920287.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RhdmlkU2hhcmNo,size_16,color_FFFFFF,t_70) ## 等待完善细节 - [ ] 添加Markdown编辑器 - [ ] 持久层框架换成mybatis-plus - [ ] 代码全部迭代为[人人开源](https://gitee.com/renrenio/renren-fast?_from=gitee_search) - [ ] 加入redis(验证码) - [ ] 对爬取的新闻进行审核发布,而不是一次性全部发布 - [ ] 文章标签应该是选择不是自己填写(涉及到数据库,需要新添加一张表来存储标签),同时前端也要修改代码 ### 已知bug 1. 首页没有下一页应该把“下一页”变灰 2. 用户管理处,调整性别错误 3. 登陆后,右上无法对齐 4. 新闻爬取有时无法成功 5. 单点登录(新闻和私聊页面只需要登陆一次)失败。但是统一退出成功实现。 ## 鸣谢 1. [wangEditor](http://www.wangeditor.com/) 2. 部分代码参考了李仁密老师的[小而美的个人博客项目](https://edu.51cto.com/course/11433.html) 3. 爬取代码参考https://github.com/ruanyf