# homework_backend_go **Repository Path**: lingxi066/homework_backend_go ## Basic Information - **Project Name**: homework_backend_go - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-01 - **Last Updated**: 2026-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言 ## README # Homework 后端项目 (Go) 一个基于 **Gin + GORM** 的作业管理系统后端,支持用户管理、作业发布、团队协作和 AI 辅助功能。 ## 项目地址 - **前端项目**: https://gitee.com/lingxi066/HomeWork_frontend - **后端项目**: https://gitee.com/lingxi066/homework_backend_go ## 功能特性 - **用户管理**: 用户注册、登录、JWT 认证 - **作业管理**: 作业发布、提交、批改 - **团队协作**: 团队创建、成员管理、团队作业 - **AI 辅助**: OpenAI 集成,提供智能批改和建议 - **答题系统**: 支持选择题、简答题等多种题型 - **数据统计**: 作业完成情况统计和分析 ## 技术栈 - **后端框架**: Gin - **数据库**: PostgreSQL + GORM (ORM) - **认证**: JWT (golang-jwt/v5) - **AI 集成**: OpenAI Go SDK - **数据库事务**: 所有写操作通过 GORM 事务保证原子性 - **数据验证**: Go 结构体 + JSON 标签 ## 项目结构 ``` go/ ├── main.go # 应用入口 ├── go.mod / go.sum # 依赖管理 ├── config/ │ └── config.go # 环境变量配置 ├── model/ # GORM 数据库模型 ├── dao/ # 数据访问对象 ├── service/ # 业务逻辑层 ├── router/ # API 路由和处理函数 ├── middleware/ # JWT 认证中间件 ├── schema/ # 请求/响应结构体 ├── dto/ # 数据传输对象 └── plugin/ # 工具模块 (数据库/JWT/AI) ``` ## 快速开始 ### 1. 环境要求 - Go 1.21+ - PostgreSQL 12+ ### 2. 安装依赖 ```bash cd go go mod download ``` ### 3. 数据库配置 创建 PostgreSQL 数据库: ```sql CREATE DATABASE homework; ``` 配置环境变量(可选,有默认值): ```bash export DB_HOST=localhost export DB_PORT=5432 export DB_USER=postgres export DB_PASSWORD=123456 export DB_NAME=homework ``` ### 4. 运行应用 ```bash cd go go run main.go ``` 应用将在 `http://0.0.0.0:8000` 启动。 ### 5. 创建数据库表 ``` GET http://localhost:8000/create_table ``` ## 主要 API 端点 | 分组 | 端点 | 说明 | |------|------|------| | 用户 | `POST /user/login` | 登录 | | 用户 | `POST /user/register` | 注册 | | 用户 | `PUT /user/nickname` | 修改昵称 | | 团队 | `POST /team/create` | 创建团队 | | 团队 | `POST /team/select` | 查询团队 | | 团队 | `POST /user_team/join/invite_code` | 通过邀请码加入 | | 作业 | `POST /homework/create` | 创建作业 | | 作业 | `POST /homework/select` | 查询作业 | | 题目 | `POST /question/insert` | 添加题目 | | 题目 | `POST /question/select` | 查询题目 | | 答题 | `POST /answer/insert` | 提交答案 | | 答题 | `POST /answer/upsert` | 更新/提交答案 | | 答题 | `POST /answer/marking` | 批改答案 | | 答题 | `POST /answer_sheet/insert` | 创建答题卡 | | AI | `POST /ai/marking` | AI 批改 | | AI | `POST /ai/generate-questions` | AI 出题 | ## 环境变量 | 变量 | 默认值 | 说明 | |------|--------|------| | `DB_HOST` | `localhost` | 数据库主机 | | `DB_PORT` | `5432` | 数据库端口 | | `DB_USER` | `postgres` | 数据库用户 | | `DB_PASSWORD` | `123456` | 数据库密码 | | `DB_NAME` | `homework` | 数据库名 | | `JWT_SECRET_KEY` | (内置) | JWT 密钥 | | `AI_BASE_URL` | `https://api.deepseek.com` | AI API 地址 | | `AI_API_KEY` | (需设置) | AI API 密钥 | | `SERVER_HOST` | `0.0.0.0` | 监听地址 | | `SERVER_PORT` | `8000` | 监听端口 | ## 数据库事务 所有写操作都在事务中执行,保证原子性: ```go tx := plugin.GetDB().Begin() data, err := service.SomeMethod(tx, args...) if err != nil { tx.Rollback() return } tx.Commit() ``` ## 许可证 MIT License