toktik
toktik copied to clipboard
ChatGPT integrated short video microservice application built with Kitex and Hertz. 第五届字节跳动青训营后端大作业“码如磐石奖(一等奖)”获奖项目
Toktik
ChatGPT integrated short video microservice application built with Kitex and Hertz , made by Toktik-Team in The 5th Bytedance Youth Training Camp. |
---|
English | 简体中文
The 5th Bytedance Youth Training Camp Report Documentation: https://qrggpk56b9.feishu.cn/docx/Djwpdm8oZo3JyRx0JwkcZhRDnVd
Recommend
Now Recommend for GuGoTik !
TokTik is no longer maintained and has no planned maintenance plans, please go to GuGoTik. GuGoTik respects and follows TokTik's workline, improving and optimizing almost every components from it and adding more features. For best expermental experience, please use GuGoTik instead of TokTik.
Give us your stars if you like our project.
Awards
Earned the Best Project award in the 5th Bytedance Youth Training Camp.
Demo
Download Dousheng app from here, and use this URL to test with the demo.
https://toktik.xctra.cn/
Project Structure
-
constant
- biz - Business logic related constants
-
config
- env.go - Environment variable configs
- service.go - Service names and ports
-
idl
- auth.proto - RPC definition of auth service
- comment.proto - RPC definition of comment service
- favorite.proto - RPC definition of favorite service
- feed.proto - RPC definition of feed service
- publish.proto - RPC definition of publish service
- relation.proto - RPC definition of relation service
- user.proto - RPC definition of user service
- wechat.proto - RPC definition of chat service
- kitex_gen - Generated code by Kitex
- logging - Logging middleware
- manifests-dev - Kubernetes manifests
- repo - Database schemas and generated code by Gorm Gen
-
service
- auth - Auth service impl
- comment - Comment service impl
- favorite - Favorite service impl
- feed - Feed service impl
- publish - Publish service impl
- relation - Relation service impl
- user - User service impl
-
web - Web api gateway
- mw - Hertz middlewares
- wechat - Chat service impl
- storage - Storage middleware, s3, local storage & volcengine ImageX supported
-
test
- e2e - End-to-end test
- mock - Mock data for unit test
Prerequisite
This project does not support Windows, as Kitex does not support either.
- Linux / MacOS
- Go
- FFmpeg
- PostgreSQL
- Redis
- OpenTelemetry Collector
For observability infrastructures, it's recommended to use:
- Jaeger All in one
- Victoria Metrics
- Grafana
Build
Run ./build-all.sh
in your Linux environment to compile all services.
Configurations
Check out constant/config/env.go
Run
- Run
start.sh --service <service_name>
to start a service. -
service_name
could be any of the sub directory of./service
.
Test
Unit Test
Run ./unit-test.sh
End-to-End Test
Run go test toktik/test/e2e -tags="e2e"
How to Contribute
- Please following the HowToAddServices to create your own service.
- Create a new branch and make your changes.
- Create a pull request to the
main
branch. - Wait for review and merge.
Contributors
License
Toktik is licensed under the MIT License.