启源在线 2018.12 - 2019.04
项目描述:《启源在线》是一款前后端分离的分布式项目,本项目采用了B2B2C的业务模式,并且借鉴了MOOC的设计思想,是一个提供多种类课程在线学习的平台,用户通过在线学习、在线练习、在线考试等学习方式最终掌握课程内容。
项目功能:用户的登录、退出的验证功能,用户访问的授权功能,课程的增删查改功能,课程计划的增删查改功能,新页面的预览与发布功能,课程的搜索功能,课程发布功能,在线学习功能,在线直播功能,视频点播功能,在线考试功能,学习统计功能,在线答疑功能,选课订购功能等等。
项目技术:Vue.js + Node.js + WebPack + Nuxt.js + Element UI + Nginx + WebUpload + Video.js + RabbitMQ + Freemarker + ElasticSearch + FFmpeg + FastDFS + SSM + Swagger + SpringBoot + SpringCloud + Spring Task + Spring Data JPA + Spring Data MongoDB + Spring Security Oauth2 + Spring RabbitTemplate + Spring Data Redis。
本人使用技术:
前端:
1、使用Vue.js做数据的传递与页面的展示。
2、WebPack进行资源打包,Nginx反向代理整合各个子站点。
3、Node.js的ProxtTable做代理转发,解决同源策略下的跨域问题。
4、Nuxt.js进行服务端渲染,加深搜索引擎优化,方便支持网络爬虫抓取页面数据。
5、WebUploader作为视频文件的上传组件,解决断点续传问题。
后端:
1、基于SpringBoot与Maven搭建项目内部结构。
2、Spring做事务管理与依赖注入。
3、Spring MVC定义RestFul风格接口并对外暴露。
4、Spring Data MongoDB操作MongoDB数据库。
5、Spring Data JPA与Mybatis操作MySQL数据库。
6、SpringCloud的Eureka作为服务注册中心,Feign实现部分接口的远程调用以及负载均衡。
7、FreeMarker模板引擎进行页面静态化。
8、RabbitMQ作为发布页面的消息中间件。
9、ElasticSearch全文检索课程信息。
10、Spring Task + RabbitMQ保证订单支付成功后选课成功。
数据库:
1、MySQL存储课程与用户的信息。
2、MongoDB存储一些页面的信息以及页面静态化时所需要的模板和数据模型。
项目职责:
1、参与项目的需求分析。
2、负责部分前端页面的编写。
3、课程信息、课程计划信息的增删改查。
4、新课程的课程预览与发布。
5、课程搜索的索引功能,搜索引擎优化功能。