小帽教育

第一章 项目开发环境搭建

一、项目背景

1.在线教育市场环境

在线教育行业是一个有着极强的广度和深度的行业,从校内到校外;从早幼教到职业培训;从教育工具到全信息化平台等等。

2020年的新冠疫情外生冲击,让在线教育再次站在聚光灯下。疫情下教育领域获融资最多,而其中在线教育最受资本青睐。据艾瑞咨询统计,2020年教育行业累计融资1164亿元,其中在线教育融资金额1034亿元,占比89%。与此同时,在行业处于困境的情况下,会加速洗牌,资源向好的企业集中。2020年资源向头部集中趋势明显,中小型机构生存更加困难。2020年资本向在线教育行业累计输送的1034亿元中,80%都流向了头部的5家公司。

To C市场

据艾瑞咨询统计核算,2020年中国在线教育行业市场规模2573亿元,过去4年的CAGR达34.5%,其中低幼及素质教育赛道、K12学科培训赛道在线化进程加快是在线教育市场快速增长的最主要贡献因素。疫情影响下,低幼及素质教育领域的在线化范围持续纵深,职业教育领域的在线化进程也在不断加速,新的供给和需求不断产生。但同时,2020年疫情外生冲击加快了2020年的在线教育进程,将会透支一部分2021年的增速,艾瑞预计2021年在线教育行业同比增速将回落到20%左右。

To B 市场

疫情也加速了整个教育产业链的进化,to B机构快速成长起来,扮演着赋能者的角色,课程内容、招生、师训、直播系统、管理系统等产品及服务大量涌现。随着云服务发展成熟以及疫情对直播课需求的催化,大量提供直播授课系统等PaaS/SaaS服务的机构迅速成长起来,成为各种会展上的主力军。

2. IT培训市场规模

中国IT人才供给报告(https://new.qq.com/rain/a/20210831A01JI600)

IT人才总体供不应求,高中低人才分别占比8%、41%、51%,详见下图:

IT服务是贯穿IT应用系统全生命周期的各项服务的统称,下图是IT服务产品图谱,本项目属于IT培训产业。

下图是IT培训市场规模:

二、项目介绍(面试)

1. 项目介绍

小帽教育项目借鉴了MOOC(大型开放式网络课程,即MOOC(massive open online courses))的设计思想,是一个提供IT职业课程在线学习的平台,它为即将和已经加入IT领域的技术人才提供在线学习服务,用户通过在线学习、在线练习、在线考试等学习内容,最终掌握所学的IT技能,并能在工作中熟练应用。

在线教育的模式出现多种多样,包括:B2C、C2C、B2B2C等业务模式。小帽教育采用B2B2C业务模式,即向企业或个人在线教育平台提供教学服务,老师和学生通过平台完成整个教学和学习的过程,市场上类似的平台有:网易云课堂、腾讯课堂等,学成在线的特点是IT职业课程在线教学。

2. 功能模块与演示

本项目包括门户、个人学习中心、教学机构管理平台、运营平台、社交系统、系统管理6个模块 。

本项目主要包括三类用户角色:学生、教学机构的老师、平台运营人员。

主要讲解下边的业务流程:

1、教学机构的老师登录教学管理平台,编辑课程信息,发布自己的课程。

2、平台运营人员登录运营平台审核课程、视频等信息,审核通过后课程方可发布。

课程编辑与发布流程如下:

3、课程发布后学生登录平台进行选课、在线学习。

免费课程可直接学习,收费课程需要下单购买。

学生选课流程如下:

三、项目的技术架构(面试)

1. 项目技术架构

​ 小帽教育项目采用当前流行的前后端分离架构开发,由以下流程来构成:用户层、CDN内容分发和加速、负载均衡、UI层、微服务层、数据层。

项目技术架构图

技术架构列表

序号 名称 功能描述
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用户的门户系统、学习中心系统。
5 微服务层 微服务层将系统服务分类三类:业务服务、基础服务、第三方代理服务。 业务服务:主要为学成在线核心业务提供服务,并与数据层进行交互获得数据。 基础服务:主要管理学成在线系统运行所需的配置、日志、任务调度、短信等系统级别的服务。 第三方代理服务:系统接入第三方服务完成业务的对接,例如认证、支付、视频点播/直播、用户认证和授权。
6 数据层 数据层描述了系统的数据存储的内容类型,关系性数据库: 持久化的业务数据使用MySQL。 消息队列:存储系统服务间通信的消息,本身提供消息存取服务,与微服务层的系统服务连接。 索引库: 存储课程信息的索引信息,本身提供索引维护及搜索的服务,与微服务层的系统服务连接。 缓存: 作为系统的缓存服务,作为微服务的缓存数据便于查询。 文件存储: 提供系统静态资源文件的分布式存储服务,文件存储服务器作为CDN服务器的数据来源,CDN上的静态资源将最终在文件存储服务器上保存多份。

流程说明

  1. 用户可以通过pc、手机等客户端访问系统进行在线学习。
  2. 系统应用CDN技术,对一些图片、CSS、视频等资源从CDN调度访问。
  3. 所有的请求全部经过负载均衡器。
  4. 对于PC、H5等客户端请求,首先请求UI层,渲染用户界面。
  5. 客户端UI请求服务层获取进行具体的业务操作。
  6. 服务层将数据持久化到数据库。

2. 项目技术栈

​小帽教育按照技术分层的基础上,需要对主要层次使用具体的技术作说明。下面是小帽教育技术栈结构图。

技术栈(技术结构图)

四、项目开发环境搭建

1. 开发工具配置

​在项目开发前期,需要将本地开发环境进行统一配置,方便后期开发中出现因环境问题引起的异常。在真实开发中也是一样的,开发前,需要对开发环境进行统一配置。不同的公司会有不同的开发环境配置,这里需要大家引以重视,到公司开发前一定要先将本地开发环境进行统一。

所有工具存放:D:\Develop\tools

1.1 开发工具版本

服务端开发基础工具版本列表

开发工具 版本号
IntelliJ-IDEA 2021.x以上版本
Java JDK-1.8.x
Maven 3.6.x以上版本
Mysql 8.x
VMware-workstation 15.x
CentOS 7.x
nacos-server- 1.4.1
rabbitmq 3.8.34
redis 6.2.7
xxl-job-admin: 2.3.1

​项目应从基础 JDK 环境开始配起(基础),需要自行做JDK环境变量配置和IDEA中配置JDK。

1.2 IDEA环境配置
1.2.1 IDEA配置环境编码

上图解释:
注释①:全局字符集设置 UTF-8
注释②:项目(Project)字符集设置 UTF-8
注释③:项目中的properties文件的编码集设置 UTF-8,后面的选项要勾选,这样中文字符会自动转化为16进制

1.2.2 IDEA设置 Java 编译级别


上图解释:
注释①:设置 JDK 版本
注释②:设置 Java 编译级别

1.2.3 IDEA自动导包设置

IDEA可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设置
下面可以通过设置来进行导包优化。

上图解释:
勾选上图面板中的两个选项

1.2.4 IDEA代码提示忽略大小写

IDEA代码提示默认是区分大小写的,设置为提示忽略大小写,编译我们后期的开发。

上图解释:
注释①:在Code Completion选项面板中,去掉 Match case 前的选项 。

1.2.5 设置代码注释模板

为了规范代码编写,一般在企业中会有自己的开发规范,开发规范中对代码的注释也会有一定的规范,比如下边的规范:

1、所有的类、接口、枚举类型、类的属性、方法的都强制要求编写注释,注释必须使用javadoc规范,使用/***/多行注释格式,不允许使用//xxx单行注释方式。比如下边的注释是不允许的:

//本类是一个测试类
//本类的功能是....
class T1{}

2、所有的类、接口、枚举类型的注释要求写明作者、功能、日期。

3、代码如果修改需要修改相应的注释。

IDEA提供代码注释模板,方便团队规范代码 的注释。

下边配置IDEA上的代码注释:

1、注释中作者信息非常重要,可以通过虚拟机环境变量进行配置。

点击 Help->Edit Custom VM Options…打开idea.vmoptions文件,在最下面增加一行-Duser.name=用户名。

2、配置类、接口、枚举注释模板。

打开IDEA代码模板配置界面,分别配置Class、Interface、Enum.


注释模板内容如下:

 /*** @description TODO* @author ${USER}* @date ${DATE} ${TIME}* @version 1.0*/

3、配置方法模板
打开Line Templates界面

首先添加一个Template Group:

输入名称,点击“OK”

在分组下添加代码模板

点击“Change”,选择Java下的所有项目

填写模板的内容:

Abbreviation:输入*星号,在方法上输入反斜杠加星号自动生成注释。

Description:模板的描述

Template text: 模板内容

如下:

*** @description TODO* $params$* @return $return$* @author $user$* @date $data$ $time$
*/

点击Edit Variables编辑模板中用的变量

对于params方法的参数需要填写脚本,如下:

groovyScript("if(\"${_1}\".length() == 2) {return '';}
else {
def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
if(i==0){result+='@param ' + params[i] + ' '}
else{result+='\\n' + ' * @param ' + params[i] + ' '}};
return result;}", methodParameters()
);

其它项目按照上图填写,点击“OK”。

1.3 Maven仓库配置

​maven使用3.6以上的版本,此项目使用apache-maven-3.8.6-bin.zip。

​复制好maven仓库,在本机中Maven的setting.xml文件中配置maven仓库位置,maven仓库的目录路径不要有特殊字符和中文(切记)

1.3.1 Maven中配置仓库位置

在Maven的conf目录中setting.xml文件中配置好仓库的位置并配置阿里云中央仓库地址。

解压仓库 repository.zip 到本地硬盘

配置到conf目录中的setting文件中


maven的中央仓库设置为阿里云服务

1.3.2 IDEA中配置maven

下边在idea中配置maven安装目录及本地仓库的位置。

​在IDEA中: File --> Settings --> Build --> Build Tools --> Maven

Maven项配置

下图中的 ① ② ③ 项要配置成自己本地中的路径位置

上图解释:
注释①:设置自己的maven路径(maven的根目录)
注释②:配置maven的settings文件的位置
注释③:配置maven的仓库位置

【项目】小帽教育(一)相关推荐

  1. 项目实战—教育平台大数据分析系统

    项目实战-教育平台大数据分析系统 一.数据准备 1.日志数据字段数据字典 2.日志文件test.log 二.项目需求 三.项目介绍 项目需求 数据源 技术栈 四.完整代码 一.数据准备 1.日志数据字 ...

  2. springboot毕设项目老年教育学习系统fte91(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目老年教育学习系统fte91(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HB ...

  3. Tableau 数据可视化之项目一 教育网站指标评估

    项目背景及需求分析 详细设计 原型效果 训练技能点 原始数据 具体实现 制作"均分视图"视图 制作"考试成绩"视图 制作学校教育水平评估表仪表板 各维度视图比较 ...

  4. 数仓项目——在线教育平台离线数据仓库效果展示

    背景:基于阿里云的3台ECS云服务器搭建了在线教育平台的离线数据仓库,本文仅用于记录最终的效果,从0到1的实现过程后续进行补充,由于抢占式实例的云服务器按量进行每小时计费,为了避免持续的收费,所以我急 ...

  5. JAVA毕设项目-中小学教育机构培训系统-(java+VUE+Mybatis+Maven+Mysql)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  6. 一个企业级数据挖掘实战项目|教育数据挖掘

    数据集描述 本案例数据集来自Balochistan的6000名学生.其基本情况:一共13个字段,其中RESULT为结果标签: 语言字段是经过独热编码后的四个字段,分别为Lang1, Lang2, La ...

  7. javax maven项目缺少_教育平台项目后台管理系统:介绍与搭建

    项目架构 项目介绍 教育后台管理系统是提供给相关业务人员使用的一个后台管理系统,业务人员可以在这个后台管理系统中,对课程信息.讲师信息. 学员信息等数据进行维护. 课程管理模块 课程管理 新建课程 条 ...

  8. 团队项目介绍--基于区块链的教育信息管理系统

    1. 队名 EduChain小组 2. 队员风采 ①  姓名:马宁 职务:组长 学号:2017011742 风格:积极向上,乐观开朗,热情大方 擅长的技术:擅长html,css,js,bootstra ...

  9. 尚硅谷的谷粒学院在线教育项目笔记

    不特意写格式了 免得多花时间 项目简介:全后端分离项目 在线教育业务 官网+后台 功能模块: 技术栈: MyBatis-Plus的主键生成策略: 参考链接:https://www.cnblogs.co ...

最新文章

  1. 前端学习笔记系列一:14 vue3.X中alias的配置
  2. c语言中小数乘法怎样写程序,四年级下册lbrack;小数乘法rsqb;知识点归纳
  3. Jupyter Notebook中显示图像和数学公式
  4. python中一个汉字点3个字节? utf-8
  5. 寒假作业 使用xmind脑图小结课程内容
  6. zz机器学习与人工智能学习资源导引
  7. 操作系统概念第四章部分作业题答案
  8. 如何分析加上SE壳的.net程序
  9. 远程软件TeamViewer如何导出选项注册表文件?
  10. [emacs]man mode
  11. 微信公众号网页授权登陆
  12. 前端js华为云obs断点续传上传
  13. PrintWriter out=response.getWriter()的问题
  14. 18.sql server横向切分、纵向拆分表、相对平均分配数据、复杂sql语句、数据库存储原理(by-朝夕)
  15. 5G高低频组网,到底是什么意思?
  16. RGB和RGBA之间的转换 (实用、赞)
  17. 偏函数与部分应用函数
  18. 设置修改Tomcat的UTF-8编码
  19. 计算机重装系统恢复数据,电脑重装系统后数据恢复图文详解
  20. R 多变量数据预处理_R语言 数据管理与dplyr、tidyr | 第4讲

热门文章

  1. 计算机Zoom和Trace功能键,求corel painter快捷键完全版?
  2. SCMS读书笔记一——SCMS组件功能介绍
  3. 计算球面上任意两点间的球面距离(C++实现)
  4. 理解低压差稳压器(LDO)
  5. 3. Fomula-Financial Market and Product
  6. 摄像头 保存到外网服务器_【小喵科技】人工智能插件进阶篇:使用多个摄像头...
  7. 4.Git基本命令操作
  8. 编程十年 (1):前传1——记我家的电子产品
  9. 分析c++内存泄露(使用VS 性能探查器)
  10. 计算机桌面文件自动备份取消,电脑自动还原功能怎么取消-电脑自动还原功能的取消方法 - 河东软件园...