Thanks to visit codestin.com
Credit goes to github.com

Skip to content

hts0000/simple-tiktok

Repository files navigation

Logo

项目简介

本项目名为simple-tiktok,是第五届字节跳动后端青训营大项目——极简版抖音。

功能模块介绍

互动方向 社交方向
基础功能项 视频 Feed 流、视频投稿、个人主页
基础功能项说明

视频Feed流:支持所有用户刷抖音,视频按投稿时间倒序推出

视频投稿:支持登录用户自己拍视频投稿

个人主页:支持查看用户基本信息和投稿列表,注册用户流程简化

方向功能项 喜欢列表 用户评论 关系列表 消息
方向功能项说明 登录用户可以对视频点赞,在个人主页喜欢Tab下能够查看点赞视频列表 支持未登录用户查看视频下的评论列表,登录用户能够发表评论 登录用户可以关注其他用户,能够在个人主页查看本人的关注数和粉丝数,查看关注列表和粉丝列表 登录用户在消息页展示已关注的用户列表,点击用户头像进入聊天页后可以发送消息

项目展示

Logo Logo Logo Logo Logo Logo Logo Logo

Quick Start

安装极简版抖音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

未来展望

  1. 使用kitex RPC + etcd实现微服务架构
  2. 使用redis优化项目性能
  3. 使用rabbitmq实现削峰
  4. 使用云厂商oss对象存储
  5. 使用prometheus做监控,写一个exporter
  6. 用户聊天模块发送消息敏感信息拦截过滤
  7. 结合docker实现独立测试环境
  8. 视频模块结合推荐算法
  9. 项目打包成docker镜像

版权说明

该项目签署了MIT 授权许可,详情请参阅 LICENSE.txt

鸣谢

字节跳动后端青训营

About

字节青训营大作业

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •