# forum-backend **Repository Path**: choikeith/forum-backend ## Basic Information - **Project Name**: forum-backend - **Description**: forum-backend是一个基于gin-admin编写的技术社区博客服务端 - **Primary Language**: Go - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: https://gitee.com/choikeith/forum-frontend - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-02-07 - **Last Updated**: 2023-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # forum-backend > 该项目基于gin-admin实现的RBAC模型的技术社区管理系统 ## 特性 - 遵循 `RESTful API` 设计规范 & 基于接口的编程规范 - 基于 `GIN` 框架,提供了丰富的中间件支持(JWTAuth、CORS、RequestLogger、RequestRateLimiter、TraceID、CasbinEnforce、Recover、GZIP) - 基于 `Casbin` 的 RBAC 访问控制模型 -- **权限控制可以细粒度到按钮 & 接口** - 基于 `Gorm 2.0` 的数据库访问层 - 全功能 ORM - 基于 `WIRE` 的依赖注入 -- 依赖注入本身的作用是解决了各个模块间层级依赖繁琐的初始化过程 - 基于 `Logrus & Context` 实现了日志输出,通过结合 Context 实现了统一的 TraceID/UserID 等关键字段的输出(同时支持日志钩子写入到`Gorm`) - 基于 `JWT` 的用户认证 -- 基于 JWT 的黑名单验证机制 - 基于 `Swaggo` 自动生成 `Swagger` 文档 -- 独立于接口的 mock 实现 - 基于 `net/http/httptest` 标准包实现了 API 的单元测试 - 基于 `go mod` 的依赖管理(国内源可使用:) - 基于 `go-redis实现缓存` - 阿里云OSS文件存储 ## 功能 - 菜单管理 - 权限管理 - 用户组管理 - 用户管理 - 文章管理 - 分类管理 - 标签管理 ![笔墨丹青网站截图](docs/images/%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_16778050104973.png) ![管理后台截图](docs/images/%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_16778052646819.png) ## 快速开始 ```bash $ git clone https://gitee.com/choikeith/forum-backend $ cd forum-backend # OR 基于Makefile运行 $ make start # OR 使用go命令运行 $ go run ./cmd/main.go web -c ./configs/config.toml -m ./configs/model.conf --menu ./configs/menu.yaml ``` ## 生成依赖注入文件 ```bash cd ./internal/app wire ``` ## MIT License Copyright (c) 2021 choikeith