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. swift 3.0字符串的简单使用

    let str:String = "12314124" 获取某个指定位置的元素 print(str.characters[str.index(str.startIndex, off ...

  2. Failed building wheel for cytoolz

    2019独角兽企业重金招聘Python工程师标准>>> 当我使用 pip instlal cytoolz 时,  报以下错误: error: Microsoft Visual C++ ...

  3. 阿里巴巴年薪800k大数据全栈工程师成长记

    大数据全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full Stack (需fanqiang).他把全栈工程师定义为对性能影响有着深入理解的技术通才.自那以后 ...

  4. Ceph 12.2.0 实践osd 智能分组功能

    以前我们需要对ssd和hdd进行分组的时候,需要大量的修改crush map,然后绑定不同的存储池到不同的 crush 树上面,现在这个逻辑简化了很多.以上是官方宣传听起来很不错等到12.2.0稳定版 ...

  5. 通过fiddler抓取IDEA的请求

    2019独角兽企业重金招聘Python工程师标准>>> 因为fiddler默认是代理的8888端口,所以设置一下IDEA的请求使用本地的8888作为代理发出. 1."EDI ...

  6. java socket实现服务端,客户端简单网络通信。Chat

    之前写的实现简单网络通信的代码,有一些严重bug.后面详细写. 根据上次的代码,主要增加了用户注册,登录页面,以及实现了实时显示当前在登录状态的人数.并解决一些上次未发现的bug.(主要功能代码参见之 ...

  7. 刷短视频看新闻看小说也能赚钱的几款APP

    一.抖音极速版 发啦! 刷短视频也能赚钱 第1步:下载[抖音极速版] 第2步:填我邀请码[831008243] 第3步:立刻提现最高[38元]红包 二.今日头条极速版 1元现金速撸 下载[今日头条极速 ...

  8. django+nginx+uwsgi的生产环境部署(Ubuntu16.04)

    一,准备工作: 代码一定要能本地跑起来! 各种基础包的安装略默认已经安装python3,nginx,uwsgi等基础依赖,注意版本问题. 本地setting.py文件修改如下(改为生产模式,把debu ...

  9. 面试被问了三次的http状态码到底有什么

    面试被问了三次的http状态码到底有什么 想想很多人面试都会有被问到http的状态码的经历,我也是经历了三面,每次都有提及这个问题.今天就来细致的讨论一下HTTP的状态码,如有不足,欢迎留言交流: H ...

  10. 网络流 A - PIGS POJ - 1149 最大流

    A - PIGS POJ - 1149 这个题目我开始感觉很难,然后去看了一份题解,写的很好 https://wenku.baidu.com/view/0ad00abec77da26925c5b01c ...