1.掌握技术栈
java
MySql
JDBC
JavaWeb
SSM
Redis
Maven
Linux
SpringBoot
2. 什么是在线教育
2.1 基本概述
在线教育顾名思义,是以网络为介质的教学方式,通过网络,学员与教师即使相隔万里也可以开展教学活动;此外,借助网络课件,学员还可以随时随地进行学习,真正打破了时间和空间的限制,对于工作繁忙,学习时间不固定的职场人而言网络远程教育是最方便不过的学习方式。
2.2 发展潜力
所有人离不开教育:早期教育、课外辅导、少儿英语、职业教育、出国留学、商学院、移民服务……而在信息化爆发式发展的趋势下,在线教育越来越凸显出优势:
1)在线教育可以突破时间和空间的限制,提升了学习效率;
2)在线教育可以跨越因地域等方面造成的教育资源不平等分配,使教育资源共享化,降低了学习的门槛。
基于在线教育的特点和优势,网络学校受到越来越多人的认可,各类新兴的网校及相关网站也不断涌现。显然,这代表着网校已经逐渐走进大众的生活并成为一种学习的主流趋势。因此很多人开始选择在线教育,特别是白领一族和大学生们。仅2012年一年,中国在线教育市场份额已经达到723亿元,且在线教育用户呈规模性放大。
2.3 适用行业
具体来说在线培训学习系统可适合于:
1)政府:现今我们的政府也提倡学习型组织,不断变化的政策环境、不断出现的新事物对政府公务员提出了更高的要求,而且政府机构的网络资源较佳,“在线培训系统”对公务员学习新知识和提高素质有很大帮助,更关键的是政府机构是垂直管理体制,只要在一个领域中创建并维护一套知识库,就可以让整个领域共享这宝贵的知识财富。
2)学校:随着网络的兴起,各大中学校可通过建立网上学校,加强学校、老师、学生之间的相互交流沟通,提高教学质量,亦可建立公共教学资源库,建设精品课程,宣传学校的教育实力。
3)行业:许多行业知识库体系庞大,专业多且层次深,因此行业一直注重知识和经验的积累,但这些宝贵的知识财富散落在各地,并没有利用和共享,因此,充分利用现有资源就能够创建一套丰富的知识库体系,让整个行业受益。
4)企业:企业的知识库体系通常是企业的核心竞争力,使用“在线教育培训系统”,企业能够创建自己的知识库体系,并允许企业内部员工随时随地学习和分享这些知识。不断提升的员工素质和不断积累的企业知识库是企业能够保持长久的竞争力的关键。对于大型企业,还可以为合作伙伴及客户创建远程学习平台,提升和考核合作伙伴的专业技能并降低服务和支持成本。
3.项目结构
4.系统架构
架构设计需要考虑的几个方面:
性能:
主要考虑访问频率,每个用户每天的访问次数。
项目初始阶段用户的访问量并不大,如果考虑做运营推广,可能会迎来服务器访问量骤增,
因此要考虑分布式部署,引入缓存
可扩展性:
系统功能会随着用户量的增加以及多变的互联网用户需求不断地扩展,
因此考虑到系统的可扩展性的要求需要使用微服务架构,引入消息中间件
高可用:
系统一旦宕机,将会带来不可挽回的损失,
因此必须做负载均衡,甚至是异地多活这类复杂的方案。
如果数据丢失,修复将会非常麻烦,只能靠人工逐条修复,这个很难接受,
因此需要考虑存储高可靠。
我们需要考虑多种异常情况:
机器故障、机房故障,针对机器故障,我们需要设计 MySQL 同机房主备方案;针对机房故障,我们需要设计 MySQL 跨机房同步方案。
安全性:
系统的信息有一定的隐私性,例如用户的个人身份信息,不包含强隐私(例如玉照、情感)的信息,
因此使用账号密码管理、数据库访问权限控制即可。
成本:
视频类网站的主要成本在于服务器成本、流量成本、存储成本、流媒体研发成本,
中小型公司可以考虑使用云服务器和云服务。