# PersonalizedLearningResourceRecommendationPlatform **Repository Path**: zevenLED/personalized-learning-resource-recommendation-platform ## Basic Information - **Project Name**: PersonalizedLearningResourceRecommendationPlatform - **Description**: 个性化学习资源推荐平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-12 - **Last Updated**: 2026-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 个性化学习资源推荐平台 ## 项目简介 一个基于 Spring Boot + Vue 3 的前后端分离学习资源推荐平台,具备个性化推荐、学习进度追踪、行为采集等核心功能。 ## 技术栈 ### 后端 - **框架**: Spring Boot 2.7.18 - **ORM**: MyBatis-Plus 3.5.5 - **数据库**: MySQL 8.0 - **缓存**: Redis(可选) - **认证**: JWT Token ### 前端 - **框架**: Vue 3 + Vite 5 - **状态管理**: Pinia - **UI库**: Element Plus - **HTTP客户端**: Axios - **样式**: SCSS ## 功能模块 ### 用户端(Web) - ✅ 登录/注册(手机号/邮箱) - ✅ 游客模式浏览 - ✅ 个人中心与偏好设置 - ✅ 资源中心(搜索/筛选/分类) - ✅ 资源详情页(视频/文档/题库/课程/文章) - ✅ 个性化推荐(首页为你推荐) - ✅ 学习进度管理 - ✅ 收藏/历史记录 - ✅ 每日学习任务 - ✅ 行为埋点采集 - ✅ 全端响应式适配 ### 管理后台 - ✅ 数据概览仪表盘 - ✅ 资源增删改查 - ✅ 推荐算法配置(策略切换、权重调整) - ✅ 数据统计面板 ### 推荐算法 - 基于标签的推荐 - 基于学习历史的推荐 - 热门度推荐 - 混合加权推荐(可调权重) - 不感兴趣过滤机制 ## 快速开始 ### 环境要求 - JDK 11+ - Node.js 16+ - MySQL 8.0+ - Redis(可选) ### 1. 数据库初始化 ```bash # 创建数据库 mysql -u root -p < backend/src/main/resources/schema.sql # 导入初始数据 mysql -u root -p learning_platform < backend/src/main/resources/data.sql ``` **测试账号**: | 手机号/邮箱 | 密码 | 角色 | |------------|------|------| | 13800138001 | 123456 | 学生 | | 13800138002 | 123456 | 学生 | | 13800138003 | 123456 | 学生 | | admin@learning.com | 123456 | 管理员 | ### 2. 启动后端 ```bash cd backend mvn spring-boot:run ``` 后端运行在: http://localhost:8080/api ### 3. 启动前端 ```bash cd frontend npm install npm run dev ``` 前端运行在: http://localhost:3000 ## 项目结构 ``` ├── backend/ # 后端代码 │ ├── src/main/java/com/learning/platform/ │ │ ├── LearningPlatformApplication.java # 启动类 │ │ ├── common/ # 公共类(Result, JWT, 分页) │ │ ├── config/ # 配置(跨域等) │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # MyBatis Mapper │ │ ├── service/ # 业务逻辑层 │ │ │ ├── UserService.java # 用户服务 │ │ │ ├── ResourceService.java # 资源服务 │ │ │ ├── RecommendService.java # 推荐算法核心 │ │ │ ├── BehaviorService.java # 行为采集服务 │ │ │ └── LearningService.java # 学习进度服务 │ │ └── controller/ # REST API控制器 │ └── src/main/resources/ │ ├── application.yml # 应用配置 │ ├── schema.sql # 数据库表结构 │ └── data.sql # 初始数据 │ ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── api/index.js # Axios封装 │ │ ├── stores/user.js # Pinia用户状态管理 │ │ ├── router/index.js # 路由配置 │ │ ├── views/ # 页面组件 │ │ │ ├── Home.vue # 首页 │ │ │ ├── Resources.vue # 资源列表 │ │ │ ├── ResourceDetail.vue # 资源详情 │ │ │ ├── Login.vue / Register.vue # 登录注册 │ │ │ ├── Learning.vue # 我的学习 │ │ │ ├── Profile.vue # 个人中心 │ │ │ └── admin/ # 管理后台页面 │ │ ├── components/ │ │ │ └── ResourceCard.vue # 资源卡片组件 │ │ ├── layouts/ │ │ │ ├── MainLayout.vue # 主布局 │ │ │ └── AdminLayout.vue # 管理后台布局 │ │ └── styles/global.scss # 全局样式 │ └── package.json │ └── README.md ``` ## API接口说明 ### 认证相关 - `POST /api/auth/login/phone` - 手机号登录 - `POST /api/auth/login/email` - 邮箱登录 - `POST /api/auth/register` - 注册 - `GET /api/auth/user/info` - 获取用户信息 - `PUT /api/auth/user/profile` - 更新个人信息 - `PUT /api/auth/user/preference` - 更新学习偏好 ### 资源相关 - `GET /api/resource/categories` - 获取学科分类 - `GET /api/resource/list` - 资源列表(支持筛选、搜索、分页) - `GET /api/resource/{id}` - 资源详情 - `GET /api/resource/hot` - 热门资源 - `GET /api/resource/recommend` - 推荐资源 ### 推荐相关 - `GET /api/recommend/personalized` - 个性化推荐 - `GET /api/recommend/related/{resourceId}` - 相关推荐 - `GET /api/recommend/next/{completedId}` - 学完后的下一步推荐 - `POST /api/recommend/dislike` - 标记不感兴趣 - `GET/PUT /api/recommend/config` - 推荐配置 ### 学习相关 - `GET/PUT /api/learning/progress/{resourceId}` - 学习进度 - `POST /api/learning/complete/{resourceId}` - 完成学习 - `POST /api/learning/collect/{resourceId}` - 收藏/取消收藏 - `GET /api/learning/stats` - 学习统计 - `GET /api/learning/daily-task` - 每日任务 ### 行为采集 - `POST /api/behavior/track` - 单条行为上报 - `POST /api/behavior/batch` - 批量行为上报 - `GET /api/behavior/hot-keywords` - 热门搜索词 ### 管理后台 - `GET/POST /api/admin/resources` - 资源管理 - `PUT/DELETE /api/admin/resources/{id}` - 编辑/删除资源 - `GET /api/admin/stats/overview` - 数据概览 ## 设计特点 1. **卡片圆角布局** - 所有内容采用圆角卡片设计,视觉统一 2. **清晰层级** - 通过颜色深浅、字号大小建立信息层级 3. **克制动画** - 仅保留必要的过渡动画,不干扰使用 4. **全端响应式** - 手机/平板/PC自动适配 5. **护眼配色** - 柔和中性色为主,主色调为科技蓝紫渐变 6. **现代简约教育风** - 专业但不冰冷,简洁而不简陋 ## 扩展建议 1. **接入真实视频播放器** (如 Video.js/DPlayer) 2. **接入图表库 ECharts** 展示统计数据 3. **接入 Redis 缓存** 提升性能 4. **接入第三方登录** (微信/QQ) 5. **添加暗色模式** 6. **引入协同过滤算法** 增强推荐效果