本项目名为simple-tiktok
,是第五届字节跳动后端青训营大项目——极简版抖音。
互动方向 | 社交方向 | |||
基础功能项 | 视频 Feed 流、视频投稿、个人主页 | |||
基础功能项说明 |
视频Feed流:支持所有用户刷抖音,视频按投稿时间倒序推出 视频投稿:支持登录用户自己拍视频投稿 个人主页:支持查看用户基本信息和投稿列表,注册用户流程简化 |
|||
方向功能项 | 喜欢列表 | 用户评论 | 关系列表 | 消息 |
方向功能项说明 | 登录用户可以对视频点赞,在个人主页喜欢Tab下能够查看点赞视频列表 | 支持未登录用户查看视频下的评论列表,登录用户能够发表评论 | 登录用户可以关注其他用户,能够在个人主页查看本人的关注数和粉丝数,查看关注列表和粉丝列表 | 登录用户在消息页展示已关注的用户列表,点击用户头像进入聊天页后可以发送消息 |
安装极简版抖音app,安装包:pkg/pkg/app-release.apk
启动基础依赖
# 安装ffmpeg
apt-get install ffmpeg
# 自行安装 docker 及 docker-compose
docker-compose up -d
启动本项目
go run .
使用开源Http框架Hertz + Thrift + GORM 完成本项目的开发。功能实现完整,代码结构清晰,为MVC
三层架构。项目遵循Hertz
框架开发规范和流程,代码简单易懂。
.
├── biz
│ ├── dal # dal层,数据库操作逻辑
│ ├── handler # handel层,实现接口逻辑
│ ├── model # hertz根据idl文件生成的代码
│ ├── mw # 各个路由的中间件封装
│ └── router # router层,处理各个接口路由
├── docker-compose.yaml # 依赖环境
├── Dockerfile # simple-tiktok dockerfile脚本
├── file # 视频投稿存储目录
│ └── upload
├── gen.sh # 代码生成脚本
├── go.mod
├── go.sum
├── idl # idl文件目录,定义各个接口
│ └── simple_tiktok.thrift
├── main.go
├── pkg # 公共模块
│ ├── config
│ ├── configs
│ ├── consts
│ ├── errno
│ └── pkg # 极简版抖音apk,simple-tiktok二进制文件
├── README.md
├── router_gen.go
├── router.go
- 使用
kitex RPC
+etcd
实现微服务架构 - 使用
redis
优化项目性能 - 使用
rabbitmq
实现削峰 - 使用云厂商
oss
对象存储 - 使用
prometheus
做监控,写一个exporter
- 用户聊天模块发送消息敏感信息拦截过滤
- 结合
docker
实现独立测试环境 - 视频模块结合推荐算法
- 项目打包成
docker
镜像
该项目签署了MIT 授权许可,详情请参阅 LICENSE.txt
字节跳动后端青训营