# online_learning **Repository Path**: lx123_com/online_learning ## Basic Information - **Project Name**: online_learning - **Description**: 在线学习平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-10 - **Last Updated**: 2025-06-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 一、项目概述 1. **项目名称**:在线学习平台 2. **项目类型**:基于Springboot + Vue的在线教育和资源共享平台(前后端分离) 3. **目标用户**: - **管理员**:负责平台整体运营和管理的人员。 - **普通用户**:使用平台进行课程学习、资源下载等操作的注册用户。 - **会员用户**:通过充值成为会员,享受更多优惠和服务的高级用户。 4. **功能模块**: - 用户注册/登录 - 管理员后台管理系统 - 课程信息管理与推荐 - 积分专区管理与推荐 - 在线资源上传与审核 - 课程订单管理 - 资料下载管理 - 积分兑换课程管理 - 首页统计 - 管理员信息管理 - 用户信息管理 - 系统公告管理 - 用户首页签到 - 用户查看课程信息 - 用户查看在线资源 - 用户全部课程浏览 - 用户积分专区浏览 - 用户海量资源浏览 - 用户个人资料发布与管理 - 用户已购课程查看 - 用户我的兑换查看 - 用户历史下载查看 - 用户模拟充值 - 用户课程详情查看与评论 --- ### 二、环境搭建 #### 1. 开发工具 - **后端** - **IntelliJ IDEA** 或其他支持Java开发的IDE(如Eclipse):用于编写和调试后端代码。 - **前端** - **Visual Studio Code (VS Code)**:轻量级且功能强大的文本编辑器,适合前端开发,提供了丰富的插件支持 - **数据库设计与管理** - **Navicat Premium**:可视化工具,用于设计和管理MySQL数据库,简化数据库操作。 #### 2. 开发环境 - **JDK** - **版本要求**:1.8 - **安装说明**:确保正确安装并配置JAVA_HOME环境变量,以便命令行和其他工具能够识别JDK。 - **Node.js** - **版本要求**:16.0+ - **安装说明**:通过官方提供的安装包进行安装,并确保npm(Node.js的包管理工具)也一并安装,方便后续安装前端依赖。 - **Maven** - **版本要求**:3.8+ - **安装说明**:Maven是Java项目的构建工具,负责管理项目依赖和执行构建生命周期任务。确保MAVEN_HOME环境变量已设置,并将`bin`目录添加到系统路径中。 #### 3. 数据库环境 - **MySQL** - **版本要求**:5.7或8.0 - **安装说明**:根据操作系统选择合适的MySQL安装包,并完成安装。配置数据库连接参数,确保应用程序可以正常访问数据库。 #### 4. 第三方中间件及工具 - **Redis**:用于缓存数据,如验证码、用户会话信息、评论信息等。 - **Nginx**:作为反向代理服务器,分发请求至不同的后端服务;同时也可以用于负载均衡和静态资源的托管。 - **Git**:版本控制系统,用于代码管理和协作开发。 --- ### 三、项目结构 #### 1. 后端项目结构 - `src/main/java`:存放Java源代码,细分为以下子包: - `controller`:包含所有RESTful API控制器类,负责处理HTTP请求。 - `service`:实现业务逻辑的服务层接口和实现类。 - `mapper`:定义与数据库交互的持久层接口(MyBatis Mapper)。 - `entity`:存放实体类,对应数据库中的表结构。 - `dto`:数据传输对象,用于封装API请求和响应的数据。 - `vo`:视图对象,专门用于前端展示的数据模型。 - `exception`:自定义异常类及其处理器。 - `utils`:工具类,提供通用的功能方法,如日期格式化、字符串处理等。 - `src/main/resources`:存放非Java资源文件,包括但不限于: - `application.properties` 或 `application.yml`:Spring Boot应用配置文件。 - `mapper.xml`:MyBatis SQL映射文件。 - 其他静态资源或模板文件(如邮件模板)。 - `src/test/java`:存放单元测试和集成测试代码,确保各个组件的功能正确性。 #### 2. 前端项目结构 - `src/assets`:存放静态资源,如图片、图标、样式文件(CSS/SCSS)等。 - `src/components`:存放可复用的Vue组件,这些组件可以在不同的页面中使用,提高代码的复用性和开发效率。 - `src/router`:存放路由配置文件,定义了应用的所有路由规则以及它们对应的组件。 - `src/store`:存放Vuex状态管理的相关文件,包括状态、突变、动作等,以集中管理和共享全局状态。 - `src/views`:存放页面级组件,每个页面通常对应一个独立的Vue组件,包含了页面特有的逻辑和布局。 - `src/api`:存放与后端交互的API请求相关代码,通过Axios库发送HTTP请求并与后端通信。 - `src/utils`:存放前端工具类代码,提供辅助函数或常量定义,帮助简化开发过程。 - `src/App.vue`:应用的根组件,是整个应用的入口点,包含了主模板和全局配置。 - `src/main.js`:应用的入口文件,负责初始化Vue实例并挂载到DOM元素上,同时引入全局插件和其他必要的设置。 --- ### 四、项目创新 #### 1. **富文本编辑器的使用** - **创新描述**:支持课程详细介绍的富文本编辑,包括格式调整和内部图片上传,丰富课程内容的表现形式。 - **技术实现**: - 使用富文本编辑器(如Quill或Tinymce),允许管理员编辑图文并茂的课程介绍。 - 实现富文本内的图片上传功能,直接在编辑器内上传并插入图片。 #### 2. **用户签到功能** - **创新描述**:用户每日签到可领取积分,积分可用于兑换积分专区的课程或下载资源。 - **技术实现**: - 设计签到逻辑,记录用户的签到情况,并给予相应的积分奖励。 - 提供连续签到奖励机制,鼓励用户持续参与。 #### 3. **前台首页仿网易云课堂** - **创新描述**:前台首页设计模仿网易云课堂,页面精致美观,提升用户体验。 - **技术实现**: - 采用相似的UI设计风格,结合ElementUI组件库实现界面布局。 - 优化前端性能,确保页面加载速度快,用户体验流畅。 #### 4. **课程内容的访问限制** - **创新描述**:根据用户是否付费或积分兑换来控制课程内容的显示,保护版权内容。 - **技术实现**: - 对于未付费或未兑换的课程,仅显示课程简介,付费或兑换后才开放完整内容。 - 结合用户身份验证机制,确保只有合法用户能访问特定内容。 #### 5. **ECharts数据统计** - **创新描述**:利用ECharts图表库进行数据可视化,帮助管理员分析平台资源。 - **技术实现**: - 在管理员后台集成ECharts图表库,动态展示不同类型课程的收益对比、会员占比、课程数量等关键指标。 - 支持多维度数据分析,如时间、类别等,提供更深入的洞察。 #### 6. **复杂的多维度分类设计** - **创新描述**:课程分为图文课和视频课,再细分为付费课和公开课,不同身份的用户享受不同的价格策略。 - **技术实现**: - 构建多层级分类体系,支持灵活筛选和排序,满足用户多样化的需求。 - 根据用户的身份(普通用户或会员用户),动态调整课程价格,提供个性化服务。 #### 7. **二级身份的设计** - **创新描述**:区分普通用户和会员用户,后者享有更多优惠和服务。 - **技术实现**: - 定义两种用户角色,分别设置不同的权限和优惠策略。 - 通过模拟充值功能,用户一次性充值满一定金额即可升级为会员。 #### 8. **支持视频在线播放、下载** - **创新描述**:平台支持视频课程的在线播放和下载,方便用户随时随地学习。 - **技术实现**: - 集成视频播放器,确保视频流的稳定传输和播放质量。 - 提供安全可靠的下载链接,保证视频文件的合法性。 --- ### 五、功能模块实现 #### 管理员功能 1. **登录、个人信息、修改密码** - 实现管理员登录、个人信息查看和修改密码功能。 2. **管理后台管理系统所有数据** - 统一管理平台的所有数据,包括但不限于课程、用户、订单等。 3. **课程信息管理** - 管理平台的所有课程信息,支持封面图片上传、视频上传、富文本编辑,区分付费和公开课程,会员用户享受折扣价。 4. **课程信息推荐** - 将特定课程手动推荐到首页大图位置,重点展示。 5. **积分专区管理** - 管理积分专区的课程,支持封面图片上传、视频上传、富文本编辑,用户需使用积分兑换。 6. **积分专区推荐** - 将积分专区的特定课程手动推荐到首页大图位置,重点展示。 7. **在线资源管理** - 审核用户上传的资料,设置积分,审核通过后展示在前台。 8. **课程订单管理** - 管理用户购买课程的订单信息。 9. **资料下载管理** - 管理用户通过积分下载的资料信息。 10. **积分兑课管理** - 管理用户通过积分兑换的课程信息。 11. **首页统计** - 查看平台不同类型课程的收益对比、会员占比、课程数量、积分专区课程数量、资料总数占比等统计数据。 12. **管理员信息管理** - 管理管理员的信息,分配不同级别的权限。 13. **用户信息管理** - 管理平台用户信息,保障平台的安全运行。 14. **系统公告管理** - 发布和管理系统公告,及时传达重要信息给用户。 #### 用户功能 1. **注册、登录、个人信息、修改密码** - 实现用户注册、登录、个人信息查看和修改密码功能。 2. **首页签到** - 用户每日签到可领取积分,积分可用于兑换积分专区的课程或下载资源。 3. **首页查看课程信息** - 用户可以通过切换标签查看平台所有课程,分为视频课程、图文课程和积分专区,支持点击进入对应课程详情页。 4. **首页查看在线资源** - 用户可以查看目前平台里的一些可下载的资源,支持点击进入对应资源详情页。 5. **全部课程浏览** - 分页查看平台所有的课程(包括图文课和视频课),支持搜索。 6. **积分专区浏览** - 分页查看平台所有可用积分兑换的课程(包括图文课和视频课),支持搜索。 7. **海量资源浏览** - 分页查看平台用户上传的所有资源,支持搜索,使用积分下载所需资源。 8. **个人资料发布与管理** - 用户可以发布自己的资料,设置所需的积分,管理员审核通过后展示出来,其他用户下载资料后,发布者获取相应积分。 9. **已购课程查看** - 查看自己购买过的课程信息,统一查看,方便进入。 10. **我的兑换查看** - 查看自己使用积分兑换的所有课程信息,统一查看,方便进入。 11. **历史下载查看** - 查看自己使用积分获取的所有资源信息,统一查看,方便进入。 12. **模拟充值** - 用户可以在个人中心模拟充值,一次性充值满500,自动成为会员用户,享受课程折扣。 13. **课程详情查看** - 查看课程详情信息,未付费或未兑换的课程只能看到介绍,购买或兑换后方可查看核心内容。 14. **课程评论** - 用户可以在课程详情页下方对课程发表看法和评论。 --- ![输入图片说明](imgs/1af2d206e614c9e4853a7c2c994e93a.jpg) ![输入图片说明](imgs/5c3ef8d0d9808c79a83fe51efb9c032.jpg) ![输入图片说明](imgs/795f768b1a79e2b216b7130116d9717.jpg) ![输入图片说明](imgs/7ecfc0eb28b90cbb3b4469f5841772b.jpg) ![输入图片说明](imgs/bb79d92a64e4555fb19dd8bf29e42cc.jpg) ![输入图片说明](imgs/d759cc4a290d7b693ee980c2945a8b5.jpg) ![输入图片说明](imgs/e1148187a18051321bdba4e0007283f.jpg) ![输入图片说明](imgs/ebf0c60a289e5e6f911742801704013.jpg)