前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >作业收缴系统使用手册和开发手册(自写开源小系统)

作业收缴系统使用手册和开发手册(自写开源小系统)

作者头像
bigsai
发布2019-09-24 11:45:38
1K0
发布2019-09-24 11:45:38
举报
文章被收录于专栏:bigsaibigsai

项目github地址

作业收缴系统设计手册csdn地址

目录

  • 系统介绍:
  • 基本功能
  • 管理端
    • 信息管理
      • 1. 修改密码
      • 2. 学生添加(支持excel格式的批量导入)
      • 3.学生管理:
      • 4. 教师的管理(增删)
    • 课程管理
      • 1. 我的课程
      • 2. 课程添加
      • 3. 添加学生(课程)
    • 作业管理
      • 1. 作业管理(增删改)
      • 2. 作业发布
      • 3. 作业查看(打印,下载压缩文件等)
  • 学生端

系统介绍:

系统概述:写了个作业收缴系统。系统旨在优化作业上交流程,解决收缴作业的繁琐过程,传统收缴作业基于qq文件,或者邮箱收发。需要大量的人工操作和精力取维护。而本系统将作业系统部署到服务器,大大方便了教师/收作业者对作业的管理。系统简单易用。能够满足大部分需求。项目已开源,可以自己使用或者二次开发等等。欢迎star!!

基本功能

教师端登录地址:http://localhost:8080/loginteacher.html (数据库teacher表) 学生端登录地址:http://localhost:8080/login.html (数据库student表) 数据库监控地址:http://localhost:8080/druid/login.html (数据库账号密码) 教师端和druid一览

管理端

信息管理

这块主要

1. 修改密码

可以直接输入旧密码和新密码进行修改

2. 学生添加(支持excel格式的批量导入)

该项功能是往系统平台中添加学生。你可根据表单手打学生信息进行导入。有了学生信息后学生才能加入课程班号。

若使用excel的xls或xlsx格式进行导入,要遵从文件的相应格式,从第二行起,表格的前四列应遵从如下格式:

学号

姓名

拼音

密码

16221070

张赛

zhang1sai4

162125

当既有excel文件又有表单数据时候,优先考虑excel数据。忽略表单添加。

3.学生管理:

此页面下可以对学生进行模糊搜索,搜索指定学生,指定学号范围、姓名的学生,针对表格的学生数据,可以直接进行点击编辑。学生除了学号外其他信息均可修改。

此外,页面还提供导出学生excel表的功能。将选定的可以导出成xls或者cvs文件。

4. 教师的管理(增删)

这个模块只提供教师的增删功能。不提供修改功能。但是只有超级用户才能对教师账号的增删(程序拥有者数据库的level为0);

课程管理

1. 我的课程

本页面提供查看、编辑和删除自己所有课程的功能,可以根据需求修改自己发布课程的相关信息。也可以看到加入课程的学生。

2. 课程添加

本页面也添加课程的界面。注意课时学分一栏的数据为数字类型。通过此页面即可将新课程发布到系统你的课程列表中。注意填写学期的格式,这个后台会根据此字段匹配是否为当前学期,否的话将在一些界面不展示。如果写错可到我的课程中进行修改!

3. 添加学生(课程)

本界面是课程添加学生操作的界面。因为学生和课程是两个独立题。本系统通过老师添加学生使得学生参加课程而不是学生自己选课。添加学生分为单个添加和批量添加。因为一个班级学生往往学号是有规律的递增,所有我们提供通过学号首尾,添加数据库中有该字段学号的学生进入课程。添加后将返回成功失败的条数。添加之后,对应学生会在提交作业的可选列表多出改作业。

作业管理

1. 作业管理(增删改)

每一个课程下有若干实验或作业。学生提交的要有课程和作业两个选项。本页面提供编辑自己课程的作业(添加、修改,删除等功能)。注意的是你可编辑在当前学期的课程作业(防止使用太久课程太多障碍选项太多影响使用故屏蔽掉非本学期的课程)。

2. 作业发布

此界面提供发布作业的功能,注意一些数字类型的栏目。

3. 作业查看(打印,下载压缩文件等)

本页面为核心功能。教师等收作业可通过本界面下资学生已经上传的实验的报告打包城的zip文件。还可以在线根据用户的实验进行在线评分和备注。最终可以保存成Excel文件到本地。

学生端

因为学生不是主要服务对象,所有就给了几个需要的界面,学生可以根据已经添加的课程进行上传作业。主界面如下:

项目github地址,欢迎star!?

作业收缴系统使用手册csdn地址

目录

  • 项目介绍
  • 数据库设计
    • teacher
    • student
    • teachclass
    • job
    • studentclass
    • score
  • 项目目录
    • 前端
    • 后端
    • 模板引擎和ajax
  • 功能设计
    • 学生端
    • 教师端
  • 权限设计
    • 登录验证
    • 授权管理
  • 项目安装

项目介绍

开发工具:IDEA+postman+nivicat 主要框架:Springboot+Mybatis+Shiro+Druid 其他框架/工具:devtools,Easyexcel(poi),Mybatis-generator, 运行环境:Tomcat8.5以上,Mysql5或8

数据库设计

这个数据库是老师给我让我完成的,7张表只用了6张,老师给了一些关键性的外键,其实还有一些外键参考,但鉴于系统并不是完全完善并且对逻辑影响不是很大,所以我就没加上那些外键。如果有需要可自行添加。

对于数据库解读是最重要的一步。对于项目并没有太多复杂的逻辑需求。所以直接从数据库开始。

teacher

  • 此表包含教师信息的基本字段,包过工号,姓名,密码,level是权限用的,管理员教师可以操作其他教师,level为0权限为管理员,其他为普通教师。

student

  • 此表包含学生的基本信息

teachclass

  • 此表为课程表,一个老师不同学期可能带几个班级,这个课程就要有学期,名称,学分,课程类型,对应教师等信息。

job

  • 这个可以理解为具体实验表(作业),没门课程老师可能发布不同的作业,就要有对应的介绍。

studentclass

  • 这是学生和课程联系的中介。一个学生可以在不同课程中上课,课程id(teachclass表的ID和学号为唯一索引)

score

  • 这就是提供教师打分记录表,学生提交后教师可对学生打分存入数据库。

项目目录

前端

前端文件一览:

前端采用后台管理layui,并没有用别人写好的layui模板进行嵌套修改,而是从0开始从layui官方开始参考文档一点点用组件。

前端为主界面+iframe小界面,中间的内容框为ifame界面显示内容。

浅谈layui:

  • 以前就接触过layui,以前和队友配合队友写前端自己队友用的就是前端。还有以前帮姐姐写的小东西也是用的layui,不过那次用的layui不是真的layui。。那只是用到layui漂亮的外表。清晰记得。套过来layui的壳子,然后能用thymleaf交互的地方就不用ajax。。遇到ajax的地方(比如表格)等等就疯狂Jquery拼凑html,虽然外观还行,但是可维护性很差,自己都不清楚自己写那去了。
  • 造成上述的原因主要是因为自己太过墨守成规,以为ui框架只是提供ui,而事实上一个优秀的框架往往比你想象的还要优秀的多。不仅是美丽的外观,还有强大的功能和便捷的使用。这就要耐心的阅读文档,不要被文档吓到。
  • 在本系统中用到layui多个组件。如表单,表格,时间日期,文件上传,表格等等,layui虽然不是双向绑定模式,但是layui对于控件fitter的绑定和监听做的特别好,虽然大部分方便了使用但是会使得部分传统方法出现失效的问题需要自己解决。layui大部分都是基于ajax的异步传输。在系统初用的是thymleaf,后来发现在layui的领域thymleaf并不能展现过大的便捷性,后面的就都用html了。其次就是layui的一些东西可能对后端新手(比如我)有一些新颖。layui表单等等封装了很便捷的异步提交方式。你大部分的传输方式要按照他的规则来,但是也有一些时候他可能满足不了你的需求你需要解决。对于layui更多功能,详细参考layui官当demo

后端

后端就是mvc的设计架构:

  • config: shiro的配置和自定义releam配置在文件中,还有就是druid监控的一些内容也放在里面。
  • controller: controller层分了几个controller,比如文件处理一个,登录授权一个,thymleaf控制一个,还有studentcontroller处理一些学生端的事务,因为教师端的内容比较多,根据处理不同的信息分了处理学生,处理课程,处理实验等controller。
  • service: 当时为了方便只写了两个service,学生和教师,所以service内容比较多,你可以从controller的内容找入service
  • dao: 为mybatis逆向工程生成基本文件和自己添加一些接口
  • pojo 数据库映射对象,其中student继承满足poi导入excel的类。
  • log logback日志配置,放到服务器要修改日志文件地址(用绝对路径否则日志文件将不存在)

模板引擎和ajax

项目采用thymleaf+html的样式,因为个人开发对于一些参数用thymleaf还是会方便很多。但是thymleaf对于数据绑定对动态数据不太好处理,所以不涉及静态数据绑定的界面一般都是html。

功能设计

学生端

  • 文件上传 客户端文件上传 服务端文件接受:
    • 服务端以前的文件接收用的是servlet3.0,但是Springmvc的MultipartFile接受文件更加便捷,所以采用对于上传的路径。为tomcat项目相对路径fileget/"+lessonid+"/"+jobid+"/"+文件名;这里文件名设置为学号+姓名+实验名+实验几。具体可参考fileController.java代码内容。
    • 还有就是本来是写了作业补交的功能的,但是出于需求考虑补交部分被注释掉。所以截至日期暂时没有明显作用。只是上传作业的时候会提示。
    • layui的form表单默认是同步上传,而同步上传需要跳转界面并不是我想要的结果,所以本系统用异步上传文件来完成。所用的是ajax的formdate进行文件上传。具体代码可参考templates/student/upload.html这个thymleaf文件。

教师端

  • 文件打包成zip: 要将服务器所有已经上传的文件打包成zip文件,要注意打包成zip文件的时候不能在服务器保存—不要占用额外的空间,所有就要用io临时生成zip文件传输到客户端,这就要很好的处理下io流的内容,还要考虑文件下载的内容。谨防异常和文件名乱码等。具体可参考fileController下代码。
  • 接受excel并解析: java解析excel的工具并不多,当前较为流行的apache下的poi。我用的是阿里的easyexcel—基于poi封装改进的框架。但是基于poi如果解析excel生成实体类需要对pojo对象继承BaseRowModel类并在字段上给出对应注解:
  • layui表格 layui表格按照固定格式ajax渲染而来的,项目中多次用到layui表格。提供强大的在线编辑,排序,导出excel/cvs等功能。你只需耐心阅读layui表格相关部分文档就可以了解其中流程。
  • 其他 项目中其他部分无非就是表单提交。后台增删改查。模糊查询。前端jq处理逻辑等等。

权限设计

权限设计基于Shiro进行,

登录验证

  • 其实这里我当时纠结的挺久就是shiro的releam一般是针对一个user表中的数据进行验证,但是项目中的用户来源自学生表和教师表。因为shiro的session和request的session其实是一个session,所以你可以很灵活的完成一些内容。学生端,教师端并不是一个统一的登录入口,所以在两个登录的端口分别用一个session防一个role身份。在releam中用shiro的session判断角色,if else判断角色写方法解决。

授权管理

  • 登录验证可以解决非系统用户访问系统的问题,但是不进行权限处理会造成用户抓到接口可能会进行越权操作。对系统稳定和安全造成威胁。一定需要授权。因为我的接口(教师端)都加了前缀teacher/xxx,更适合url统一管理,对于url统一管理,我采用的是针对身份的管理而不是资源的细化管理。因为主要还是教师和学生两类用户。用role可以满足需求。

项目安装

项目环境为tomcat8.5以上,mysql5或8.

  1. 首先复制db目录receve的内容放到nivicat等数据库建库建表(数据已经进行阉割)
  2. 如有需要,修改application.properties文件的数据库账号密码
  1. 修改logback.xml的日志路径(如果需要)

4.如果本地可直接运行,如果打包部署,需要先clean,然后修改maven配置 将两个被注释的还原

然后再target目录下找到war包,修改成你要的项目名,用ssh、scp等工具指令放到tomcat指定目录下。就可以访问了。 教师端登录地址:http://localhost:8080/loginteacher.html (数据库teacher表) 学生端登录地址:http://localhost:8080/login.html (数据库student表) 数据库监控地址:http://localhost:8080/druid/login.html (数据库账号密码)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bigsai 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 系统介绍:
  • 基本功能
  • 管理端
    • 信息管理
      • 课程管理
        • 作业管理
          • 目录
          • teacher
          • student
          • teachclass
          • job
          • studentclass
          • score
          • 前端
          • 后端
          • 模板引擎和ajax
          • 学生端
          • 教师端
          • 登录验证
          • 授权管理
      • 学生端
      • 项目介绍
      • 数据库设计
      • 项目目录
      • 功能设计
      • 权限设计
      • 项目安装
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档