U-Learning——基于泛在学习的教学系统

GitHub项目地址

后续会结合开发日志一步步发布里程碑教程和遇到的问题与解决

项目背景

  该系统是一次将理论与实践相结合的创新设计,它结合当下在线教育形势,未来泛在学习发展趋势,在完美融合学校教育需求下进行的一次实践探索。

  移动设备和移动技术的应用已经改变了人们的学习方式和获取信息的途径,随时随刻拿出手机打开app或者浏览器即可进行想要资源的获取。在这样一个信息爆炸的时代中,学习系统的功能已经不仅仅是如何全面的将资源快速展现给学习者,更为重要的是如何针对性的将资源进行囊括。

  从人性化角度分析,不同于市面上常见的app下载方式,该系统实现更为便捷灵活的网页显示方式,用户根据需求登录即可进入相应页面,无论是在手机,平板抑或电脑等设备,该系统都会根据屏幕实际大小自适应显示完整内容,这体现了该系统的灵活高效的特征。从适用范围分析,它的主要环境是学校,包括学生和教师两种人物角色,系统同时满足学生学习、实验、测试要求以及教师教学任务管理、公告维护要求,这体现了该系统的实用特征。从文件资源的储存角度分析,所有文件,通告以及资源都是线上同步方式,完全可以在任何时候查看,并且不会失效,对于学生来说资源是共享且永久的。

技术栈

框架

  1. Spring Cloud(Greenwich.SR2)
  2. Spring Boot(2.1.6.RELEASE)
  3. MyBatis(2.1.0)
  4. Spring Security

中间件

  1. redis(5.0.4)
  2. FastDFS(6.04)

插件

  1. fastjson(1.2.54)
  2. druid(1.1.10)
  3. hutool(5.0.6)
  4. mapstruct(1.2.0.Final)
  5. lombok(1.18.10)
  6. ip2region(1.7.2)
  7. jjwt(0.9.1)
  8. swagger2(2.9.2)
  9. swagger-bootstrap-ui(1.9.5)
  10. spring-boot-admin(2.1.6)

里程碑

CentOS 7搭建JAVA开发环境

教程地址

接口参数校验(不使用hibernate-validator,规避大量if else)

教程地址

开发日志

2020-03-23

  1. 【网关】记录访问无权限接口日志

2020-03-22

  1. 【任务调度中心】修改本地服务端口号
  2. 【系统管理】修复获取角色已分配权限出现null的问题

2020-03-21

  1. 【教师端】新增分页查询学生测试结果统计信息
  2. 【教师端】根据测试任务id查询学生测试统计返回测试总分
  3. 【教师端】修改教学任务下拉框显示规则,添加学年用于区分
  4. 【教师端】实验、测试和通告只能操作当前及以后学期的数据
  5. 【教师端】创建教学任务时,只显示前1年学期
  6. 【任务调度中心】代理模式下不显示【用户管理】
  7. 【监控系统】过滤/actuator接口统计信息
  8. 【整体】查询日志改为开发模式显示

2020-03-20

  1. 【教师端】统计学生测试结果接口
  2. 【教师端】统计学生测试结果接口

2020-03-19

  1. 【学生端】查询所有测试任务数组不显示已完成的测试任务
  2. 【学生端】删除查询测试结果明细接口,添加分页查询测试结果明细接口
  3. 【学生端】测试试题的填空题若学生答案为空,则返回对应填空数量-1的|#|分隔符
  4. 【学生端】分页查询条件补充
  5. 【学生端】增加分页查询测试结果明细接口条件

2020-03-18

  1. 【学生端】分页查询测试任务添加学生测试状态字段
  2. 【学生端】查询测试结果明细接口

2020-03-17

  1. 【学生端】学生测试断线重连获取上次保存的答题记录
  2. 【学生端】修改测试组题返回的数据结构
  3. 【学生端】根据教学任务id查询所有测试任务数组新增测试任务状态字段
  4. 【学生端】调整spi包结构
  5. 【教师端】完成监控学生测试接口

2020-03-16

  1. 【监控系统】分页查询只记录查询第一页记录
  2. 【教师端】完成学生测试管理开发结构
  3. 【学生端】根据教学任务id查询所有测试任务数组新增测试任务状态字段

2020-03-15

  1. 【学生端】实验结果返回实验名、成绩排名和提交人数信息
  2. 【学生端】完成学生测试接口

2020-03-14

  1. 【网关】当用户修改信息时,清理缓存记录
  2. 【整体】修改服务部署策略
  3. 【common包】添加http访问工具类
  4. 【监控系统】添加druid监控数据管理接口
  5. 【教师端】分页查询实验结果返回实验名

2020-03-13

  1. 【学生端】完善临时保存接口

2020-03-12

  1. 【学生端】开发在线测试结果
  2. 【网关】修改网关部署配置
  3. 【监控系统】修改监控系统服务部署配置
  4. 【整体】调整服务部署策略

2020-03-11

  1. 【学生端】完善开始测试接口
  2. 【教师端】返回学生姓名、学号字段;支持根据学生姓名、学号和是否批改查询
  3. 【学生端】完成开始测试接口

2020-03-10

  1. 【教师端】完成实验结果管理接口
  2. 【教师端】通告查询添加附件大小信息
  3. 【教师端】通告分页查询进行缓存
  4. 【学生端】通告查询添加附件大小信息
  5. 【教师端】完成学生实验管理

2020-03-09

  1. 【学生端】根据id查询实验结果添加附件大小返回字段
  2. 【学生端】删除根据id查询实验结果接口,根据实验id查询实验结果接口

2020-03-08

  1. 【学生端】完成测试管理接口、待完成开始测试接口

2020-03-07

  1. 【学生端】实验查询添加已批改分类
  2. 【教师端】对测试参数进行验证

2020-03-06

  1. 【学生端】完成实验结果接口
  2. 【后台】修复根据teaId查询无效问题
  3. 【网关】开发文档去除ulearning-register选项
  4. 【监控系统】扫描u_experiment_result表
  5. 【学生端】查询实验列表检测是否已提交该实验结果

2020-03-05

  1. 【注册中心】注册中心注册自己,接入springBootAdmin进行健康检查
  2. 【整体】关闭邮箱健康检查

2020-03-04

  1. 【学生端】完成文件资料接口
  2. 【网关】将登录用户信息存入redis,对相关信息进行修改时清除redis中的用户信息

2020-03-03

  1. 【教师端】课程试题新增难度字段
  2. 【学生端】添加查询文件资料列表接口
  3. 【教师端】根据教学任务id查询知识模块

2020-03-02

  1. 【教师端】完善教学资源和文件资料根目录接口逻辑代码
  2. 【学生端】完成查询教学资源根节点接口

2020-03-01

  1. 【教师端】完成教学资源、文件资料(批量)删除和(批量)分享接口
  2. 【监控系统】分页查询,只记录查询第一页的日志,其余查询不记录
  3. 【教师端】完成教学资源和文件资料分享区接口
  4. 【后台】删除课程后,删除该课程下的所有教学任务

2020-02-29

【整体】整体微调

2020-02-28

  1. 【监控系统】扫描u_course_file表、将表和url索引管理起来,不用代码写死
  2. 【教师端】隐藏新增实验的序号字段
  3. 【教师端】新增选项字段
  4. 【教师端】新增删除实验接口
  5. 【教师端】调整实验编号更新策略

2020-02-27

【教师端】新增试验,order自动生成且递增

2020-02-26

  1. 【教师端】文件名重复判断
  2. 【教师端】教学任务别名作为教师操作的根目录

2020-02-25

  1. 【教师端】新增获取知识模块列表接口
  2. 【网关】修改登录模块内容,改为接口路径
  3. 【教师端】去除文件资料和教学资源的title非空判断

2020-02-24

  1. 【网关】自定义退出接口
  2. 【学生端】添加/完善教学任务查询接口
  3. 【教师端】修复学生移除后仍能查询到问题
  4. 【学生端】新增根据教师名称查询已选/未选教学任务信息

2020-02-23

  1. 【整体】配置系统发布

2020-02-22

  1. 【学生端】添加学生端服务模块
  2. 【学生端】完成学生选课相关接口
  3. 【学生端】完成查阅通告相关接口
  4. 【学生端】完成查看文件资料和教学资源功能开发结构

2020-02-21

【教师端】完善教学资源管理接口

2020-02-20

【教师端】完善文件资料管理接口

2020-02-19

  1. 【后台】修改获取角色查询已分配权限接口返回格式
  2. 【后台】新增角色数组查询接口,修改获取教师已分配角色接口返回数据结构

2020-02-18

【教师端】完成教学资源管理基本接口

2020-02-17

  1. 【后台】完善权限查询接口
  2. 【教师端】完成教学资源根目录查询和新增文件/文件夹接口

2020-02-16

【教师端】完成文件资料管理基本接口

2020-02-14

  1. 【数据库】修改课程文件存储结构,新增课程文件表
  2. 【教师端】完成文件资料管理开发结构

2020-02-13

  1. 【教师端】完成测试任务管理基本接口
  2. 【教师端】教学任务实验、通告允许修改所属教学任务
  3. 【教师端】新增查询教师所有教学任务接口

2020-02-12

  1. 【监控系统】新增今日访问量、近7天的访问量和系统文件占用大小接口
  2. 【监控系统】添加查询前n条日志接口,完善访问量查询接口
  3. 【整体】调整redis缓存策略
  4. 【监控系统】添加历史日志查询、历史日志下载接口

2020-02-11

  1. 【监控系统】完成日志清理跑批
  2. 【监控系统】调整日志module记录内容->访问路径

2020-02-10

【监控系统】完成文件记录跑批

2020-02-09

  1. 【调度平台】通过网关代理访问xxl-job-admin
  2. 【监控系统】整合xxl-job并完成测试demo
  3. 【common】整理封装redis工具类

2020-02-08

  1. 【网关】完成忘记密码相关接口
  2. 【调度平台】整合xxl-job-admin

2020-02-07

  1. 【网关】整合mail组件
  2. 【网关】完成发送修改密码邮件接口

2020-02-06

  1. 【监控系统】调整包结构
  2. 【整体】调整系统日志
  3. 【监控系统】新增文件记录添加接口
  4. 【网关】【后台】【教师端】对上传附件接口整合文件记录监控
  5. 【监控系统】添加文件记录查询、删除和下载接口
  6. 【后台】添加清空redis接口,调整权限加载接口位置

2020-02-05

  1. 【教师端】完成实验管理添加实验相关接口
  2. 【教师端】完成实验管理查询、更新和下载附件相关接口

2020-02-04

  1. 【教师端】完成试题管理其余基本接口
  2. 【教师端】完成实验管理开发结构

2020-02-03

  1. 【监控系统】日志查询新增根据创建时间查询条件
  2. 【教师端】完成通告附件下载接口
  3. 【教师端】优化通告管理的操作权限校验代码
  4. 【教师端】完成试题新增和图片上传接口

2020-02-02

  1. 【教师端】完成通告管理curd接口

2020-02-01

  1. 【网关】完成个人信息修改和头像上传接口
  2. 【网关】新增教师/学生密码修改接口,在网关处进行聚合
  3. 【后台】新增学生头像上传接口
  4. 【网关】完成头像上传接口,聚合学生头像上传接口
  5. 【网关】【后台】新增pwdUpdateTime字段用于判断用户token是否失效

2020-01-31

【教师端】完成通告新增和通告分页查询接口

2020-01-30

【教师端】完成选课学生管理接口

2020-01-29

【后台】整合fastDFS完成教师头像上传接口

2020-01-27/28

  1. 学习FastDFS
  2. 搭建FastDFS文件服务器
  3. 系统整合fastdfs-client并封装工具类

2020-01-26

  1. 完成教师端服务结构
  2. 完成分页查询教师教学任务接口
  3. 抽取controller层公共方法->BaseController
  4. 【教师端】完成教学任务管理功能

2020-01-25

  1. 修改redis缓存策略,默认添加null
  2. 完成学生登录
  3. 修复zuul异常无json输出
  4. 抽取LogAspect公共方法、抽取异步加载处理器

2020-01-24

  1. 优化权限校验架构
  2. 同步本地和开发环境的配置文件
  3. 更新后的系统发布到开发环境
  4. 为更新登录日单独配一个接口进行调用

2020-01-23

自动获取cookie存入header

2020-01-22

  1. 通过网关访问spring-boot-admin
  2. 修改表外键约束条件

2020-01-21

设计网关访问springbootadmin方案

2020-01-20

  1. 优化代码结构
  2. 完成学生管理基本功能
  3. 修改网关获取token方式=>默认获取cookie中的token

2020-01-19

添加学生新增接口

2020-01-18

  1. 完成教学任务管理基本接口
  2. 完成学生管理开发结构搭建

2020-01-17

  1. 添加获取所有教师信息接口
  2. 添加获取所有课程信息接口
  3. 添加获取学期集合接口

2020-01-16

完成教学任务管理entity->dao/mapper->service->controller层的搭建

2020-01-15

完成课程管理基本接口

2020-01-14

  1. 完成课程分页查询接口
  2. 抽离service公共方法至BaseService

2020-01-13

完成日志查询功能

2020-01-12

  1. 添加角色新增、删除、更新接口
  2. 完成角色分配权限功能接口
  3. 完成教师分配角色功能接口
  4. 完成认证接口:个人信息查询,个人角色信息查询和个人权限查询

2020-01-10

完成角色分页查询接口

2020-01-09

  1. 添加查询所有权限组、查询权限接口
  2. 捕获异步调用异常并处理

2020-01-08

  1. 修复异常捕获混乱问题
  2. 完成系统校验类,统一校验方式

2020-01-07

初步搭建校验类,简化参数校验时大量if else

2020-01-06

修复sba 注册时间显示和actuator返回的时间格式为时间戳的问题

2020-01-04

  1. 完善教师管理接口的参数校验
  2. 添加权限管理的update、delete接口

2020-01-02

  1. 添加开发配置和打包部署插件配置
  2. 完成添加教师接口

2019-12-29

更新maven打包配置,调整本地开发的redis服务器地址

2019-12-23

  1. Spring Boot 版本降级 2.1.10 -> 2.1.6
  2. 更新 spring boot admin 配置类

2019-12-21

整合监控系统

2019-12-20

  1. 添加教师删除接口
  2. 添加监控配置

2019-12-19

添加网关异常拦截处理

2019-12-17

  1. 完成通用配置抽离,swagger2升级
  2. 完成日志aop记录
  3. 完成教师查询接口,修复角色权限接口参数传递问题

2019-12-16

完成权限校验

2019-12-13

整合权限控制,redis

2019-12-12

整合swagger和增强ui,在网关处对文档进行聚合

2019-12-11

完成简单的单点登录

2019-12-10

整合Spring Security

2019-12-09

完成网关登录功能

2019-12-08

添加教师角色和权限dao

2019-12-07

添加获取验证码接口

2019-12-06

添加教师登录接口

2019-12-05

修改配置,添加模块

2019-12-04

修改服务配置目录结构,添加系统管理模块和通用核心模块

2019-11-29

完成服务注册发现、路由网关和统一配置管理

U-Learning 后端开发日志(建设中...)的更多相关文章

  1. ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目中的使用

    在前面几篇随笔介绍了我对ABP框架的改造,包括对ABP总体的介绍,以及对各个业务分层的简化,Web API 客户端封装层的设计,使得我们基于ABP框架的整体方案越来越清晰化, 也越来越接近实际的项目开 ...

  2. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  3. 负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息?

    负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息? 原文: https://help.aliyun.com/document_detail/127193.html?spm ...

  4. 后端开发实践——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  5. $2015 武汉森果公司web后端开发实习日记----书写是为了更好的思考

    找暑期实习,3月份分别投了百度和腾讯的实习简历,都止步于笔试,总结的主要原因有两点:基础知识不扎实,缺乏项目经验.后来到拉勾网等网站上寻找实习,看了很多家,都还是处于观望状态.后来参加了武汉实习吧在大 ...

  6. ABP开发框架前后端开发系列---(3)框架的分层和文件组织

    在前面随笔<ABP开发框架前后端开发系列---(2)框架的初步介绍>中,我介绍了ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以便基于数据库应用的简化处理.本篇随笔进一步对 ...

  7. ABP开发框架前后端开发系列---(4)Web API调用类的封装和使用

    在前面随笔介绍ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以及简化了ABP框架的各个层的内容,使得我们项目结构更加清晰.上篇随笔已经介绍了字典模块中应用服务层接口的实现情况,并且通过 ...

  8. ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理

    在前面两篇随笔<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>和<ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程>开始 ...

  9. ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程

    在前面随笔介绍的<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>里面,介绍了如何改进和完善审计日志和登录日志的应用服务端和Winform客户端,由于篇幅限制,没有进 ...

随机推荐

  1. 标准库 xml

    xml处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融 ...

  2. JavaScript面向对象的作用域链(转载)

    JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走遍天下都不怕... 一.“JavaScript中无块级作用域” 在Java或C# ...

  3. 关于fastjson在序列化成JSON串时字段增加的问题

    今天在项目中遇到控制器中返回的对象经过fastjsonMessageConverter转换后,前台收到的json中多了一个字段A的问题.而返回的这个对象中根本就没有定义这个字段A. 查了好久才发现对象 ...

  4. 利用Mysqlbinlog恢复数据库数据

    关于binlog的详解请参考:http://zlyang.blog.51cto.com/1196234/1833062 binlog日志用于记录所有更新了数据或者已经潜在更新了数据的所有语句.语句以& ...

  5. 初见Ajax——javascript访问DOM的三种访问方式

    最近好啰嗦 最近在一间小公司实习,写一些小东西.小公司嘛,人们都说在小公司要什么都写的.果真是. 前端,后台,无论是HTML,CSS,JavaScript还是XML,Java,都要自己全包了.还好前台 ...

  6. App 抓包代理设置

    1.设置 Fiddler 打开 Fiddler,Tools  -->  Fiddler Options  -->  HTPS (配置完后记得要重启 Fiddler) 选中  "D ...

  7. 使用python实现模拟掷骰子数据分析

    Data:2020/4/8 主题:模拟实现掷骰子数据分析 编译环境:pycharm 库:pygal 说明: code 1:创建一个掷骰子类对象,类方法获得掷骰子随机数1-6,默认6个面,模拟20次将结 ...

  8. 算法——Java实现队列

    顺序队列: 概念: 队列是一种先进先出的线性表,只允许在一端插入,另一端删除.允许插入的一端称为队尾,允许删除的一端称为队头 顺序队列的实现: import org.junit.jupiter.api ...

  9. VSCode最强助攻

    VSCode最强助攻 VS Code是前端界必备的开发工具.页面仔小杨简单介绍几款高效.好用的插件,让原本单薄的VS Code如虎添翼,开发效率倍增. vscode-icons vscode-icon ...

  10. NEON中的L可以避免溢出

    在做加法时,比如两个255x255的数值相加,那么正确结果将是130050,对一个最大值为65565的unsigned short是会溢出的,但是如果使用L命令时,则不会产生溢出.这说明L命令,不是先 ...