基于SpringBoot的校园请假管理系统

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

文末获取项目下载方式


一、项目背景介绍:

校园请假信息管理系统是一种针对学生请假事宜的管理工具,旨在简化请假流程、提高管理效率、降低出勤管理成本。该系统的背景分析可以从以下几个方面进行:

学校请假管理繁琐:在传统的请假流程中,学生需要填写请假单、班主任审批、学生处审核、辅导员签字等一系列手续,流程繁琐、时间成本高、管理效率低下。

信息化建设迫在眉睫:随着信息化时代的到来,各行各业都在积极推进信息化建设。学校作为重要的社会教育机构,也应该积极借助信息化手段提升管理效率。

学生出勤管理面临挑战:学生出勤管理一直是学校工作的重要内容,而传统的管理方式已经无法满足管理需要。在学生请假方面,如何实现信息化、数字化、自动化

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. SpringBoot:SpringBoot框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
  3. Mybatis:MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
  4. Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。
  5. Thymeleaf:thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。

Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
6. Bootstrap:Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。
7. Html:HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
等。
超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:dept(dept)

字段名 类型 默认值 列注释
id int NULL
num int NULL
name varchar NULL

2:leaves(leaves)

字段名 类型 默认值 列注释
id int NULL
type varchar NULL
starttime datetime NULL
endtime datetime NULL
reason varchar NULL
userid int NULL
username varchar NULL
isfinish int NULL
createtime datetime NULL

3:login_log(login_log)

字段名 类型 默认值 列注释
id int NULL
logname varchar NULL
userid int NULL
createtime datetime NULL
state varchar NULL
message varchar NULL
ip varchar NULL

4:memo(memo)

字段名 类型 默认值 列注释
id int NULL
title varchar NULL
text varchar NULL
time varchar NULL
userid int NULL

5:menu(menu)

字段名 类型 默认值 列注释
id int NULL
code varchar NULL
parentid int NULL
name varchar NULL
icon varchar NULL
url varchar NULL
num int NULL
levels int NULL
tips varchar NULL

6:notice(notice)

字段名 类型 默认值 列注释
id int NULL
title varchar NULL
body text NULL
message varchar NULL
senduserid int NULL
type varchar NULL
createtime datetime NULL
recivedeptid int NULL
reciveuserid int NULL

7:operation_leave_user(operation_leave_user)

字段名 类型 默认值 列注释
id int NULL
leaveid int NULL
userid int NULL
username varchar NULL

8:operation_log(operation_log)

字段名 类型 默认值 列注释
id int NULL
logtype varchar NULL
logname varchar NULL
userid int NULL
classname varchar NULL
method varchar NULL
createtime datetime NULL
state varchar NULL
message varchar NULL

9:role(role)

字段名 类型 默认值 列注释
id int NULL
roles varchar NULL
tips varchar NULL

10:role_menu_relation(role_menu_relation)

字段名 类型 默认值 列注释
id int NULL
roleid int NULL
menuid int NULL

11:thing(thing)

字段名 类型 默认值 列注释
id int NULL
name varchar NULL
text varchar NULL
state varchar NULL
name1 varchar NULL
name2 varchar NULL
name3 varchar NULL

12:user(user)

字段名 类型 默认值 列注释
id int NULL
username varchar NULL
password varchar NULL
salt varchar NULL
avator varchar NULL
deptid int NULL
roleid int NULL

五、功能模块:

  1. 学生角色模块:改模块的主要给学生用户使用,其中包含个人便签和请假管理,请假管理可以申请请假,取消请假,查看请假记录等

    学生角色模块

  2. 教务处角色:主要给老师或者教务处的人员使用,其中包含用户管理,院系管理,系统通知,请假审核等模块

    教务处角色

  3. 用户管理:整个系统的用户信息

    用户管理

  4. 院系管理:学校院系部门管理

    院系管理

  5. 角色管理:可以为不同的角色灵活的配置系统菜单,不同的权限

    角色管理

  6. 通知信息:由教务处发送系统通知,会出现在系统用户的右方通知栏中

    通知信息

  7. 老师模块:老师主要是给学生做请假审核等

    老师模块

  8. 学生请假申请:学生请假申请详情

    学生请假申请

六、代码示例:

@RequestMapping(value = "/login", method = { RequestMethod.POST })
public String login(HttpServletRequest request, ShiroUser user) {
   Subject subject = SecurityUtils.getSubject();
   user.setPassword(MD5Util.encrypt(user.getPassword()));
   if (linTools.getKaptchaSwich()) {
    String kaptchaRecevied = request.getParameter("kaptcha");
   // 用户输入的验证码的值
   String kaptchaExpected = (String) request.getSession()
   .getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
   // 校验验证码是否正确
   if (kaptchaRecevied == null || !kaptchaRecevied.equals(kaptchaExpected)) {
      request.setAttribute("msg", "验证码错误");
      request.setAttribute("status", Constant.ERROR_CODE_VERICATION_CODE_ERROR);
       return "error";// 返回验证码错误
   }
}

七、项目总结:

基于SSM架构的学生请假管理系统的开发制作,从题目确定到成品完成,自己投入的精力与心血是非常多的。从基于SSM架构的学生请假管理系统的前台页面实现,到基于SSM架构的学生请假管理系统的后台代码的编辑,我用到的软件包括了数据库软件MySQL,Java开发工具IDEA,办公软件Office,浏览器软件Fireworks,图像处理软件Photoshop等,这也是我第一次使用Java语言,开发的这个比较简单的基于SSM架构的学生请假管理系统。

基于SSM架构的学生请假管理系统开发过程中,自己之前觉得比较抽象的许多门课程,例如数据库原理,软件工程,动态网站开发等课程开始变得很清晰,只有自己独立开发程序,才会觉得这些开发类的课程在实践中具有的重要作用。为了让自己设计的作品能够顺利的完成,我把所学知识全部运用在程序的开发流程中,包括了程序的需求分析环节,程序的编码环节,程序的测试环节等,让程序软件在开发周期内完成制作,并能够保证程序质量达标,力求程序开发流程规范化,程序对应的配套文档标准化。

本次开发的系统整体界面还是比较清晰简明,功能上面考虑得比较全,几乎可以满足用户使用要求。尽管我对这次的毕设付出了许多的努力,但是程序还是有很多不足的地方,系统界面整体感觉还行,但是字体字号的选取上面还是有些不符合现实审美,在程序的CSS样式编码上面,我还有许多不熟悉的地方,虽然经过反复的测试与调试选中了现在这样的程序界面,但是我还是明显感觉到自己对一些常用CSS样式的不熟悉,编码过程中,我还要多次进行资料查看才知道。另外我编写的代码写作不是很规范,可读性比较差,幸运的是,我最终还是实现了系统中所要求的功能。

基于SSM架构的学生请假管理系统现已完成了开发,除了基本功能可以符合用户需求外,在页面设计层面上没有融入更多的设计元素,需要从美学角度进行优化,另外在程序的代码层面,也有许多重合部分,需要进行整理归类,让代码变得更加的简洁。

实践出真知,但是知识也是通过实践变得更加深刻,这次作品制作,让自己的专业知识水平与解决问题的能力得到了提高。也让自己更加明白活到老学到老的真正含义。

总的说来,这次编写毕业设计作品,我真正锻炼了自己的实际操作能力,以前只知道理论知识,现在通过实践,我对理论知识的认识变得更加深刻,由于编写程序时间比较短暂,程序开发期间遇到过很多坎坷,但最后都通过老师还有同学帮忙解决了,可以说这次的毕设作品进展得还算顺利。

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看获取项目下载链接,博主联系方式

链接点击直达:下载链接

你可能感兴趣的:(优质毕业设计,spring,boot,后端,java)