Skip to content

Commit 3b471fb

Browse files
committed
更新README.md,重构项目描述和功能模块,添加快速开始和部署说明;调整.idea配置文件,修复模块名称和路径;删除不必要的jar文件,优化项目结构。
1 parent 9e14b01 commit 3b471fb

38 files changed

+609
-617
lines changed

.idea/compiler.xml

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 379 additions & 550 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 213 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,213 @@
1-
#### SpringBoot+Uniapp2022全新仿抖音短视频
2-
3-
4-
5-
#### APP模块:
6-
7-
​ 1、用户模块
8-
​ 2、视频模块
9-
​ 3、粉丝模块
10-
​ 4、留言评论模块
11-
​ 5、消息模块
12-
13-
#### 项目架构图:
14-
15-
![qRTCJ.png](https://s1.328888.xyz/2022/05/14/qRTCJ.png)
16-
17-
18-
19-
#### 开发流程:
20-
21-
###### 1)根据前端界面构建后端项目:
22-
数据库的选型,进行服务端通信测试
23-
24-
工程构建,使用逆向工程生成实体类和Mapper
25-
26-
使用knife4j实现接口文档
27-
28-
###### 2)开发用户业务模块
29-
使用腾讯云短信完成登录模块的一键登录功能(未注册会直接进行注册)
30-
使用Redis进行验证码的存储,Hibernate参数校验扩展
31-
MinIO实现用户修改头像与背景图
32-
33-
###### 3)开发短视频业务模块
34-
使用UniCloud云端存储视频
35-
实现短视频的刷新、查询、分页、点赞、评论,转公开或私密
36-
37-
###### 4)开发粉丝业务模块
38-
实现关注、粉丝、互粉等业务的实现
39-
###### 5)开发评论业务模块
40-
实现评论的发表、查询、删除、点赞等业务
41-
###### 6)开发消息业务模块(MongoDB)
42-
实现点赞评论和关注等消息的发送和入库
43-
44-
MongoDB分页查询系统消息列表
45-
46-
###### 7)RabbitMQ 异步解耦
47-
48-
编写交换机队列
49-
50-
使用生产者消费者来实现异步解耦
51-
52-
###### 8)使用Nacos进行一定数量的定量入库(动态配置中心)
53-
54-
Nacos作为分布式配置中心,部署Nacos完成阈值入库业务
55-
56-
###### 9)上线项目 部署云端
57-
PS:项目部署在学校的服务器上,需要登录VPN才可才可正常获取APP流量
58-
59-
1+
# 红书短视频平台 (Red Book Dev)
2+
3+
一个基于Spring Boot + Spring Cloud的全栈仿抖音短视频社交平台项目,支持视频上传、点赞、评论、关注、私信等核心功能。
4+
5+
## 🚀 项目特色
6+
7+
- **现代化架构**: 采用Spring Cloud微服务架构,支持分布式部署
8+
- **高性能设计**: Redis缓存、RabbitMQ异步处理、MongoDB消息存储
9+
- **丰富功能**: 短视频、社交互动、用户管理、实时消息等
10+
- **技术前沿**: 集成Nacos配置中心、MinIO对象存储、Knife4j API文档
11+
- **生产就绪**: 完整的开发、测试、生产环境配置
12+
13+
## 📱 功能模块
14+
15+
### 核心功能
16+
- ✅ 用户注册登录 (支持短信验证码)
17+
- ✅ 短视频上传、播放、点赞、评论
18+
- ✅ 用户关注、粉丝管理
19+
- ✅ 私信聊天系统
20+
- ✅ 视频搜索和推荐
21+
22+
### 技术特性
23+
- ✅ 分布式配置管理 (Nacos)
24+
- ✅ 服务注册与发现 (Nacos)
25+
- ✅ 消息队列异步处理 (RabbitMQ)
26+
- ✅ 缓存优化 (Redis)
27+
- ✅ 对象存储 (MinIO)
28+
- ✅ 文档自动生成 (Knife4j)
29+
30+
## 🛠 技术架构
31+
32+
### 后端技术栈
33+
- **框架**: Spring Boot 2.5.4
34+
- **微服务**: Spring Cloud 2020.0.4 + Spring Cloud Alibaba 2.2.6
35+
- **数据库**: MySQL 8.0 + MongoDB
36+
- **缓存**: Redis
37+
- **消息队列**: RabbitMQ
38+
- **对象存储**: MinIO
39+
- **ORM**: MyBatis + 通用Mapper + PageHelper
40+
41+
### 项目结构
42+
```
43+
red-book-dev/
44+
├── book-api/ # API接口层 (8080)
45+
├── book-common/ # 公共模块
46+
├── book-model/ # 数据模型
47+
├── book-mapper/ # 数据访问层
48+
├── book-service/ # 业务逻辑层
49+
└── mybatis-generator/ # 代码生成器
50+
```
51+
52+
### 架构图
53+
![项目架构图](https://s1.328888.xyz/2022/05/14/qRTCJ.png)
54+
55+
## 🔧 快速开始
56+
57+
### 环境要求
58+
- JDK 1.8+
59+
- Maven 3.6+
60+
- MySQL 8.0+
61+
- Redis
62+
- MongoDB
63+
- RabbitMQ
64+
- Nacos 2.0+
65+
- MinIO
66+
67+
### 本地开发
68+
69+
1. **克隆项目**
70+
```bash
71+
git clone https://github.com/your-repo/red-book-dev.git
72+
cd red-book-dev
73+
```
74+
75+
2. **配置数据库**
76+
```sql
77+
-- 创建数据库
78+
CREATE DATABASE red_book_dev DEFAULT CHARACTER SET utf8mb4;
79+
80+
-- 导入表结构 (使用mybatis-generator生成)
81+
```
82+
83+
3. **配置Nacos**
84+
- 下载并启动Nacos 2.0+
85+
- 在Nacos控制台添加配置: `imooc-red-book-dev-dev.yml`
86+
87+
4. **修改配置**
88+
```yaml
89+
# book-api/src/main/resources/application-dev.yml
90+
spring:
91+
datasource:
92+
url: jdbc:mysql://localhost:3306/red_book_dev?useSSL=false
93+
username: your_username
94+
password: your_password
95+
96+
nacos:
97+
server-addr: localhost:8848
98+
99+
redis:
100+
host: localhost
101+
port: 6379
102+
103+
mongodb:
104+
uri: mongodb://localhost:27017/red_book_dev
105+
106+
rabbitmq:
107+
host: localhost
108+
port: 5672
109+
110+
minio:
111+
endpoint: http://localhost:9000
112+
access-key: your_access_key
113+
secret-key: your_secret_key
114+
```
115+
116+
5. **启动项目**
117+
```bash
118+
# 启动各个模块
119+
cd book-common && mvn clean install
120+
cd ../book-model && mvn clean install
121+
cd ../book-mapper && mvn clean install
122+
cd ../book-service && mvn clean install
123+
cd ../book-api && mvn spring-boot:run
124+
```
125+
126+
6. **访问接口**
127+
- API文档: http://localhost:8080/doc.html
128+
- 健康检查: http://localhost:8080/actuator/health
129+
130+
## 📚 API文档
131+
132+
项目使用Knife4j生成API文档,启动后访问: http://localhost:8080/doc.html
133+
134+
主要接口模块:
135+
- `/vlog` - 短视频相关接口
136+
- `/userInfo` - 用户信息接口
137+
- `/fans` - 粉丝管理接口
138+
- `/comment` - 评论接口
139+
- `/msg` - 消息接口
140+
141+
## 🚀 部署说明
142+
143+
### Docker部署
144+
```dockerfile
145+
# 构建镜像
146+
docker build -t red-book-api .
147+
148+
# 运行容器
149+
docker run -p 8080:8080 \
150+
-e SPRING_PROFILES_ACTIVE=prod \
151+
red-book-api
152+
```
153+
154+
### 生产环境配置
155+
1. 使用Nacos配置中心管理配置
156+
2. 配置MySQL主从复制
157+
3. 设置Redis集群
158+
4. 配置MinIO分布式存储
159+
5. 使用Nginx反向代理和负载均衡
160+
161+
## 📊 开发流程
162+
163+
### 1. 环境搭建
164+
- 数据库设计和逆向工程
165+
- 微服务架构搭建
166+
- API文档工具集成
167+
168+
### 2. 用户模块开发
169+
- 短信验证码登录
170+
- Redis缓存优化
171+
- MinIO文件上传
172+
173+
### 3. 视频模块开发
174+
- 视频上传和存储
175+
- 点赞评论功能
176+
- 视频搜索和推荐
177+
178+
### 4. 社交功能开发
179+
- 关注粉丝系统
180+
- 消息推送机制
181+
- 实时通信
182+
183+
### 5. 性能优化
184+
- RabbitMQ异步处理
185+
- Redis缓存策略
186+
- 数据库读写分离
187+
188+
### 6. 运维部署
189+
- 容器化部署
190+
- 监控告警
191+
- CI/CD流程
192+
193+
## 🤝 贡献指南
194+
195+
1. Fork 本项目
196+
2. 创建特性分支: `git checkout -b feature/new-feature`
197+
3. 提交更改: `git commit -m 'Add new feature'`
198+
4. 推送分支: `git push origin feature/new-feature`
199+
5. 提交 Pull Request
200+
201+
## 📄 许可证
202+
203+
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
204+
205+
## 📞 联系我们
206+
207+
- 项目主页: https://github.com/your-repo/red-book-dev
208+
- 问题反馈: 请提交 Issue
209+
- 技术交流: 欢迎提交 PR
210+
211+
---
212+
213+
**注意**: 项目部署在学校服务器上,需要登录VPN才能正常获取APP流量

book-api/target/book-api.jar

-929 KB
Binary file not shown.
Binary file not shown.
30 Bytes
Binary file not shown.
Binary file not shown.
3 Bytes
Binary file not shown.
9 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)