Home

Awesome

FormulaGo

English | 中文

简介

一个高性能的企业后台管理框架,使用HertzEnt

演示网站

架构图

看起来像F1赛车吗? Go Backend Clean Architecture

依赖

内置功能

  1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  2. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  3. 角色管理:角色菜单权限分配、设置角色的权限划分。
  4. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  5. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  6. 在线用户:当前系统中活跃用户Token状态监控。
  7. 文件管理:文件上传,S3(Aliyun OSS)多种上传方式适配。
  8. OAuth2.0登录:支持Google, Github, Wecom 等OAuth2.0认证登录, 可以自己拓展。
  9. 常用工具:在pkg包集成常用的工具包。
  10. 开发工具:提供便捷的Struct与Protobuf转换工具,Struct to Protobuf,Delete Struct Tag等。

接口定义

本项目使用Protobuf IDL 定义HTTP 接口。对应的admin模块相关接口在 admin.proto 文件中定义。

代码生成

本项目使用 hz 生成代码. hz 详细使用说明参考 hz.

go install github.com/cloudwego/hertz/cmd/hz@latest
hz new -I api -idl api/admin/admin.proto -model_dir api/model -module formulago --unset_omitempty
hz update -I api -idl api/admin/admin.proto -model_dir api/model --unset_omitempty

变量绑定与校验

变量绑定与校验使用说明参考 Binding and Validate.

Ent

ent - 一个简单但功能强大的 Go 实体框架。

本项目使用 Ent 连接与操作 MySQL(你也可以使用PostgresSQL) ,详细使用说明参考 Ent.

快速开始

  cd data
  go run -mod=mod entgo.io/ent/cmd/ent init User
  go generate ./ent

如何运行

更新配置文件

使用 Docker 启动 MySQL

cd formulago && docker-compose up

运行本项目

cd formulago
go build -o formulago &&./formulago

# 项目运行后,HTTP Get请求以下路由,将会初始化数据库表数据
# 初始管理员账号: admin/formulago
@router yourHost/api/initDatabase [GET]
enjoy it!

欢迎贡献代码或提供建议