一个基于 Golang + Gin + SQLite + Vue2 的学生作品评价系统。
- 学生: 可以上传作品、接受评价、给其他学生评价
- 专家: 可以评价学生作品、关注学生
- 管理员: 系统管理、用户管理、评价管理
- 登录系统: 支持用户注册、登录、角色权限管理
- 个人主页: 用户信息展示、文件上传、作品展示
- 评价系统:
- 学生互相评价
- 专家对学生评价
- 评价反馈(有帮助/没帮助)
- 评价者身份公开,被评价者身份匿名
- 关注系统: 专家可以关注学生
- 后台管理: 用户管理、评价管理、系统统计
- 语言: Go 1.21+
- 框架: Gin
- 数据库: SQLite
- ORM: GORM
- 认证: JWT
- 密码加密: bcrypt
- 框架: Vue 2.6
- UI库: Element UI
- 状态管理: Vuex
- 路由: Vue Router
- HTTP客户端: Axios
rating_system/
├── backend/ # 后端代码
│ ├── config/ # 配置文件
│ ├── controllers/ # 控制器
│ ├── middleware/ # 中间件
│ ├── models/ # 数据模型
│ ├── routes/ # 路由配置
│ ├── go.mod # Go模块文件
│ └── main.go # 主程序入口
├── frontend/ # 前端代码
│ ├── public/ # 静态文件
│ ├── src/ # 源代码
│ │ ├── components/ # 组件
│ │ ├── views/ # 页面
│ │ ├── store/ # Vuex状态管理
│ │ ├── router/ # 路由配置
│ │ └── main.js # 主程序入口
│ ├── package.json # 依赖配置
│ └── vue.config.js # Vue配置
└── README.md # 项目说明
- Go 1.21+
- Node.js 16+
- npm 或 yarn
- 进入后端目录
cd backend- 安装依赖
go mod tidy- 启动服务
go run main.go后端服务将在 http://localhost:8080 启动
- 进入前端目录
cd frontend- 安装依赖
npm install- 启动开发服务器
npm run serve前端应用将在 http://localhost:3000 启动
系统会自动创建一个默认管理员账户:
- 用户名:
admin - 密码:
password
POST /api/login- 用户登录POST /api/register- 用户注册GET /api/profile- 获取用户信息PUT /api/profile- 更新用户信息
POST /api/files- 上传文件GET /api/files/user/:user_id- 获取用户文件列表GET /api/files/:id- 获取文件信息GET /api/files/:id/download- 下载文件DELETE /api/files/:id- 删除文件
POST /api/ratings- 创建评价GET /api/ratings/user/:user_id- 获取用户评价GET /api/ratings/public- 获取公开评价POST /api/ratings/:rating_id/feedback- 给评价反馈
POST /api/follow/:user_id- 关注用户DELETE /api/follow/:user_id- 取消关注GET /api/following- 获取关注列表GET /api/followers- 获取粉丝列表
GET /api/admin/users- 获取用户列表POST /api/admin/users- 创建用户PUT /api/admin/users/:id- 更新用户DELETE /api/admin/users/:id- 删除用户GET /api/admin/ratings- 获取评价列表DELETE /api/admin/ratings/:id- 删除评价GET /api/admin/stats- 获取系统统计
- id, username, email, password, role, name, avatar, bio, links, is_active
- id, user_id, file_name, file_path, file_type, file_size, title, description, is_public
- id, rater_id, rated_id, file_id, content, score, is_anonymous
- id, rating_id, user_id, is_helpful
- id, follower_id, followed_id
- 修改JWT密钥(backend/middleware/auth.go)
- 配置数据库连接
- 设置CORS策略
- 构建前端应用:
npm run build - 配置反向代理(如Nginx)
可以创建Dockerfile来容器化部署应用。
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
MIT License