项目概述
国内外已经有了一些成熟的视频流媒体共享网站,例如国内的慕课平台,国外最著名的是Coursera,为学生提供了海量的学习资源。但是不管MOOC和还是Coursera都只主要提供了学习相关的视频教学。对于一个校园共享平台,还应该具有其他更完善的功能。本项目将搭建一个集视频学习,作业提交,课程考试等功能于一体的网络共享平台。
一、架构与设计模式
本系统采用 B/S(Browser/Server)架构模式,B/S 架构主体为客户端浏览器和远程服务器,是目前软件行业中广泛使用网络应用模式,它要求各个构件之间具有相互独立的功能,具有较高重用性。B/S 模式使本地客户端的使用方式统一化和简单化,开发人员可以把更多的经历投入在系统开发中,而用户从浏览器进行远程访问即可,无需安装额外软件,这样就可以很方便的访问和使用 Web 系统。相比于 C/S 模式,本文所采用的 B/S 模式通常只有一次性的成本投入,可操作性更强。对于用户而言 B/S 模式可以减少安装在客户端的软件数量。前端部分的功能实现较少,客户端的管理人员可以投入更多精力侧重于后台的维护,便于进行后期的维护工作,降低了开发过程中的时间和经济的成本。在 B/S 模式下,用户只要通过浏览器就可以获取远程服务,在后台处理程序过程中完成信息的通信和交互工作,而系统业务处理过程中涉及到的一些必要的信息将保存在数据库中,这样就构成了下图 所示的三层结构:
MVC 系统设计模式综合了设计模式中的观察者模式、策略模式、工厂模式、组合模式,从而集合了这四种模式的优点,经过不断的完善,成为现下比较成熟的一种设计模式。MVC 即 Model(M 模型)、View(V 视图)和 Controller(C 控制器),取自三个单词首字母。MVC 将将业务逻辑、数据和显示层相互分开,同时也保证各层的代码编写相互隔离;这样的方式降低了各层间的耦合性,便于底层代码的整理和维护。从而增加代码的可重用行和提高可维护性。
二、运行环境与开发技术选型
1.运行环境
jdk8 + Linux Ubuntu18.04.1 + mysql5.7 + redis4.0.0
2.技术选型
(1)前端框架vue
Vue.js是一款轻量级的以数据驱动的前端JS框架,其和jQuery最大的不同点在于jQuery通过操作DOM来改变页面的显示,而Vue通过操作数据来实现页面的更新与展示。
(2)后端框架SpringBoot + MyBatisPlus
SpringBoot可以创建独立的Spring应用程序,直接嵌入Tomcat,提供自以为是的“入门”依赖项,以简化构建配置尽可能自动配置Spring和3rd Party库,提供生产就绪的功能,例如指标,运行状况检查和外部配置,完全没有代码生成,也不需要XML配置。
MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。MyBatis可以使用简单的XML或注释进行配置,并将图元,映射接口和java pojo(普通的旧Java对象)映射到数据库记录。MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
(3)Nginx
Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性。在连接高并发的情况下,Nginx是Apache服务不错的替代品:能够支持高达 50,000 个并发连接数的响应。Nginx可以通过反向代理来实现负载均衡。
(4)数据库
关系型数据库采用mysql,因为mysql数据库相比其他关系型数据库相比,主从复制读写分离比较简单实现,而且它的存储引擎是可拔插的,可以根据不同的业务场景选择不同的存储引擎,比较灵活,主要的是mysql还是免费的,成本较低。
NoSql可以采用redis作为mysql的缓存,减小mysql的压力,加快数据查询速度。
三、REST API接口
四、概念原型视图
1.分解视图
2.依赖视图
3.执行视图
用户权限管理
课程视频管理
课程资料管理
在线观看视频
4.实现视图
5.部署视图
五、数据库设计
1.概念设计
本系统中有学生用户、教师用户以及管理员用户三个角色类型。这三个角色之间的联系,作为系统数据库设计的实际依据。各角色实体关系图如下:
除各用户角色外,本系统还有很多实体,部分实体介绍如下:
2.逻辑设计
(1)用户信息表:主要用于保存在线学习系统各类角色所有用户的相关信息。
(2)视频信息表:存储课程视频的相关信息
(3)上传文件信息表:记录上传的文件信息
(4)习题信息表:存储习题相关信息,便于进行课堂练习和考试
六、概念原型工作机制
用户分为系统管理员、学生、教师三种角色,系统管理员主要负责对学生、教师的注册身份审核以及学生选课及教师授课权限管理,教师注册成功后可以登陆进系统,发布录制的课程视频,布置课程作业,为学生课程打分,设置课程考试,以及在评论区与学生进行互动交流,学生注册成功后登陆进系统,可以选修课程,然后观看课程视频,完成课程作业和考试,最后得到课程分数,还可以在评论区向老师提问。