# train **Repository Path**: leijmdas/train ## Basic Information - **Project Name**: train - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-21 - **Last Updated**: 2025-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # learn [![Go Report Card](https://goreportcard.com/badge/github.com/blue/learn)](https://goreportcard.com/report/github.com/blue/learn) [![codecov](https://codecov.io/gh/blue/learn/branch/master/graph/badge.svg?token=B93TcvKqA6)](https://codecov.io/gh/blue/learn) [![GitHub license](https://img.shields.io/github/license/blue/learn)](https://github.com/blue/learn/blob/master/LICENSE) --- > [English](README.md) | 中文 learn是一个基于Go + Vue3实现的Web应用模板,支持前后端,拥有完整的认证、存储、Restful API、应用管理(docker)功能,主要技术栈包括Go、Vue3、Gin、gorm、redis、postgres、ElementPlus、vite、websocket等。 预览效果:[Demo](https://qingwave.github.io/learn/).
Login Home
领学礼堂 数据
例句 词库
## 功能 后端支持的功能包括: - Restful API,通过Gin实现 - MVC架构 - Postgres存储,通过gorm - Swagger文档支持 - 结构化日志,由logrus实现 - Prometheus及监控 - 支持PProf性能分析 - 优雅中止服务 - JWT认证 - 服务限流,支持Server级、IP或者User - 支持OAuth登录(Github等),密码加密保存 - Redis缓存 - RBAC授权策略 - 博客管理 前端支持的功能包括: - Vue3开发,使用组合式API - Element-plus框架 - 使用vite快速编译 - 图标功能, 集成echarts - Windi CSS,原子化CSS - OAuth登录 ## 快速开始 ### Demo 预览效果: https://dev.super-study.com 通过Docker快速运行前端服务(不包含服务器和数据库) ```bash docker run -d -p 8080:80 --name learn-frontend blue/learn-frontend:mock ``` 开始之前,确保安装了基础环境[golang](https://go.dev/), [docker](https://docs.docker.com/engine/install/) 与 [nodejs](https://nodejs.org/en/download/)。 ### 运行后端服务 环境: - golang (1.18之后) 安装依赖 postgresql, redis, swag ```bash make init ``` 本地运行服务 ```bash make run ``` 开发模式服务 ```bash vscode 开发模式运行 "Launch main.go" ``` > 对于Windows环境, [Makefile](./Makefile)中的脚本 容器中运行 ```bash # docker image make docker-docker-server # run server make docker-run-server ``` ### 测试API 查看所有API http://localhost:8080/index 查看Swagger http://localhost:8080/swagger/index.html#/ 注册用户 ```bash curl -XPOST http://localhost:8080/api/v1/auth/user -d '{"name":"张三","phone":"13700002222","password":"123456","email":"test1@example.com"}' ``` 获取jwt令牌 > 初始状态只有admin用户可以访问所有接口, 其他用户必须创建RBAC规则 ```bash curl -XPOST http://localhost:8080/api/v1/auth/token -d '{"phone": "13700001111", "password": "123456"}' ``` 返回如下, 将token添加到HTTP `Authorization` Header中 ```json { "code": 200, "msg": "success", "data": { "token": "xxx", "describe": "set token in Authorization Header, [Authorization: Bearer {token}]", "role": "C" } } ``` 获取所有用户接口 ```bash token=xxx # 上个步骤中获取的token curl -X 'GET' 'http://localhost:8080/api/v1/users' -H "Authorization: Bearer $token" ``` 更新接口文档(swagger) > 新增接口后执行 ``` make swagger ``` ### 运行后台管理web 安装`Nodejs`(>=v16), 建议通过[nvm](https://github.com/nvm-sh/nvm#install--update-script) 如果前端不在本地部署, 需要改动[vite.config.js](./web/vite.config.js)中的`server.host`与`server.https`,本项目中涉及后端设置Cookie,必须开启Https。 运行前端 ```bash cd web pnpm i pnpm run dev ``` 默认admin用户/密码:`13700001111/123456` demo用户 `13700001112/123456` 在Docker中运行 ```bash # docker image make docker-docker-ui # run frontend make docker-run-ui ``` > 初始状态只有admin用户可以访问所有接口, 其他用户必须创建RBAC规则 打开 http://127.0.0.1:8081 更多界面参考 [img](./document/img/) - 登录页面 ![login](./document/img/login.png) - 学员 ![dashboard](./document/img/students.png) - 领学礼堂 ![app](./document/img/trains.png) ### 运行领学前端H5 安装`Nodejs`(>=v16), 建议通过[nvm](https://github.com/nvm-sh/nvm#install--update-script) 如果前端不在本地部署, 需要改动[vite.config.js](./web/vite.config.js)中的`server.host`与`server.https`,本项目中涉及后端设置Cookie,必须开启Https。 运行前端 ```bash cd h5 pnpm i pnpm run dev ``` 默认学员帐号/密码:`13700008001/123456` 领学师 `13700009002/123456` > 初始状态只有13700008001 打开 http://localhost:5173 更多界面参考 [img](./document/img/) - 登录页面 ![login](./document/img/h5-login.png) - 学员个中心 ![dashboard](./document/img/h5-student-personal.png) - 单词筛查 ![app](./document/img/h5-words.png) ### 文档 - [Contributing](./CONTRIBUTING.md),为此项目提交贡献 - [Config](./config/app.yaml), 配置对应功能是否开启 - [总体结构](./document/readme.md) - [用户、单词管理](./document/user-words.md) - [训练、研值管理](./document/train-credits.md) - [前端H5](./document/h5.md) - [构建部署&服务器](./document/cicd.md) - [OAuth](./document/oauth.md) - [RBAC](./document/authentication.md)