/CIYOU

翻转课堂模式的小学网络教学平台,基于Groovy,使用Spring Boot + Mybatis 框架、Shiro安全框架,并使用Druid为数据库连接池,Redis为项目缓存。

Primary LanguageGroovyApache License 2.0Apache-2.0

CIYOU

思源教育

该项目是基于翻转课堂实现的小学网络教育平台。

国内已经有很多尝试使用翻转课堂模式的教学网络平台,但是现在大多数的网络教学平台不能很好的抓住翻转课堂的痛点,翻转课堂教学的重点和难点在于教师要如何对学生进行个性化指导,这就需要有翻转课堂网络教学平台的辅助,需要系统记录学生的学习进度,学习中遇到的困难、问题,教师可以查看到这些数据,教师通过平台提供的分析数据图表,可以清晰地了解到学生在课前的学习中,都学到了什么程度,疑惑难点集中在哪些地方,落后的学生对什么样问题会产生疑惑和纠结。如此,教师才能根据不同的学生的学习情况,设置不同的教学策略,开展有针对性的辅导,这才是翻转课堂的灵魂所在。

因为从目前的**国情来讲,翻转课堂还太适合**的中高考,而针对于小学进行翻转课堂的教学,更加有研究意义。

翻转课堂

目前国内的小学教育大多数是小班授课制,而小班授课制度在我们传统的课堂教学模式下也不能解决学生间理解能力差异的问题,而且老师作为课堂的掌控者,学生在上课时间内没有弄明白问题,老师在课堂上也不会停下来解答,相反会继续后面的教学任务,但是知识点与知识点之间是有关联的,这就造成了学生的学习效率大大降低了,翻转课堂的出现很好的解决了这一问题。

翻转课堂的教育模式在教育应用这一方面的前景十分广阔。在计算机科学技术与互联网的快速发展的今天,“翻转课堂式”的网络教学模式慢慢出现在人们的视野。翻转课堂把传统课堂的教学模式彻底颠覆了。这种模式满足学生对不同科目的知识点进行个性化学习,还能帮助学生查漏补缺又能巩固知识,传统课堂的教学资源被大大地补充和拓展了。对于老师而言,教师从一个知识的灌输者转变为一个课堂的管理者,教师可以更加容易针对学生进行个性化指导。

开发环境简介

该基于翻转课堂的小学网络教育平台是基于Groovy语言开发,使用Spring Boot+Mybatis框架为技术支持,并使用Maven来管理项目的构建,系统数据库使用的是MySQL,前端使用Bootstrap轻量级后台模板AdminLTE。这个项目还使用Shiro作为安全框架,采用Redis作为项目的缓存,并使用阿里巴巴开源平台上一个数据库连接池Druid。Spring Boot我属于初学者,学了一个月的时间包括其他的一些第三方技术的集成学习。所以这个项目也算是我对Spring Boot的学习和实践,大概用了一个月的时间完成了这个项目,由于时间紧迫,功能还不是很完善,部分功能也是从我另一个项目中拿来使用,所以项目中也有很多需要改进和不足的地方,以后会继续学习和改进。

Groovy概述

Groovy是脚本语言,和系统编程语言比如Java相比,它表示能力更加强,能提供更高的抽象等级、编程生产力,更快捷的开发能力。

关于Groovy的学习,可以查看我的博文:Groovy系列

Spring Boot概述

随着动态语言的流行,Java的开发显得格外的笨重,比如多配置、低开发效率、复杂的部署流程以及第三方技术集成难度大。而Spring Boot很好地解决了上述问题,它有一个内置的配置,让你不需要手动进行配置,可以很简单快捷创建一个独立运行的Spring框架项目。使用Spring Boot你可以不用或者只要很少的配置,并且对主流开发框架进行无配置集成,而且项目可独立运行,极大地提高了开发、部署的效率。

关于Spring Boot的学习还有我项目中的遇到的问题、项目中与其他第三方技术的集成配置。可以点击我的博文查看:Spring Boot系列

当然我也推荐初学者最好去看看作者恒宇少年Spring Boot 核心技术系列

Mybatis概述

Mybatis是支持定制化SQL、存储过程和高级映射的优秀的持久层框架。而且Mybatis没有其他的第三方依赖,所以框架体积就很小,而且Mybatis简单易于学习和使用。

Redis概述

Redis是非关系型数据库。以往我们的项目都是采用直接访问数据库,但一旦访问量过大或者访问过于频繁,都会对项目的数据库带来很大的压力,而Redis的出现很好的解决了这一问题,Redis数据库可以缓存我们项目的数据和session,实现分布式session共享。因为基于键值对,所以Redis性能很强,读写速度快,满足实时的高并发需求。

Shiro概述

Apache Shiro是一个强大易用的Java安全框架,执行身份验证、授权、密码学和会话管理。

Druid概述

Druid是阿里巴巴开源平台上一个数据库连接池,具有强大的监控性和扩展性,是Java语言中最好的数据库连接池。

系统功能

由于时间紧迫,所以设计的功能比较少,有些设想好的功能也只能毙掉了,比如教师布置作业模块,学生教师交流解答模块,还有视频学习进度记录模块等等,答题模块也是从我github上的另一个在线考试系统项目中抽取出来的。下面就是这个项目已经实现好的功能模块图。

image

系统截图

管理员登录界面

url:adminLogin

image

登陆模块是对不同用户的身份进行验证,然后进入主界面。登陆入口有三个,分别是学生、教师、管理员登陆入口。系统首先通过区分不同的登陆入口,不同的登录入口LoginType对应不同的角色,比如:Admin、Teacher、Student,前台页面先对输入的用户名和密码进行js校验判断输入值是否合法,然后在把用户名、密码还有LoginType传入后台进行判断,后台也会对传入的数据进行校验合法性,校验成功后使用Shiro对登陆用户进行认证和授权。Shiro根据LoginType的值去找对应的AuthorizingRealm进行认证,认证过程由Shiro自动完成,然后返回认证结果,认证成功则跳转到相应的主界面,认证失败则返回相应的错误信息。

教师登录界面

url:teacherLogin

image

学生登录界面

url:login

image

管理员主界面

image

管理员管理模块

  • 管理员管理

image

  • 添加管理员

image

  • 修改管理员

image

  • 超级管理员授权

image

超级管理员可以对管理员的权限进行授权,前台通过ajax把管理员的ID传入后台,后台查询数据库,把管理员的权限信息构造为一个TreeNode的对象,并把这个对象转化为一个JSON字符串返回给前台,前台使用bootstrap-treeview插件,把后台传入的JSON字符串构造出一个权限树,并把该管理员的权限信息显示在权限树上。超级管理员可以勾选权限,点击保存提交到后台,后台对提交的权限字符串信息进行分割处理,然后添加到数据库中。

教师管理模块

  • 教师管理

image

  • 添加教师

image

  • 修改教师

image

学生管理模块

  • 学生管理

image

  • 添加学生

image

  • 修改学生

image

权限管理模块

  • 查看权限

image

  • 添加根权限

image

  • 添加子权限

image

  • 编辑权限

image

年级管理模块

  • 年级管理

image

  • 添加年级

image

  • 修改年级

image

班级管理模块

  • 班级管理

image

  • 添加班级

image

  • 修改班级

image

科目管理模块

  • 科目管理

image

  • 添加科目

image

  • 修改科目

image

视频审核模块

image

教师主界面

image

教师视频管理模块

  • 教师视频管理

image

  • 视频上传

image

上传视频和对应的视频封面。文件上传使用的是Baidu WebFE(FEX)团队开发的一款上传插件:WebUploader。WebUploader会把大文件分割成一块块然后并发上传到后台,这大大的提高了文件上传效率。

教师班级分配管理模块

  • 教师班级分配

image

  • 添加班级分配

image

  • 修改班级分配

image

教师查看学生模块

该教师只能查看自己班级的学生资料

image

教师小测管理模块

  • 教师小测管理

image

  • 添加小测

image

  • 修改小测

image

小测试题管理模块

  • 添加选择题

image

  • 添加判断题

image

教师成绩查询模块

该教师只能查看自己班级学生的成绩

image

教师成绩查询模块

  • 教师成绩查询

该教师只能查看自己班级学生的成绩

image

  • 教师查看成绩详情

image

班级分析模块

分析该班级各科平均成绩与全年级各科平均成绩的对比图

image

学生分析模块

教师可以在学生分析模块中,选择学生查看该学生的小测成绩分析,可以分析该学生各科成绩与该学生所在班级和所在年级的各科平均成绩进行比较,获得对比的统计图表。统计图表使用Chart.js, Chart.js是一个基于HTML5 canvas技术的开源图表绘制工具库,简化了在网站上绘制动态图表的工作。

image

小测分析模块

在小测分析模块中,教师可以选择想要分析的小测,系统分析出各种图表,图表显示该小测的错题分布情况,可以查看错误率最高的题目是哪个。

image

学生观看视频模块

  • 学生观看视频

学生登录成功后,进入观看视频页面,学生可以选择年级、科目来进行筛选想要的视频。前台使用Video.js来操作视频,Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。

image

  • 视频播放界面

image

学生小测模块

  • 学生小测

image

  • 学生答题界面

image

我的成绩模块

  • 我的成绩

image

  • 学生得分详情

image

个人设置模块

  • 个人设置

image

  • 头像上传

image

错误页面

  • 角色权限不通过页面

image

  • 管理员权限不足页面

image

  • 404页面

image

  • 500页面

image

学习参考

想学习在线教育网站设计的可以参考下因酷在线教育,使用java实现的。

还可以参考TeachLine,是根据因酷在线教育旧版系统进行改造的。

还有下面大神们写的项目也可以参考:

高仿慕课网:py3.5 + Django1.10 + xadmin 搭建的在线课程教育平台

萌课(tinymooc)

xstrap

环境配置

  1. 创建数据库,导入sql文件。
  2. 下载Redis,并打开Redis服务:下载和安装方法
  3. 使用IDEA导入项目:IntelliJ IDEA如何导入maven结构的web工程
  4. 修改数据库配置 image
  5. 修改启动端口Maven pom.xml image
  6. 编译项目
  7. 项目运行 image image
  8. 管理员后台http://localhost:8080/adminLogin,用户名密码都是admin
  9. 教师后台http://localhost:8080/teacherLogin
  10. 学生入口:http://localhost:8080/login
  11. 添加学生和教师默认密码都是123456