学成在线(一)项目介绍

学成在线是一个借鉴MOOC理念,专注于IT职业课程在线学习的平台,采用B2B2C业务模式。项目包括门户、学习中心、教学管理、社交系统和系统管理等功能模块,采用Spring Boot和Spring Cloud微服务架构,使用MySQL、MongoDB等数据库,集成Eureka、Zuul等服务治理组件。CMS系统用于页面管理,基于MongoDB存储,支持页面拆分和SSI服务端包含技术。开发流程涉及接口定义、服务端和前端并行开发、测试等环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 项目的功能构架

1.1 项目背景

受互联网+概念的催化,当今中国在线教育市场的发展可谓是百花齐放、如火如荼。 按照市场领域细分为:学前教育、K12教育、高等教育、留学教育、职业教育、语言教育、兴趣教育以及综合平台,其中,职业教育和语言教育的市场优势突出。 根据Analysys易观发布的数据显示,预计2019年中国互联网教育市场交易规模将达到3718亿元人民币,未来三年互联网教育市场规模保持高速增长。
在这里插入图片描述
学成在线借鉴了MOOC(大型开放式网络课程,即MOOC(massive open online courses))的设计思想,是一个提供IT职业课程在线学习的平台,它为即将和已经加入IT领域的技术人才提供在线学习服务,用户通过在线学习、在线练习、在线考试等学习内容,最终掌握所学的IT技能,并能在工作中熟练应用。

1.2 功能模块

当前市场的在线教育模式多种多样,包括:B2C、C2C、B2B2C等业务模式,学成在线采用B2B2C业务模式,即向企业或个人提供在线教育平台提供教学服务,老师和学生通过平台完成整个教学和学习的过程,市场上类似的平台有:网易云课堂、腾讯课堂等,学成在线的特点是IT职业课程在线教学。
学成在线包括门户、学习中心、教学管理中、社交系统、系统管理等功能模块。
在这里插入图片描述
功能模块名称 功能说明
门户 在首页、活动页、专题页等页面提供课程学习入口。
学习中心 学生登录学习中心在线学习课程。
社交系统 社交系统为老师和学生交流搭建沟通的平台,包括:问答系统、评论系统、论坛等,学生和老师通过问答系统提问问题、回答问题,通过评论系统对老师授课进行评论。
教学管理中心 教师登录教学管理中心进行课程管理、资源管理、考试管理等教学活动。
系统管理中心 系统管理员登录系统管理中心进行分类管理、运维管理等功能。

1.3 项目原型

通过项目原型进一步了解项目的功能,包括:门户首页、课程搜索页、在线学习页面、个人中心等参考“项目原型”。

2 项目的技术架构

2.1技术架构

学成在线采用当前流行的前后端分离架构开发,由用户层、UI层、微服务层、数据层等部分组成,为PC、App、
H5等客户端用户提供服务。下图是系统的技术架构图:
在这里插入图片描述
业务流程举例:
1、 用户可以通过pc、手机等客户端访问系统进行在线学习。
2、 系统应用CDN技术,对一些图片、CSS、视频等资源从CDN调度访问。
3、 所有的请求全部经过负载均衡器。
4、 对于PC、H5等客户端请求,首先请求UI层,渲染用户界面。
5、 客户端UI请求服务层获取进行具体的业务操作。
6、 服务层将数据持久化到数据库。

各模块说明如下:

序号 名称 功能描述
1 用户层 用户层描述了本系统所支持的用户类型包括:pc用户、app用户、h5用户。pc用户通过浏览器访问系统、app用户通过android、ios手机访问系统,H5用户通过h5页面访问系统。
2 CDN CDN全称Content Delivery Network,即内容分发网络,本系统所有静态资源全部通过 CDN加速来提高访问速度。系统静态资源包括:html页面、js文件、css文件、image图片、pdf和ppt及doc教学文档、video视频等。
3 负载均衡 系统的CDN层、UI层、服务层及数据层均设置了负载均衡服务,上图仅在UI层前边标注了负载均衡。 每一层的负载均衡会根据系统的需求来确定负载均衡器的类型,系统支持 4层负载均衡+7层负载均衡结合的方式,4层负载均衡是指在网络传输层进行流程转发,根据IP和端口进行转发,7层负载均衡完成HTTP协议负载均衡及反向代理的功能,根据 url进行请求转发。
4 UI层 UI层描述了系统向pc用户、app用户、h5用户提供的产品界面。根据系统功能模块特点确定了UI层包括如下产品界面类型: 1)面向pc用户的门户系统、学习中心系统、教学管理系统、系统管理中心。 2)面向h5用户的门户系统、学习中心系统。 3)面向app 用户的门户系统、学习中心系统未在上图标注,在app项目中有详细说明。
5 微服务层 微服务层将系统服务分类三类:前端服务、后端服务及系统服务。 前端服务:主要为学习用户提供学习服务。 后端服务:主要为管理用户提供教学管理服务。 系统服务:公共服务,为系统的所有微服务提供公共服务功能。 服务网关:提供服务路由、负载均衡、认证授权等服务。
6 数据层 数据层描述了系统的数据存储的内容类型,持久化的业务数据使用MySQL和MongoDB 保存,其中MongoDB中主要保存系统日志信息。 消息队列:存储系统服务间通信的消息,本身提供消息存取服务,与微服务层的系统服务连接。 索引库:存储课程信息的索引信息,本身提供索引维护及搜索的服务,与微服务层的系统服务连接。 缓存:作为系统的缓存服务,存储课程信息、分类信息、用户信息等,与微服务层的所有服务连接。 文件存储:提供系统静态资源文件的分布式存储服务,文件存储服务器作为CDN服务器的数据来源,CDN上的静态资源将最终在文件存储服务器上保存多份。 流媒体服务:作为流媒体服务器,存储所有的流媒体文件。
7 外部系统接口 1)微信、QQ、微博登录接口,本系统和微信、QQ、微博系统对接,用户输入微信、QQ、微博的账号和密码即可登录本系统。2)微信、QQ、微博分享接口,本系统和微信、QQ、微博系统对接,可直接将本系统的课程资源信息分享到微信、QQ、微博。3)支付宝、微信、网银支付接口,本系统提供支付宝、微信、网银三种支付接口。4)短信接口,本系统与第三方平台对接短信发送接口。 5)邮件接口,本系统需要连接第三方的smpt邮件服务器对外发送电子邮件。 6)微信公众号,本系统与微信公众号平台接口,用户通过微信公众号访问H5页面。 7)点播、直播,前期视频点播与直播采用第三方服务方式,本系统与第三方点、直播服务对接,对外提供视频点播与直播服务。 8)OSS存储 ,前期静态资源文件的存储采用第三方服务方式,本系统与第三方提供的OSS存储服务对接,将系统的静态资源文件存储到第三方提供的OSS存储服务器上。 9)CDN,本系统与第三方CDN服务对接,使用CDN加速服务来提高本系统的访问速度。
序号 名称 功能描述
8 DevOps DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。本项目供了许多开发、运营、维护支撑的系统,包括: Eureka服务治理中心:提供服务治理服务,包括:服务注册、服务获取等。 Spring Cloud Config服务配置管理中心:提供服务配置管理服务,包括:配置文件更新、配置文件下发等。 Hystrix Dashboard服务熔断监控:监控熔断的请求响应时间、成功率等 。 Zipkin服务追踪监控:监控服务调用链路健康情况。 Jenkins持续集成服务:提供系统持续集成服务。 Git/GitLab代码管理服务:提供git代码管理服务。 ELK日志分析服务:提供elk日志分析服务,包括系统运行日志分析、告警服务。 Docker容器化部署服务:将本系统所有服务采用容器化部署方式。 Maven项目管理工具:提供管理项目所有的Java包依赖、项目工程打包服务。

2.2 技术栈

  • 下图是项目技术架构的简图,通过简图了解项目所使用的技术栈。
  • 在这里插入图片描述
    重点了解微服务技术栈:
    学成在线服务端基于Spring Boot构建,采用Spring Cloud微服务框架。
    持久层:MySQL、MongoDB、Redis、ElasticSearch
    数据访问层:使用Spring Data JPA 、Mybatis、Spring Data Mongodb等
    业务层:Spring IOC、Aop事务控制、Spring Task任务调度、Feign、Ribbon、Spring AMQP、Spring Data Redis 等。
    控制层:Spring MVC、FastJSON、RestTemplate、Spring Security Oauth2+JWT等微服务治理:Eureka、Zuul、Hystrix、Spring Cloud Config等

2.3 开发步骤

项目是基于前后端分离的架构进行开发,前后端分离架构总体上包括前端和服务端,通常是多人协作并行开发,开发步骤如下:

1、需求分析
梳理用户的需求,分析业务流程
2、 接口定义
根据需求分析定义接口
3、 服务端和前端并行开发
依据接口进行服务端接口开发。
前端开发用户操作界面,并请求服务端接口完成业务处理。
4、 前后端集成测试
最终前端调用服务端接口完成业务。

3 CMS需求分析

3.1 什么是CMS

1、CMS是什么 ?
CMS (Content Management System)即内容管理系统,不同的项目对CMS的定位不同,比如:一个在线教育网站,有些公司认为CMS系统是对所有的课程资源进行管理,而在早期网站刚开始盛行时很多公司的业务是网站制作,当时对CMS的定位是创建网站,即对网站的页面、图片等静态资源进行管理。
2、CMS有哪些类型?
上边也谈到每个公司对每个项目的CMS定位不同,CMS基本上分为:针对后台数据内容的管理、针对前端页面的管理、针对样式风格的管理等 。比如:一个给企业做网站的公司,其CMS系统主要是网站页面管理及样式风格的管理。
3、本项目CMS的定位是什么?
本项目作为一个大型的在线教育平台,对CMS系统的定位是对各各网站(子站点)页面的管理,主要管理由于运营需要而经常变动的页面,从而实现根据运营需要快速进行页面开发、上线的需求。

3.2 静态门户工程搭建

本项目CMS是对页面进行管理,对页面如何进行管理呢?我们首先搭建学成网的静态门户工程,根据门户的页面结构来分析页面的管理方案。
门户,是一个网站的入口,一般网站都有一个对外的门户,学成在线门户效果图如下:

在这里插入图片描述

3.2.1 导入门户工程

  1. 安装WebStorm
    参考“WebStorm安装手册.md”安装WebStorm-2018.2.3.exe参考“WebStorm安装手册.md”安装WebStorm-2018.2.3.exe

  2. 安装Nginx
    下载nginx:http://nginx.org/en/download.html
    本教程下载nginx-1.14.0.zip(http://nginx.org/download/nginx-1.14.0.zip) 解压nginx-1.14.0.zip到自己的计算机,双击nginx.exe即可运行。
    访问 :http://localhost
    在这里插入图片描述

  3. 导入门户工程
    将课程资料中的门户工程拷贝到代码目录。
    使用WebStorm打开门户工程目录,目录的结构如下,后期会根据开发的推进进行扩充。在这里插入图片描述

3.2.2 配置虚拟主机 在nginx中配置虚拟主机:

server{
		listen 80;
		server_name www.xuecheng.com;
		ssi on;
		ssi_silent_errors on;
		location / {
			alias F:/teach/xcEdu/xcEduUI/xc‐ui‐pc‐static‐portal/;
			index index.html;
	}
}

F:/teach/xcEdu/xcEduUI/xc-ui-pc-static-portal/ 本目录即为门户的主目录。
5、配置hosts文件
本教程的开发环境使用Windows 7,修改C:\Windows\System32\drivers\etc\hosts文件在这里插入图片描述
进入浏览器,输入http://www.xuecheng.com

3.2.3 SSI服务端包含技术

本节分析首页的管理方案。

1.页面内容多如何管理?
将页面拆分成一个一个的小页面,通过cms去管理这些小页面,当要更改部分页面内容时只需要更改具体某个小页面即可。
2. 页面拆出来怎么样通过web服务浏览呢?
使用web服务(例如nginx)的SSI技术,将多个子页面合并渲染输出

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值