修改readme

This commit is contained in:
mayongjian
2024-09-07 20:04:25 +08:00
parent 4432eaaea6
commit 23d2af84ad
34 changed files with 70 additions and 129 deletions

121
README.md
View File

@@ -2,7 +2,7 @@
<img alt="logo" src="https://image.mayongjian.cn/2024/07/03/1de3ee08e0a34ab6bf9a163d380fb596.png" style="width: 100px">
</p>
<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">
<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>
@@ -16,9 +16,6 @@
* 本仓库为前端技术栈 [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)
* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?source=5176.11533457&userCode=ojvsntx1)
* 腾讯云优惠券:[点我领取](https://curl.qcloud.com/efTJbNyi)
## 前端运行
```bash
# 克隆项目
@@ -38,17 +35,6 @@ yarn dev
# 前端访问地址 http://localhost:81
```
## 用户端内置功能
1. 瀑布流展示笔记,懒加载笔记图片
2. 笔记分类查询使用elastcsearch做关键词搜索查询笔记
3. 关键词使用elastcsearch做高亮查询
4. 动态展示,展示个人和好友动态
5. 支持私信聊天,关注用户,评论笔记,点赞笔记和点赞图片功能,收藏笔记功能
6. 使用websocket消息通知用户发送的消息会实时通知消息页面会实时收到当前用户未读消息数量
7. 双token登陆使用redis做对象缓存
8. 发布和修改笔记功能使用七牛云oss对象存储图片
9. 个人信息展示,展示当前用户发布的笔记和点赞收藏的笔记
## 管理端内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
@@ -68,58 +54,91 @@ yarn dev
16. 在线构建器拖动表单元素生成相应的HTML代码。
17. 连接池监视监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈。
## 2.0版本实现中⚠️
1. 添加移动端版本
2. 重构实现 SpringCloud 微服务架构版本
## 2.0版本实现功能
1. 添加移动端
2. 重构实现 SpringCloud 微服务架构
3. 加入商城购物功能
4. 加入协同过滤算法优化首页推荐功能
4. 加入推荐算法优化内容推荐和用户推荐功能
5. 使用 MQ+Redis 优化点赞、收藏、浏览功能
6. 支持七牛云、阿里、腾讯、Minio等多种oss对象存储方式
7. 笔记内容支持视频和live图
- 如有项目问题、部署问题可联系微信coder_xiaomage
#### ⚠️如有项目问题】或【部署需求】可联系微信coder_xiaomage
## 在线体验
* 因无服务器暂无体验地址,后续会采购演示服务器,也感谢小伙伴打赏支持❤️。
<img src="src/assets/images/pay.png" style="width: 200px"/>
* 文档及资料会暂时放到我的个人博客:[点我进入](https://mayongjian.cn)
## 演示站2.0版)
- web端 ➡️ [点我体验](http://47.95.205.22)
- admin端 ➡️ [点我体验](http://47.95.205.22/admin/)
- app端 ➡️ [点我体验](http://47.95.205.22/app/)
- 文档及资料会暂时放到我的个人博客:[点我进入](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>
<tr>
<td><img src="src/assets/images/login.png"/></td>
<td><img src="src/assets/images/dashboard.png"/></td>
<td><img src="src/assets/images/web/web-login.png"/></td>
<td><img src="src/assets/images/web/web-dashboard.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/search.png"/></td>
<td><img src="src/assets/images/trends.png"/></td>
<td><img src="src/assets/images/web/web-search.png"/></td>
<td><img src="src/assets/images/web/web-trends.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/message.png"/></td>
<td><img src="src/assets/images/follow.png"/></td>
<td><img src="src/assets/images/web/web-message.png"/></td>
<td><img src="src/assets/images/web/web-follow.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/publish.png"/></td>
<td><img src="src/assets/images/user.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/admin-login.png"/></td>
<td><img src="src/assets/images/data.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/category.png"/></td>
<td><img src="src/assets/images/member.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/note.png"/></td>
<td><img src="src/assets/images/album.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/comment.png"/></td>
<td><img src="src/assets/images/log.png"/></td>
<td><img src="src/assets/images/web/web-publish.png"/></td>
<td><img src="src/assets/images/web/web-user.png"/></td>
</tr>
</table>
### - admin端
<table>
<tr>
<td><img src="src/assets/images/admin/admin-login.png"/></td>
<td><img src="src/assets/images/admin/admin-data.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/admin/admin-category.png"/></td>
<td><img src="src/assets/images/admin/admin-member.png"/></td>
</tr>
<tr>
<td><img src="src/assets/images/admin/admin-note.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>
</table>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

View File

Before

Width:  |  Height:  |  Size: 781 KiB

After

Width:  |  Height:  |  Size: 781 KiB

View File

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 440 KiB

View File

Before

Width:  |  Height:  |  Size: 416 KiB

After

Width:  |  Height:  |  Size: 416 KiB

View File

Before

Width:  |  Height:  |  Size: 635 KiB

After

Width:  |  Height:  |  Size: 635 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

Before

Width:  |  Height:  |  Size: 853 KiB

After

Width:  |  Height:  |  Size: 853 KiB

View File

Before

Width:  |  Height:  |  Size: 862 KiB

After

Width:  |  Height:  |  Size: 862 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@@ -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

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

View File

Before

Width:  |  Height:  |  Size: 731 KiB

After

Width:  |  Height:  |  Size: 731 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 MiB

After

Width:  |  Height:  |  Size: 5.7 MiB

View File

Before

Width:  |  Height:  |  Size: 467 KiB

After

Width:  |  Height:  |  Size: 467 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 3.6 MiB

View File

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 326 KiB

View File

Before

Width:  |  Height:  |  Size: 304 KiB

After

Width:  |  Height:  |  Size: 304 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 MiB

After

Width:  |  Height:  |  Size: 5.0 MiB

View File

Before

Width:  |  Height:  |  Size: 1016 KiB

After

Width:  |  Height:  |  Size: 1016 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB