# 大三上期末设计-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
```
### 功能模块
- 登录模块,注册模块。简单的权限控制
- 文章详情,分类,标签
- 友链
- 富文本编辑
- 用户管理,找回密码
- 管理文章帖子,用户留言管理,友情链接管理,,个人信息修改
- 评论管理
- 在线聊天
- 新闻爬取和保存

## 项目演示
### 首页
#### 新闻展示和原网页


---
- 分为文章区,功能区,个人区等网站主要模块
- 各模块分配明了,更方便找到所需操作位置
- 用户可以根据需要选择自己想要浏览的模块

#### 文章分类
- 用户可按照意愿进行筛选所需信息

#### 标签
- 实现各大网站新闻快速浏览
- 添加有生活随记,诗词等附加模块

#### 友链

#### 投稿

#### 关于
当前项目说明页面

### 登陆
- 需用户输入正确账号密码
- 对账户密码格式做出限制


### 注册,找回密码
- 新账号完善账号名,密码,真实姓名,性别等个人信息
- 对每一类注册信息做出说明
- 信息格式规范化
#### 说明
> 技术说明:
>
> 注册用户时,会同时保存到两张表(新闻和私聊)
>
> 其中真实姓名用于修改密码时的凭据。
>
> 数据库中保存的密码为md5加盐
注册时会查询用户id是否可以使用,以及其他内容是否可行。后台有校验代码

### 后台
后台分为管理员后台和普通用户后台
#### 管理员后台
##### 内容管理
- 管理投稿并审核
- 整理新闻与投稿作品
- 管理用户交流,并处理违规评论
##### 新闻爬取
爬取的内容例子如下
```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"
}
.........................
.................
.....................
]
}
```

###### 说明
由于爬取的不稳定性,可能无法一次性成功爬取新闻。需要多次测试





##### 系统设置
- 个人信息设置
**这里可以上传头像**
- 密码重置


##### 用户管理
- 已注册用户信息设置
- 用户界面管理


##### 友情链接
- 友情链接添加管理


#### 普通用户后台
- 资料展示
- 资料修改
- 评论管理
- 个人信息完善



## 数据库
sql文件已经上传





## 在线聊天
可以检测当前有哪些用户登陆,会有弹窗提示用户上下线。选择用户可以聊天。
同时可以发布系统广播。





## 等待完善细节
- [ ] 添加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