Categorygithub.com/oodzchen/dproject
modulepackage
0.7.56
Repository: https://github.com/oodzchen/dproject.git
Documentation: pkg.go.dev

# README

dproject

A web system like reddit and hacker news for discussing topics online.

开发说明

本项目开发的时候使用了fresh这个工具,它可以监听文件改动并实时重启进程,请务必在开发之前全局安装该模块。

不管是本地开发还是生产环境,主要用 docker compose 来管理各个服务,所以在开发前请确保本机安装了 docker。

本项目中的密码加密使用了bcrypt算法,htpasswd命令可提供该算法,用于生成样例数据,请确保机器上安装了相应的工具,一般Linux发行版上的apache2-utils可提供该命令。

启动服务之前需要自定义环境变量,请直接参考.env.example,根据里面的示例新建一个文件,如.env.local.dev,切记:不要把本地开发用的环境变量文件提交到仓库

以上这些准备好之后,先安装依赖

go mod download

以上步骤完成后,运行

./dev.sh .env.local.dev

即可启动服务。

你也可以直接使用docker compose命令来启动服务,不过有一些配置文件需要提前生成,具体你可以阅读dev.sh里面的代码。

测试

本项目写了单元测试和端到端测试,两种测试在启动之前都需要先启动服务(因为有些测试需要读写数据库)。

运行单元测试

go test ./...

运行端到端测试

go run ./e2e

尽管已经配置了 CI 跑自动化测试,还是建议每次推送之前手动运行一下测试,避免把报错的代码推送到远程仓库。

模拟数据

./seed模块专门用于批量生成模拟数据,以方便测试,具体使用方法请查看帮助

go run ./seed --help

国际化配置

本项目做了 i18n 配置,所有配置文件存放在./i18n里面,其中 TOML 文件都是由go-i18n这个工具生成的,请不要直接修改里面的内容。

新增翻译请直接修改 i18n 目录下的 go 文件里面的代码,改完之后在运行 i18n 相关命令,并添加各种语言的翻译内容,具体请参考go-i18n的说明文档

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

No description provided by the author
No description provided by the author

# Variables

No description provided by the author

# Structs

No description provided by the author