修改readme
121
README.md
@@ -2,7 +2,7 @@
|
|||||||
<img alt="logo" src="https://image.mayongjian.cn/2024/07/03/1de3ee08e0a34ab6bf9a163d380fb596.png" style="width: 100px">
|
<img alt="logo" src="https://image.mayongjian.cn/2024/07/03/1de3ee08e0a34ab6bf9a163d380fb596.png" style="width: 100px">
|
||||||
</p>
|
</p>
|
||||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">HongShu v1.0</h1>
|
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">HongShu v1.0</h1>
|
||||||
<h4 align="center">基于SpringBoot+Vue前后端分离仿小红书项目</h4>
|
<h4 align="center">基于 SpringBoot + Vue 前后端分离的仿小红书项目</h4>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://gitee.com/Maverick_Ma/hongshu-admin/stargazers">
|
<a href="https://gitee.com/Maverick_Ma/hongshu-admin/stargazers">
|
||||||
<img src="https://gitee.com/Maverick_Ma/hongshu-admin/badge/star.svg?theme=dark"></a>
|
<img src="https://gitee.com/Maverick_Ma/hongshu-admin/badge/star.svg?theme=dark"></a>
|
||||||
@@ -16,9 +16,6 @@
|
|||||||
* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev/) 版本。
|
* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev/) 版本。
|
||||||
* 配套后端代码仓库地址 [HongShu](https://gitee.com/Maverick_Ma/hongshu.git)
|
* 配套后端代码仓库地址 [HongShu](https://gitee.com/Maverick_Ma/hongshu.git)
|
||||||
|
|
||||||
* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?source=5176.11533457&userCode=ojvsntx1)
|
|
||||||
* 腾讯云优惠券:[点我领取](https://curl.qcloud.com/efTJbNyi)
|
|
||||||
|
|
||||||
## 前端运行
|
## 前端运行
|
||||||
```bash
|
```bash
|
||||||
# 克隆项目
|
# 克隆项目
|
||||||
@@ -38,17 +35,6 @@ yarn dev
|
|||||||
# 前端访问地址 http://localhost:81
|
# 前端访问地址 http://localhost:81
|
||||||
```
|
```
|
||||||
|
|
||||||
## 用户端内置功能
|
|
||||||
1. 瀑布流展示笔记,懒加载笔记图片
|
|
||||||
2. 笔记分类查询,使用elastcsearch做关键词搜索查询笔记
|
|
||||||
3. 关键词使用elastcsearch做高亮查询
|
|
||||||
4. 动态展示,展示个人和好友动态
|
|
||||||
5. 支持私信聊天,关注用户,评论笔记,点赞笔记和点赞图片功能,收藏笔记功能
|
|
||||||
6. 使用websocket消息通知,用户发送的消息会实时通知,消息页面会实时收到当前用户未读消息数量
|
|
||||||
7. 双token登陆,使用redis做对象缓存
|
|
||||||
8. 发布和修改笔记功能,使用七牛云oss对象存储图片
|
|
||||||
9. 个人信息展示,展示当前用户发布的笔记和点赞收藏的笔记
|
|
||||||
|
|
||||||
## 管理端内置功能
|
## 管理端内置功能
|
||||||
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
|
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
|
||||||
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
|
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
|
||||||
@@ -68,58 +54,91 @@ yarn dev
|
|||||||
16. 在线构建器:拖动表单元素生成相应的HTML代码。
|
16. 在线构建器:拖动表单元素生成相应的HTML代码。
|
||||||
17. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
|
17. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
|
||||||
|
|
||||||
## 2.0版本实现中⚠️
|
## 2.0版本实现功能
|
||||||
1. 添加移动端版本
|
1. 添加移动端
|
||||||
2. 重构实现 SpringCloud 微服务架构版本
|
2. 重构实现 SpringCloud 微服务架构
|
||||||
3. 加入商城购物功能
|
3. 加入商城购物功能
|
||||||
4. 加入协同过滤算法优化首页推荐功能
|
4. 加入推荐算法,优化内容推荐和用户推荐功能
|
||||||
5. 使用 MQ+Redis 优化点赞、收藏、浏览功能
|
5. 使用 MQ+Redis 优化点赞、收藏、浏览功能
|
||||||
|
6. 支持七牛云、阿里、腾讯、Minio等多种oss对象存储方式
|
||||||
|
7. 笔记内容支持视频和live图
|
||||||
|
|
||||||
- 如有项目问题、部署问题可联系微信:coder_xiaomage
|
#### ⚠️如有【项目问题】或【部署需求】可联系微信:coder_xiaomage
|
||||||
|
|
||||||
## 在线体验
|
## 演示站(2.0版)
|
||||||
* 因无服务器暂无体验地址,后续会采购演示服务器,也感谢小伙伴打赏支持❤️。
|
- web端 ➡️ [点我体验](http://47.95.205.22)
|
||||||
|
- admin端 ➡️ [点我体验](http://47.95.205.22/admin/)
|
||||||
<img src="src/assets/images/pay.png" style="width: 200px"/>
|
- app端 ➡️ [点我体验](http://47.95.205.22/app/)
|
||||||
|
- 文档及资料会暂时放到我的个人博客:[点我进入](https://mayongjian.cn)
|
||||||
* 文档及资料会暂时放到我的个人博客:[点我进入](https://mayongjian.cn)
|
* 由于服务器资源有限,首次加载可能缓慢一些。
|
||||||
|
* 同时为优化服务器也感谢小伙伴们打赏支持❤️。
|
||||||
|
<img src="src/assets/images/reward.png" style="width: 50px heihgt: 50px"/>
|
||||||
|
|
||||||
## 视频演示
|
## 视频演示
|
||||||
[点击查看](https://www.bilibili.com/video/BV1QP8dekEGq/?spm_id_from=333.999.list.card_archive.click&vd_source=ec9224821314432ac6e12dc7d500d74b)
|
➡️ [点击查看](https://www.bilibili.com/video/BV1QP8dekEGq/?spm_id_from=333.999.list.card_archive.click&vd_source=ec9224821314432ac6e12dc7d500d74b)
|
||||||
|
|
||||||
|
|
||||||
## 演示图
|
## 演示图
|
||||||
|
### - web端:
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="src/assets/images/login.png"/></td>
|
<td><img src="src/assets/images/web/web-login.png"/></td>
|
||||||
<td><img src="src/assets/images/dashboard.png"/></td>
|
<td><img src="src/assets/images/web/web-dashboard.png"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="src/assets/images/search.png"/></td>
|
<td><img src="src/assets/images/web/web-search.png"/></td>
|
||||||
<td><img src="src/assets/images/trends.png"/></td>
|
<td><img src="src/assets/images/web/web-trends.png"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="src/assets/images/message.png"/></td>
|
<td><img src="src/assets/images/web/web-message.png"/></td>
|
||||||
<td><img src="src/assets/images/follow.png"/></td>
|
<td><img src="src/assets/images/web/web-follow.png"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="src/assets/images/publish.png"/></td>
|
<td><img src="src/assets/images/web/web-publish.png"/></td>
|
||||||
<td><img src="src/assets/images/user.png"/></td>
|
<td><img src="src/assets/images/web/web-user.png"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
</table>
|
||||||
<td><img src="src/assets/images/admin-login.png"/></td>
|
|
||||||
<td><img src="src/assets/images/data.png"/></td>
|
### - admin端:
|
||||||
</tr>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="src/assets/images/category.png"/></td>
|
<td><img src="src/assets/images/admin/admin-login.png"/></td>
|
||||||
<td><img src="src/assets/images/member.png"/></td>
|
<td><img src="src/assets/images/admin/admin-data.png"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="src/assets/images/note.png"/></td>
|
<td><img src="src/assets/images/admin/admin-category.png"/></td>
|
||||||
<td><img src="src/assets/images/album.png"/></td>
|
<td><img src="src/assets/images/admin/admin-member.png"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="src/assets/images/comment.png"/></td>
|
<td><img src="src/assets/images/admin/admin-note.png"/></td>
|
||||||
<td><img src="src/assets/images/log.png"/></td>
|
<td><img src="src/assets/images/admin/admin-album.png"/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="src/assets/images/admin/admin-comment.png"/></td>
|
||||||
|
<td><img src="src/assets/images/admin/admin-log.png"/></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
### - app端:
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td><img src="src/assets/images/app/app-login.png"/></td>
|
||||||
|
<td><img src="src/assets/images/app/app-index.png"/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="src/assets/images/app/app-trend.png"/></td>
|
||||||
|
<td><img src="src/assets/images/app/app-message.png"/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="src/assets/images/app/app-user.png"/></td>
|
||||||
|
<td><img src="src/assets/images/app/app-follow.png"/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="src/assets/images/app/app-hot.png"/></td>
|
||||||
|
<td><img src="src/assets/images/app/app-main.png"/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="src/assets/images/app/app-search.png"/></td>
|
||||||
|
<td><img src="src/assets/images/app/app-push.png"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
BIN
src/assets/images/admin/admin-album.png
Normal file
After Width: | Height: | Size: 2.0 MiB |
Before Width: | Height: | Size: 781 KiB After Width: | Height: | Size: 781 KiB |
Before Width: | Height: | Size: 440 KiB After Width: | Height: | Size: 440 KiB |
Before Width: | Height: | Size: 416 KiB After Width: | Height: | Size: 416 KiB |
Before Width: | Height: | Size: 635 KiB After Width: | Height: | Size: 635 KiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 853 KiB After Width: | Height: | Size: 853 KiB |
Before Width: | Height: | Size: 862 KiB After Width: | Height: | Size: 862 KiB |
Before Width: | Height: | Size: 2.0 MiB |
BIN
src/assets/images/app/app-follow.png
Normal file
After Width: | Height: | Size: 3.6 MiB |
BIN
src/assets/images/app/app-hot.png
Normal file
After Width: | Height: | Size: 1.0 MiB |
BIN
src/assets/images/app/app-index.png
Normal file
After Width: | Height: | Size: 2.7 MiB |
BIN
src/assets/images/app/app-login.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
src/assets/images/app/app-main.png
Normal file
After Width: | Height: | Size: 939 KiB |
BIN
src/assets/images/app/app-message.png
Normal file
After Width: | Height: | Size: 416 KiB |
BIN
src/assets/images/app/app-push.png
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
src/assets/images/app/app-search.png
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
src/assets/images/app/app-trend.png
Normal file
After Width: | Height: | Size: 986 KiB |
BIN
src/assets/images/app/app-user.png
Normal file
After Width: | Height: | Size: 2.5 MiB |
@@ -1,39 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="52px" height="45px" viewBox="0 0 52 45" version="1.1"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs>
|
|
||||||
<filter x="-9.4%" y="-6.2%" width="118.8%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1">
|
|
||||||
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
|
||||||
<feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
|
||||||
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
|
||||||
<feMerge>
|
|
||||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
|
||||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
|
||||||
</feMerge>
|
|
||||||
</filter>
|
|
||||||
<rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect>
|
|
||||||
<filter x="-4.2%" y="-2.5%" width="108.3%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4">
|
|
||||||
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
|
||||||
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
|
||||||
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<g id="配置面板" width="48" height="40" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
||||||
<g id="setting-copy-2" width="48" height="40" transform="translate(-1190.000000, -136.000000)">
|
|
||||||
<g id="Group-8" width="48" height="40" transform="translate(1167.000000, 0.000000)">
|
|
||||||
<g id="Group-5-Copy-5" filter="url(#filter-1)" transform="translate(25.000000, 137.000000)">
|
|
||||||
<mask id="mask-3" fill="white">
|
|
||||||
<use xlink:href="#path-2"></use>
|
|
||||||
</mask>
|
|
||||||
<g id="Rectangle-18">
|
|
||||||
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
|
|
||||||
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
|
|
||||||
</g>
|
|
||||||
<rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect>
|
|
||||||
<rect id="Rectangle-18" fill="#303648" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -1,39 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="52px" height="45px" viewBox="0 0 52 45" version="1.1"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs>
|
|
||||||
<filter x="-9.4%" y="-6.2%" width="118.8%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1">
|
|
||||||
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
|
||||||
<feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
|
||||||
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
|
||||||
<feMerge>
|
|
||||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
|
||||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
|
||||||
</feMerge>
|
|
||||||
</filter>
|
|
||||||
<rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect>
|
|
||||||
<filter x="-4.2%" y="-2.5%" width="108.3%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4">
|
|
||||||
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
|
||||||
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
|
||||||
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<g id="配置面板" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
||||||
<g id="setting-copy-2" transform="translate(-1254.000000, -136.000000)">
|
|
||||||
<g id="Group-8" transform="translate(1167.000000, 0.000000)">
|
|
||||||
<g id="Group-5" filter="url(#filter-1)" transform="translate(89.000000, 137.000000)">
|
|
||||||
<mask id="mask-3" fill="white">
|
|
||||||
<use xlink:href="#path-2"></use>
|
|
||||||
</mask>
|
|
||||||
<g id="Rectangle-18">
|
|
||||||
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
|
|
||||||
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
|
|
||||||
</g>
|
|
||||||
<rect id="Rectangle-18" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect>
|
|
||||||
<rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 342 KiB |
Before Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 731 KiB After Width: | Height: | Size: 731 KiB |
Before Width: | Height: | Size: 5.7 MiB After Width: | Height: | Size: 5.7 MiB |
Before Width: | Height: | Size: 467 KiB After Width: | Height: | Size: 467 KiB |
Before Width: | Height: | Size: 3.6 MiB After Width: | Height: | Size: 3.6 MiB |
Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 326 KiB |
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 304 KiB |
Before Width: | Height: | Size: 5.0 MiB After Width: | Height: | Size: 5.0 MiB |
Before Width: | Height: | Size: 1016 KiB After Width: | Height: | Size: 1016 KiB |
Before Width: | Height: | Size: 3.7 MiB After Width: | Height: | Size: 3.7 MiB |
Before Width: | Height: | Size: 244 KiB |