U-Learning 后端开发日志(建设中...)
U-Learning——基于泛在学习的教学系统
GitHub项目地址
后续会结合开发日志一步步发布里程碑教程和遇到的问题与解决
项目背景
该系统是一次将理论与实践相结合的创新设计,它结合当下在线教育形势,未来泛在学习发展趋势,在完美融合学校教育需求下进行的一次实践探索。
移动设备和移动技术的应用已经改变了人们的学习方式和获取信息的途径,随时随刻拿出手机打开app或者浏览器即可进行想要资源的获取。在这样一个信息爆炸的时代中,学习系统的功能已经不仅仅是如何全面的将资源快速展现给学习者,更为重要的是如何针对性的将资源进行囊括。
从人性化角度分析,不同于市面上常见的app下载方式,该系统实现更为便捷灵活的网页显示方式,用户根据需求登录即可进入相应页面,无论是在手机,平板抑或电脑等设备,该系统都会根据屏幕实际大小自适应显示完整内容,这体现了该系统的灵活高效的特征。从适用范围分析,它的主要环境是学校,包括学生和教师两种人物角色,系统同时满足学生学习、实验、测试要求以及教师教学任务管理、公告维护要求,这体现了该系统的实用特征。从文件资源的储存角度分析,所有文件,通告以及资源都是线上同步方式,完全可以在任何时候查看,并且不会失效,对于学生来说资源是共享且永久的。
技术栈
框架
- Spring Cloud(Greenwich.SR2)
- Spring Boot(2.1.6.RELEASE)
- MyBatis(2.1.0)
- Spring Security
中间件
- redis(5.0.4)
- FastDFS(6.04)
插件
- fastjson(1.2.54)
- druid(1.1.10)
- hutool(5.0.6)
- mapstruct(1.2.0.Final)
- lombok(1.18.10)
- ip2region(1.7.2)
- jjwt(0.9.1)
- swagger2(2.9.2)
- swagger-bootstrap-ui(1.9.5)
- spring-boot-admin(2.1.6)
里程碑
CentOS 7搭建JAVA开发环境
接口参数校验(不使用hibernate-validator,规避大量if else)
开发日志
2020-03-23
- 【网关】记录访问无权限接口日志
2020-03-22
- 【任务调度中心】修改本地服务端口号
- 【系统管理】修复获取角色已分配权限出现null的问题
2020-03-21
- 【教师端】新增分页查询学生测试结果统计信息
- 【教师端】根据测试任务id查询学生测试统计返回测试总分
- 【教师端】修改教学任务下拉框显示规则,添加学年用于区分
- 【教师端】实验、测试和通告只能操作当前及以后学期的数据
- 【教师端】创建教学任务时,只显示前1年学期
- 【任务调度中心】代理模式下不显示【用户管理】
- 【监控系统】过滤/actuator接口统计信息
- 【整体】查询日志改为开发模式显示
2020-03-20
- 【教师端】统计学生测试结果接口
- 【教师端】统计学生测试结果接口
2020-03-19
- 【学生端】查询所有测试任务数组不显示已完成的测试任务
- 【学生端】删除查询测试结果明细接口,添加分页查询测试结果明细接口
- 【学生端】测试试题的填空题若学生答案为空,则返回对应填空数量-1的|#|分隔符
- 【学生端】分页查询条件补充
- 【学生端】增加分页查询测试结果明细接口条件
2020-03-18
- 【学生端】分页查询测试任务添加学生测试状态字段
- 【学生端】查询测试结果明细接口
2020-03-17
- 【学生端】学生测试断线重连获取上次保存的答题记录
- 【学生端】修改测试组题返回的数据结构
- 【学生端】根据教学任务id查询所有测试任务数组新增测试任务状态字段
- 【学生端】调整spi包结构
- 【教师端】完成监控学生测试接口
2020-03-16
- 【监控系统】分页查询只记录查询第一页记录
- 【教师端】完成学生测试管理开发结构
- 【学生端】根据教学任务id查询所有测试任务数组新增测试任务状态字段
2020-03-15
- 【学生端】实验结果返回实验名、成绩排名和提交人数信息
- 【学生端】完成学生测试接口
2020-03-14
- 【网关】当用户修改信息时,清理缓存记录
- 【整体】修改服务部署策略
- 【common包】添加http访问工具类
- 【监控系统】添加druid监控数据管理接口
- 【教师端】分页查询实验结果返回实验名
2020-03-13
- 【学生端】完善临时保存接口
2020-03-12
- 【学生端】开发在线测试结果
- 【网关】修改网关部署配置
- 【监控系统】修改监控系统服务部署配置
- 【整体】调整服务部署策略
2020-03-11
- 【学生端】完善开始测试接口
- 【教师端】返回学生姓名、学号字段;支持根据学生姓名、学号和是否批改查询
- 【学生端】完成开始测试接口
2020-03-10
- 【教师端】完成实验结果管理接口
- 【教师端】通告查询添加附件大小信息
- 【教师端】通告分页查询进行缓存
- 【学生端】通告查询添加附件大小信息
- 【教师端】完成学生实验管理
2020-03-09
- 【学生端】根据id查询实验结果添加附件大小返回字段
- 【学生端】删除根据id查询实验结果接口,根据实验id查询实验结果接口
2020-03-08
- 【学生端】完成测试管理接口、待完成开始测试接口
2020-03-07
- 【学生端】实验查询添加已批改分类
- 【教师端】对测试参数进行验证
2020-03-06
- 【学生端】完成实验结果接口
- 【后台】修复根据teaId查询无效问题
- 【网关】开发文档去除ulearning-register选项
- 【监控系统】扫描u_experiment_result表
- 【学生端】查询实验列表检测是否已提交该实验结果
2020-03-05
- 【注册中心】注册中心注册自己,接入springBootAdmin进行健康检查
- 【整体】关闭邮箱健康检查
2020-03-04
- 【学生端】完成文件资料接口
- 【网关】将登录用户信息存入redis,对相关信息进行修改时清除redis中的用户信息
2020-03-03
- 【教师端】课程试题新增难度字段
- 【学生端】添加查询文件资料列表接口
- 【教师端】根据教学任务id查询知识模块
2020-03-02
- 【教师端】完善教学资源和文件资料根目录接口逻辑代码
- 【学生端】完成查询教学资源根节点接口
2020-03-01
- 【教师端】完成教学资源、文件资料(批量)删除和(批量)分享接口
- 【监控系统】分页查询,只记录查询第一页的日志,其余查询不记录
- 【教师端】完成教学资源和文件资料分享区接口
- 【后台】删除课程后,删除该课程下的所有教学任务
2020-02-29
【整体】整体微调
2020-02-28
- 【监控系统】扫描u_course_file表、将表和url索引管理起来,不用代码写死
- 【教师端】隐藏新增实验的序号字段
- 【教师端】新增选项字段
- 【教师端】新增删除实验接口
- 【教师端】调整实验编号更新策略
2020-02-27
【教师端】新增试验,order自动生成且递增
2020-02-26
- 【教师端】文件名重复判断
- 【教师端】教学任务别名作为教师操作的根目录
2020-02-25
- 【教师端】新增获取知识模块列表接口
- 【网关】修改登录模块内容,改为接口路径
- 【教师端】去除文件资料和教学资源的title非空判断
2020-02-24
- 【网关】自定义退出接口
- 【学生端】添加/完善教学任务查询接口
- 【教师端】修复学生移除后仍能查询到问题
- 【学生端】新增根据教师名称查询已选/未选教学任务信息
2020-02-23
- 【整体】配置系统发布
2020-02-22
- 【学生端】添加学生端服务模块
- 【学生端】完成学生选课相关接口
- 【学生端】完成查阅通告相关接口
- 【学生端】完成查看文件资料和教学资源功能开发结构
2020-02-21
【教师端】完善教学资源管理接口
2020-02-20
【教师端】完善文件资料管理接口
2020-02-19
- 【后台】修改获取角色查询已分配权限接口返回格式
- 【后台】新增角色数组查询接口,修改获取教师已分配角色接口返回数据结构
2020-02-18
【教师端】完成教学资源管理基本接口
2020-02-17
- 【后台】完善权限查询接口
- 【教师端】完成教学资源根目录查询和新增文件/文件夹接口
2020-02-16
【教师端】完成文件资料管理基本接口
2020-02-14
- 【数据库】修改课程文件存储结构,新增课程文件表
- 【教师端】完成文件资料管理开发结构
2020-02-13
- 【教师端】完成测试任务管理基本接口
- 【教师端】教学任务实验、通告允许修改所属教学任务
- 【教师端】新增查询教师所有教学任务接口
2020-02-12
- 【监控系统】新增今日访问量、近7天的访问量和系统文件占用大小接口
- 【监控系统】添加查询前n条日志接口,完善访问量查询接口
- 【整体】调整redis缓存策略
- 【监控系统】添加历史日志查询、历史日志下载接口
2020-02-11
- 【监控系统】完成日志清理跑批
- 【监控系统】调整日志module记录内容->访问路径
2020-02-10
【监控系统】完成文件记录跑批
2020-02-09
- 【调度平台】通过网关代理访问xxl-job-admin
- 【监控系统】整合xxl-job并完成测试demo
- 【common】整理封装redis工具类
2020-02-08
- 【网关】完成忘记密码相关接口
- 【调度平台】整合xxl-job-admin
2020-02-07
- 【网关】整合mail组件
- 【网关】完成发送修改密码邮件接口
2020-02-06
- 【监控系统】调整包结构
- 【整体】调整系统日志
- 【监控系统】新增文件记录添加接口
- 【网关】【后台】【教师端】对上传附件接口整合文件记录监控
- 【监控系统】添加文件记录查询、删除和下载接口
- 【后台】添加清空redis接口,调整权限加载接口位置
2020-02-05
- 【教师端】完成实验管理添加实验相关接口
- 【教师端】完成实验管理查询、更新和下载附件相关接口
2020-02-04
- 【教师端】完成试题管理其余基本接口
- 【教师端】完成实验管理开发结构
2020-02-03
- 【监控系统】日志查询新增根据创建时间查询条件
- 【教师端】完成通告附件下载接口
- 【教师端】优化通告管理的操作权限校验代码
- 【教师端】完成试题新增和图片上传接口
2020-02-02
- 【教师端】完成通告管理curd接口
2020-02-01
- 【网关】完成个人信息修改和头像上传接口
- 【网关】新增教师/学生密码修改接口,在网关处进行聚合
- 【后台】新增学生头像上传接口
- 【网关】完成头像上传接口,聚合学生头像上传接口
- 【网关】【后台】新增pwdUpdateTime字段用于判断用户token是否失效
2020-01-31
【教师端】完成通告新增和通告分页查询接口
2020-01-30
【教师端】完成选课学生管理接口
2020-01-29
【后台】整合fastDFS完成教师头像上传接口
2020-01-27/28
- 学习FastDFS
- 搭建FastDFS文件服务器
- 系统整合fastdfs-client并封装工具类
2020-01-26
- 完成教师端服务结构
- 完成分页查询教师教学任务接口
- 抽取controller层公共方法->BaseController
- 【教师端】完成教学任务管理功能
2020-01-25
- 修改redis缓存策略,默认添加null
- 完成学生登录
- 修复zuul异常无json输出
- 抽取LogAspect公共方法、抽取异步加载处理器
2020-01-24
- 优化权限校验架构
- 同步本地和开发环境的配置文件
- 更新后的系统发布到开发环境
- 为更新登录日单独配一个接口进行调用
2020-01-23
自动获取cookie存入header
2020-01-22
- 通过网关访问spring-boot-admin
- 修改表外键约束条件
2020-01-21
设计网关访问springbootadmin方案
2020-01-20
- 优化代码结构
- 完成学生管理基本功能
- 修改网关获取token方式=>默认获取cookie中的token
2020-01-19
添加学生新增接口
2020-01-18
- 完成教学任务管理基本接口
- 完成学生管理开发结构搭建
2020-01-17
- 添加获取所有教师信息接口
- 添加获取所有课程信息接口
- 添加获取学期集合接口
2020-01-16
完成教学任务管理entity->dao/mapper->service->controller层的搭建
2020-01-15
完成课程管理基本接口
2020-01-14
- 完成课程分页查询接口
- 抽离service公共方法至BaseService
2020-01-13
完成日志查询功能
2020-01-12
- 添加角色新增、删除、更新接口
- 完成角色分配权限功能接口
- 完成教师分配角色功能接口
- 完成认证接口:个人信息查询,个人角色信息查询和个人权限查询
2020-01-10
完成角色分页查询接口
2020-01-09
- 添加查询所有权限组、查询权限接口
- 捕获异步调用异常并处理
2020-01-08
- 修复异常捕获混乱问题
- 完成系统校验类,统一校验方式
2020-01-07
初步搭建校验类,简化参数校验时大量if else
2020-01-06
修复sba 注册时间显示和actuator返回的时间格式为时间戳的问题
2020-01-04
- 完善教师管理接口的参数校验
- 添加权限管理的update、delete接口
2020-01-02
- 添加开发配置和打包部署插件配置
- 完成添加教师接口
2019-12-29
更新maven打包配置,调整本地开发的redis服务器地址
2019-12-23
- Spring Boot 版本降级 2.1.10 -> 2.1.6
- 更新 spring boot admin 配置类
2019-12-21
整合监控系统
2019-12-20
- 添加教师删除接口
- 添加监控配置
2019-12-19
添加网关异常拦截处理
2019-12-17
- 完成通用配置抽离,swagger2升级
- 完成日志aop记录
- 完成教师查询接口,修复角色权限接口参数传递问题
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 后端开发日志(建设中...)的更多相关文章
- ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目中的使用
在前面几篇随笔介绍了我对ABP框架的改造,包括对ABP总体的介绍,以及对各个业务分层的简化,Web API 客户端封装层的设计,使得我们基于ABP框架的整体方案越来越清晰化, 也越来越接近实际的项目开 ...
- 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 重点: 实现多级子目录的压缩, ...
- 负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息?
负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息? 原文: https://help.aliyun.com/document_detail/127193.html?spm ...
- 后端开发实践——Spring Boot项目模板
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...
- $2015 武汉森果公司web后端开发实习日记----书写是为了更好的思考
找暑期实习,3月份分别投了百度和腾讯的实习简历,都止步于笔试,总结的主要原因有两点:基础知识不扎实,缺乏项目经验.后来到拉勾网等网站上寻找实习,看了很多家,都还是处于观望状态.后来参加了武汉实习吧在大 ...
- ABP开发框架前后端开发系列---(3)框架的分层和文件组织
在前面随笔<ABP开发框架前后端开发系列---(2)框架的初步介绍>中,我介绍了ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以便基于数据库应用的简化处理.本篇随笔进一步对 ...
- ABP开发框架前后端开发系列---(4)Web API调用类的封装和使用
在前面随笔介绍ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以及简化了ABP框架的各个层的内容,使得我们项目结构更加清晰.上篇随笔已经介绍了字典模块中应用服务层接口的实现情况,并且通过 ...
- ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理
在前面两篇随笔<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>和<ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程>开始 ...
- ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程
在前面随笔介绍的<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>里面,介绍了如何改进和完善审计日志和登录日志的应用服务端和Winform客户端,由于篇幅限制,没有进 ...
随机推荐
- flutter在2019年会有怎样的表现?
2019独角兽企业重金招聘Python工程师标准>>> Flutter的趋势 在移动端,受成本和效率的驱使,跨平台一站式开发慢慢成为一个趋势.从Hybird,RN,WEEX,Flut ...
- 项目Alpha冲刺 Day12
1)站立式会议: 2)今日安排: 项目演示. 3)项目情况 项目进展:系统已实现预期的所有的功能.问题困难:系统测试不够全面,主要做功能测试,对于非功能测试,如压力测试.效能测试.安全性等并未测试.心 ...
- 手把手教你用Rancher创建产品质量数据库设置
目标:在本文中,我们将介绍如何运行一个分布式产品质量数据库设置,它由Rancher进行管理,并且保证持久性.为了部署有状态的分布式Cassandra数据库,我们将使用Stateful Sets (有状 ...
- windows 7或以上系统的实用小工具,你知道么?
今晚给大家介绍个实用的好工具,可以做简单的问题记录,再也不用截图加注释这么辛苦了····· 经测试,这东东在win7,2008 及2008R2里适用,也就是说,在win7以上的系统中才有.好了,下面直 ...
- #Week7 Neural Networks : Learning
一.Cost Function and Backpropagation 神经网络的损失函数: \[J(\Theta) = - \frac{1}{m} \sum_{i=1}^m \sum_{k=1}^K ...
- CF1288C-Two Arrays (DP)
You are given two integers n and m. Calculate the number of pairs of arrays (a,b) such that: the len ...
- bzoj 4152[AMPPZ2014]The Captain
bzoj 4152[AMPPZ2014]The Captain 给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1号点走到n号点的最小费用. ...
- 谷歌浏览器的F12用处及问题筛查笔记
在前端测试功能的时候,经常有些莫名其妙的错误,这个时候开发会说打开F12看一下吧,所以感觉这个开发者功能很有用,研究一下,做如下记录: Elements:左栏以DOM树形式查看网页源代码(HTML), ...
- Spring IOC的核心机制:实例化与注入
上文我们介绍了IOC和DI,IOC是一种设计模式,DI是它的具体实现,有很多的框架都有这样的实现,本文主要以spring框架的实现,来看具体的注入实现逻辑. spring是如何将对象加入容器的 spr ...
- Collection接口【集合】和Iterator迭代器类
1.1集合的概述 前面基础学习并使用过集合ArrayList<E>,那么集合究竟是什么呢? 集合:集合是Java中提供的一种容器,可以用来存储多个数据. 那么意思就是说集合是容器,但是容器 ...