荣光课堂后端管理系统
项目简介
这是一个基于 Spring Boot 的荣光课堂后端管理系统,用于管理课程数据、游戏数据和用户学习记录。
技术栈
- Spring Boot 2.6.13
- Spring Data JPA
- MySQL 8.0
- Maven
数据库设计
主要表结构
- users - 用户表
- courses - 课程表
- games - 游戏表
- user_access_records - 用户访问记录表
- game_records - 游戏记录表
数据库初始化
- 创建数据库:
CREATE DATABASE rg_classroom CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 执行数据库脚本:
mysql -u root -p rg_classroom < database_schema.sql
配置说明
数据库配置
修改 src/main/resources/application.yml 中的数据库连接信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/rg_classroom?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123456
API 接口
用户管理
GET /api/users- 获取所有用户GET /api/users/{id}- 根据 ID 获取用户POST /api/users/login- 用户登录POST /api/users- 创建用户PUT /api/users/{id}- 更新用户DELETE /api/users/{id}- 删除用户
课程管理
GET /api/courses- 获取所有课程GET /api/courses/{id}- 根据 ID 获取课程GET /api/courses/courseId/{courseId}- 根据课程 ID 获取课程GET /api/courses/category/{categoryId}- 根据分类获取课程GET /api/courses/grade/{gradeLevel}/semester/{semester}- 根据年级学期获取课程POST /api/courses- 创建课程PUT /api/courses/{id}- 更新课程DELETE /api/courses/{id}- 删除课程
游戏管理
GET /api/games- 获取所有游戏GET /api/games/{id}- 根据 ID 获取游戏GET /api/games/course/{courseId}- 根据课程 ID 获取游戏GET /api/games/category/{categoryId}- 根据分类获取游戏POST /api/games- 创建游戏PUT /api/games/{id}- 更新游戏DELETE /api/games/{id}- 删除游戏
记录管理
POST /api/records/access- 记录用户访问POST /api/records/game- 记录游戏结果GET /api/records/access/user/{userId}- 获取用户访问记录GET /api/records/access/course/{courseId}- 获取课程访问统计GET /api/records/game/user/{userId}- 获取用户游戏记录GET /api/records/game/stats/{gameId}- 获取游戏统计
数据同步
GET /api/data/courses- 获取所有课程数据GET /api/data/games- 获取所有游戏数据GET /api/data/complete- 获取完整数据结构GET /api/data/course/{courseId}/complete- 获取课程完整数据
统计分析
GET /api/stats/user/{userId}- 获取用户学习统计GET /api/stats/course/{courseId}- 获取课程访问统计GET /api/stats/game/{gameId}- 获取游戏统计GET /api/stats/user/{userId}/game/{gameId}- 获取用户游戏统计
运行项目
- 确保 MySQL 数据库已启动
- 执行数据库初始化脚本
- 修改配置文件中的数据库连接信息
- 运行项目:
mvn spring-boot:run
或者打包后运行:
mvn clean package
java -jar target/rg_admin-0.0.1-SNAPSHOT.jar
前端集成
前端可以通过以下方式集成:
- 使用
/api/data/complete接口获取完整的课程和游戏数据 - 用户访问课程或游戏时,调用
/api/records/access记录访问 - 游戏结束时,调用
/api/records/game记录游戏结果 - 使用统计接口获取学习数据分析
注意事项
- 确保数据库连接配置正确
- 首次运行时会自动创建表结构
- 建议在生产环境中修改默认的数据库密码
- 所有 API 都支持 CORS 跨域访问