|
1 | | -#### SpringBoot+Uniapp2022全新仿抖音短视频 |
2 | | - |
3 | | - |
4 | | - |
5 | | -#### APP模块: |
6 | | - |
7 | | - 1、用户模块 |
8 | | - 2、视频模块 |
9 | | - 3、粉丝模块 |
10 | | - 4、留言评论模块 |
11 | | - 5、消息模块 |
12 | | - |
13 | | -#### 项目架构图: |
14 | | - |
15 | | - |
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 | + |
| 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流量 |
0 commit comments