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

项目github地址

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

目录

  • 系统介绍:

  • 基本功能

  • 管理端

    • 信息管理

      • 1. 修改密码

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

      • 3.学生管理:

      • 4. 教师的管理(增删)

    • 课程管理

      • 1. 我的课程

      • 2. 课程添加

      • 3. 添加学生(课程)

    • 作业管理

      • 1. 作业管理(增删改)

      • 2. 作业发布

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

  • 学生端

系统介绍:

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

基本功能

教师端登录地址:http://localhost:8080/loginteacher.html (数据库teacher表)640?wx_fmt=png640?wx_fmt=png

管理端

信息管理

这块主要

1. 修改密码

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

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

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

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

学号姓名拼音密码
16221070张赛zhang1sai4162125

640?wx_fmt=png

3.学生管理:

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

4. 教师的管理(增删)

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

课程管理

1. 我的课程

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

2. 课程添加

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

3. 添加学生(课程)

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

作业管理

1. 作业管理(增删改)

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

2. 作业发布

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

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

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

学生端

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

项目github地址,欢迎star!?

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

目录

  • 项目介绍

  • 数据库设计

    • teacher

    • student

    • teachclass

    • job

    • studentclass

    • score

  • 项目目录

    • 前端

    • 后端

    • 模板引擎和ajax

  • 功能设计

    • 学生端

    • 教师端

  • 权限设计

    • 登录验证

    • 授权管理

  • 项目安装

项目介绍

数据库设计

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

teacher

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

student

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

teachclass

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

job

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

studentclass

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

score

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

项目目录

前端

640?wx_fmt=png640?wx_fmt=pnglayui,并没有用别人写好的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

后端

640?wx_fmt=png

  • config:

  • controller:

  • service:

  • dao:

  • pojo

  • log用绝对路径否则日志文件将不存在)

模板引擎和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文件。640?wx_fmt=png

教师端

  • 文件打包成zip:

  • 接受excel并解析:640?wx_fmt=png

  • layui表格640?wx_fmt=png

  • 其他

权限设计

权限设计基于Shiro进行,

登录验证

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

授权管理

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

项目安装

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

  1. 首先复制db目录receve的内容放到nivicat等数据库建库建表(数据已经进行阉割)

  2. 如有需要,修改application.properties文件的数据库账号密码640?wx_fmt=png

  3. 修改logback.xml的日志路径(如果需要)640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

Big sai CSDN认证博客专家 scikit-learn
关注微信公众号:bigsai,回复进群即可加入leetcode打卡群,回复bigsai获取珍藏pdf一份。江科大本,南理研一。平凡的日子里努力充实自己,努力学习,努力分享。期待你的关注!
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页