# star **Repository Path**: junjun_com/star ## Basic Information - **Project Name**: star - **Description**: 从GoFrame框架出发,实际开发的一个项目:星辰英语本。旨在为读者提供一份深入浅出的GoFrame框架学习指南,帮助读者快速掌握GoFrame框架。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, GoFrame ## README # 入门实战教程-星辰英语本 ## 项目简介 这是一个基于 Go 语言和 GF 框架开发的单词学习管理系统后端服务。该系统提供了用户认证、单词管理、学习进度跟踪等功能,旨在帮助用户更有效地进行单词学习。 ## 技术栈 - **语言**: Go 1.25.0 - **框架**: GF (goframe) v2.10.0 - **数据库**: MySQL - **认证**: JWT (JSON Web Token) - **部署**: Docker + Kubernetes ## 功能特性 ### 用户管理 - 用户注册 - 用户登录 - JWT 认证 ### 单词管理 - 单词列表(支持分页和搜索) - 单词详情 - 创建单词 - 更新单词 - 删除单词 - 设置单词熟练度级别 - 随机获取单词(用于学习) ### 账户管理 - 获取账户信息 ## 项目结构 ``` star/ ├── api/ # API 接口定义 │ ├── account/ # 账户相关接口 │ ├── users/ # 用户相关接口 │ └── words/ # 单词相关接口 ├── internal/ # 内部实现 │ ├── cmd/ # 命令行入口 │ ├── controller/ # 控制器 │ ├── dao/ # 数据访问对象 │ ├── logic/ # 业务逻辑 │ ├── model/ # 数据模型 │ └── service/ # 服务层 ├── manifest/ # 部署配置 │ ├── deploy/ # Kubernetes 部署配置 │ ├── docker/ # Docker 配置 │ └── i18n/ # 国际化配置 ├── resource/ # 静态资源 └── main.go # 主入口文件 ``` ## 快速开始 ### 环境要求 - Go 1.25.0 或更高版本 - MySQL 5.7 或更高版本 ### 安装依赖 ```bash go mod tidy ``` ### 配置数据库 1. 创建数据库 ```sql CREATE DATABASE star CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 配置数据库连接信息 在项目根目录创建 `config.yaml` 文件: ```yaml database: default: host: localhost port: 3306 user: your_username pass: your_password name: star type: mysql ``` **注意:** 请将 `your_username` 和 `your_password` 替换为您的实际数据库账号和密码。 ### 运行项目 ```bash go run main.go ``` 服务将在 `http://localhost:8000` 启动。 ## API 文档 ### 认证接口 #### 注册 - **URL**: `/v1/users/register` - **方法**: POST - **请求体**: ```json { "username": "user1", "password": "password123" } ``` - **响应**: ```json { "code": 0, "message": "success", "data": null } ``` #### 登录 - **URL**: `/v1/users/login` - **方法**: POST - **请求体**: ```json { "username": "user1", "password": "password123" } ``` - **响应**: ```json { "code": 0, "message": "success", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } } ``` ### 单词接口 #### 获取单词列表 - **URL**: `/v1/words/list` - **方法**: GET - **请求参数**: - `word`: 单词搜索(可选) - `page`: 页码(默认 1) - `size`: 每页数量(默认 10) - **请求头**: - `Authorization`: `Bearer {token}` - **响应**: ```json { "code": 0, "message": "success", "data": { "list": [ { "id": 1, "word": "hello", "definition": "你好", "proficiencyLevel": 1 } ], "total": 1 } } ``` #### 创建单词 - **URL**: `/v1/words/create` - **方法**: POST - **请求体**: ```json { "word": "world", "definition": "世界" } ``` - **请求头**: - `Authorization`: `Bearer {token}` - **响应**: ```json { "code": 0, "message": "success", "data": { "id": 2 } } ``` #### 更新单词 - **URL**: `/v1/words/update` - **方法**: POST - **请求体**: ```json { "id": 2, "word": "world", "definition": "世界,地球" } ``` - **请求头**: - `Authorization`: `Bearer {token}` - **响应**: ```json { "code": 0, "message": "success", "data": null } ``` #### 删除单词 - **URL**: `/v1/words/delete` - **方法**: POST - **请求体**: ```json { "id": 2 } ``` - **请求头**: - `Authorization`: `Bearer {token}` - **响应**: ```json { "code": 0, "message": "success", "data": null } ``` #### 设置单词熟练度 - **URL**: `/v1/words/set-level` - **方法**: POST - **请求体**: ```json { "id": 1, "level": 2 } ``` - **请求头**: - `Authorization`: `Bearer {token}` - **响应**: ```json { "code": 0, "message": "success", "data": null } ``` #### 随机获取单词 - **URL**: `/v1/words/rand-list` - **方法**: GET - **请求参数**: - `size`: 获取数量(默认 10) - **请求头**: - `Authorization`: `Bearer {token}` - **响应**: ```json { "code": 0, "message": "success", "data": [ { "id": 1, "word": "hello", "definition": "你好", "proficiencyLevel": 1 } ] } ``` ### 账户接口 #### 获取账户信息 - **URL**: `/v1/account/info` - **方法**: GET - **请求头**: - `Authorization`: `Bearer {token}` - **响应**: ```json { "code": 0, "message": "success", "data": { "id": 1, "username": "user1" } } ``` ## 部署说明 ### Docker 部署 1. 构建镜像 ```bash docker build -t star:latest -f manifest/docker/Dockerfile . ``` 2. 运行容器 ```bash docker run -d -p 8000:8000 --name star \ -e DATABASE_HOST=mysql \ -e DATABASE_PORT=3306 \ -e DATABASE_USER=your_username \ -e DATABASE_PASS=your_password \ -e DATABASE_NAME=star \ star:latest ``` **注意:** 请将 `your_username` 和 `your_password` 替换为您的实际数据库账号和密码。 ### Kubernetes 部署 1. 应用配置 ```bash kubectl apply -k manifest/deploy/kustomize/overlays/develop ``` 2. 查看部署状态 ```bash kubectl get pods ``` ## 开发指南 ### 代码规范 - 遵循 Go 语言标准规范 - 使用 `gofmt` 格式化代码 - 代码注释清晰 ### 测试 ```bash go test ./... ``` ### 日志 项目使用 GF 框架的日志系统,支持不同级别的日志输出: - Debug - Info - Notice - Warning - Error ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 MIT License ## 联系方式 如有问题或建议,请联系项目维护者。