All Projects → KuroChan1998 → Student-Information-Administration-System

KuroChan1998 / Student-Information-Administration-System

Licence: other
大学生信息管理系统——初学路上自己摸索实践的项目

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Student-Information-Administration-System

Spring Framework Petclinic
A Spring Framework application based on JSP, Spring MVC, Spring Data JPA, Hibernate and JDBC
Stars: ✭ 251 (+175.82%)
Mutual labels:  maven, tomcat, spring-mvc
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (+370.33%)
Mutual labels:  maven, tomcat, mybatis
Ssm booksystem
ssm demo,ssm详细教程,SSM简明教程:简单的十步教你搭建人生第一个SSM框架[ SSM框架整合教程(spring+spring mvc+mybatis+redis+maven+idea+bootstrap) ]
Stars: ✭ 355 (+290.11%)
Mutual labels:  maven, mybatis, spring-mvc
JavaEE
🔥⭐️👍框架(SSM/SSH)学习笔记
Stars: ✭ 33 (-63.74%)
Mutual labels:  maven, mybatis, spring-mvc
Spring-SpringMVC-MyBatis-Maven
这是平时基于Maven的用于spring整合相关内容的学习demo
Stars: ✭ 74 (-18.68%)
Mutual labels:  maven, mybatis, spring-mvc
wislove
Java 服务端api解决方案,处理部分通用业务逻辑。包括用户中心,支付,订单,IM相关,内容管理,角色权限授权。以及分库分表的处理,RPC分布式的解决方案等。一个人慢慢做
Stars: ✭ 14 (-84.62%)
Mutual labels:  maven, mybatis, spring-mvc
Shopping Management System
该项目为多个小项目的集合(持续更新中...)。内容类似淘宝、京东等网购管理系统以及图书管理、超市管理等系统。目的在于便于Java初级爱好者在学习完某一部分Java知识后有一个合适的项目锻炼、运用所学知识,完善知识体系。适用人群:Java基础到入门的爱好者。
Stars: ✭ 4,130 (+4438.46%)
Mutual labels:  maven, mybatis, spring-mvc
Java Sourcecode Blogs
Java源码分析 【源码笔记】专注于Java后端系列框架的源码分析,每周持续推出Java后端系列框架的源码分析文章。
Stars: ✭ 448 (+392.31%)
Mutual labels:  tomcat, mybatis, spring-mvc
IDEAPractice
Java练习 - Java基础知识,面试题,小demo,长期积累 | intellij idea + maven + tomcat
Stars: ✭ 45 (-50.55%)
Mutual labels:  maven, mybatis, spring-mvc
Ibase4j
Spring,SpringBoot 2.0,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,Spring-Session单点登录,Quartz分布式集群调度,Restful服务,QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。
Stars: ✭ 1,548 (+1601.1%)
Mutual labels:  maven, mybatis, spring-mvc
vacomall
☀️☀️ 基于 dubbo 实现的分布式电商平台。
Stars: ✭ 42 (-53.85%)
Mutual labels:  maven, mybatis, spring-mvc
littlefisher-system
个人博客
Stars: ✭ 19 (-79.12%)
Mutual labels:  maven, mybatis, spring-mvc
springbook
java8+springMVC4+mybatis编写一个图书管理系统
Stars: ✭ 32 (-64.84%)
Mutual labels:  maven, mybatis, spring-mvc
Yan
使用Maven构建,整合Dubbo+Zookeeper+SpringMVC+Spring+MyBatis+Redis支持分布式的高效率便捷开发框架
Stars: ✭ 293 (+221.98%)
Mutual labels:  maven, mybatis, spring-mvc
Lyonblog
基于Java8的SSM+Elasticsearch全文检索的个人博客系统
Stars: ✭ 169 (+85.71%)
Mutual labels:  tomcat, mybatis, spring-mvc
Highdsa
2018年本科毕设项目,已更新所有开发和部署文档。基于Dubbo、SSM、Shiro、ELK、ActiveMQ、Redis等实现的一套高可用、高性能、高可扩展的分布式系统架构,实现可支持业务的基础公共服务,API使用Restful风格对外暴露。已经实现的包括:发送邮件服务、FastDFS文件存储服务、ELK实时日志查询服务、Redis缓存服务、Mybatis数据库、阿里短信推送、Goeasy消息推送、Druid监控、ActiveMQ消息队列、shiro权限认证、cas单点登录、权限配置web系统、移动端后台系统。持续更新中......
Stars: ✭ 385 (+323.08%)
Mutual labels:  maven, mybatis, spring-mvc
Houserentalsystem
🏠 房屋租赁系统,基于主流框架 SSM 的实战项目。
Stars: ✭ 122 (+34.07%)
Mutual labels:  mybatis, spring-mvc, layui
DIMS
🐟 数据库系统原理课程设计,Drug Inventory Management System,基于 SSM 框架的医院药品库存管理系统。
Stars: ✭ 49 (-46.15%)
Mutual labels:  tomcat, mybatis, spring-mvc
Perfect Ssm
🍇更完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis)
Stars: ✭ 606 (+565.93%)
Mutual labels:  maven, mybatis, spring-mvc
Ssm Demo
🍌Spring+SpringMVC+Mybatis+easyUI实现简单的后台管理系统
Stars: ✭ 1,639 (+1701.1%)
Mutual labels:  maven, mybatis, spring-mvc

Brief Introduction

这个项目是一个大学生信息管理系统,提供用户级别的登录注册资料管理,信息查询,信息修改(管理员权利),简单的数据可视化分析等功能,也有基本的安全性保障

Release Notes

RedisSpringAOP不太熟的初学者,下载v1.1.0版本足够学习或完成课设了~(更多历史版本)

v1.3.0 - 2019.10.14 (Current Version)

版本1.3.0,提升安全性,解决部分安全隐患 :

  • 前端layUi数据表格,增加“筛选列”、“打印”、“导出”上方工具条。
  • 新增CsrfInterceptor拦截器,对修改请求进行CsrfToken的校验,有效防止CSRF攻击
  • 对注册用户信息后端服务层,强化在aop方法中对输入身份属性的校验,对“管理员”字段进行过滤,并抛出异常,防止攻击者拦截请求JSON数据进行修改以获得非法权限;对修改用户信息后端控制层,强化在UserController对应方法中对原身份属性和修改后身份属性的校验,对“管理员”字段进行过滤,防止攻击者拦截请求JSON数据进行修改以获得非法权限。
  • 感谢@Mydearbaby发现的邮箱验证码绕过安全漏洞,在服务端发送验证码时新增一个标志位false,仅当服务端校验正确后才将此标志置true,可以有效避免攻击者拦截请求JSON数据进行修改以绕开验证码。

Technologies Used

前端

  • 前端框架 : layui
  • 数据可视化框架 : echarts

后端

  • IOC容器 : Spring
  • MVC框架 : SpringMVC
  • ORM框架 : Mybatis
  • 缓存技术:Redis
  • 数据库:Mysql
  • 日志框架 : Log4j

Project Structure

├─database                          // 数据库相关文件
│  ├─design				                  // 数据库设计
│  │  └─1
│  └─sql                            // 数据库初始化脚本文件
├─git_screenshot                    // 存放README.md 中的图片
├─src                               // 项目源代码目录
│  ├─main                           //源代码目录
│  │  ├─java
│  │  │  └─com
│  │  │      └─jzy          // java代码目录
│  │  │          ├─controller       // 控制层
│  │  │          ├─dao              // 持久层
│  │  │          ├─dto              // 传输对象
│  │  │          ├─entity           // 实体类
│  │  │          ├─exception        // 自定义异常类
│  │  │          ├─interceptor      // 拦截器
│  │  │          ├─log              // 日志管理
│  │  │          ├─service          // 服务层
│  │  │          │  └─impl          // 服务层接口实现
│  │  │          └─util             // 工具方法
│  │  ├─resources                   // 资源文件目录
│  │  │  └─com
│  │  │      └─jzy
│  │  │          └─mapper           // mybatis对dao接口的xml实现
│  │  └─webapp                      // tomcat前端文件目录
│  │      ├─static                  // 静态资源
│  │      │  ├─custom               // 自定义静态资源
│  │      │  └─plugins              // 插件类静态资源
│  │      └─WEB-INF
│  │          └─page                // jsp页面目录 
│  └─test                           // 测试代码目录
├─README.md                         // help
├─ISSUES.md                         // 问题大全
└─pom.xml                           // maven依赖

Quick Start

1 : 项目开发环境

  • IDE : IntelliJ IDEA 2018.1.7
  • 项目构建工具 : Maven 3.x
  • 数据库 : Mysql 8.0.13
  • Redis:Redis server 3.2.100
  • JDK版本 : jdk 1.8
  • Tomcat版本 : Tomcat 8.x

2 : 项目的初始构建

  1. 在你的Mysql中,运行我提供的database/sql/init.sql 文件(注意mysql版本与sql脚本中部分代码的兼容性), 成功会创建名为mydatabase2的数据库,以及user、student、teacher、class、major、college、title、grade八个表

数据库物理模型如下 :

Snipaste_2019-07-17_09-48-36

  1. 进入src/main/resources修改dbconfig.properties配置文件,把数据库主机、端口、用户名和密码,改为你本地的

    #mysql
    jdbc.driver=com.mysql.cj.jdbc.Driver
    #你的mysql连接url,localhost(本机),端口:3306(默认),数据库:mydatabase2(上一步完成创建)
    jdbc.url=jdbc:mysql://localhost:3306/mydatabase2?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
    #你的mysql用户名
    jdbc.username=root
    #你的mysql密码
    jdbc.password=123
  2. 进入src/main/resources修改redis.properties配置文件,把数据库主机、端口、用户名和密码,改为你本地的

    #你的redis主机地址
    redis.host=localhost
    #你的redis端口
    redis.port=6379
    #你的redis密码
    redis.password=123
  3. 进入src/main/resources查看log4j.properties,如果有必要可以修改日志输出路径,目前在D盘下,你可选择不修改跳过此步

  4. 使用 IntelliJ IDEA 导入项目,选择Maven项目选项,一路点击next,即可将项目所需依赖导入(若依赖下载速度较慢,请参考百度更改国内镜像)。若有无法引入的依赖,可能是因为maven版本不同或是该依赖已过时不存在于现有maven仓库中,请前往maven官网映入最新的该类型依赖

Snipaste_2019-07-17_08-47-37

Snipaste_2019-07-17_08-49-48

  1. 在 IntelliJ IDEA 中,配置我们的 Tomcat, 然后把使用Maven构建好的项目添加到Tomcat中,操作比较简单,相关方法可以参考百度

  2. 运行项目,进入用户登录页面

Snipaste_2019-05-04_08-02-50

  1. 登录账户/密码(你也可以自行注册一个账户登录哟)
  • 管理员账户:000000000000/admin1
  • 学生账户:516030910429/123456
  • 教师账户:1000000001/123456

3:项目的打包

  • 在配置好maven的环境变量的前提下,在项目根目录下cmd打开命令行,输入 mvn clean package,即可在target/目录下得到相应war包。

  • 将war手动部署到tomcat的webapp目录下(手动部署的方式可以参考百度,这里不详述),也可得到第二步一样的运行结果。

Detailed Functions

用户服务

  • 登录:如上文图所示

  • 注册

    Snipaste_2019-05-04_08-11-21

  • 忘记密码后的重置密码(含发送邮箱验证码)

    Snipaste_2019-05-04_08-12-27

  • 登录进入主页

    Snipaste_2019-09-12_10-35-03

  • 修改基本资料

    Snipaste_2019-07-04_08-19-12

  • 修改密码

    Snipaste_2019-07-17_09-23-03

  • 修改绑定邮箱

    Snipaste_2019-07-17_09-30-38

信息查询

  • 学生信息查询

    • 查询所有信息

      Snipaste_2019-07-17_09-31-05

    • 根据登录用户的用户名(应以学号注册)查询当前个人的学籍信息,若注册时未以真实学号注册,则无法查询到。

      Snipaste_2019-07-17_09-32-12

    • 模糊查询搜索

      Snipaste_2019-07-17_09-32-47

  • 教师信息查询:类似学生信息查询,图略

  • 班级信息查询:类似学生信息查询,图略

  • 专业&学院信息查询:类似学生信息查询,图略

信息修改

  • 学生信息修改

    • 此功能必须以管理员用户身份登录,否则会跳转至异常页面

      Snipaste_2019-05-04_08-32-13

    • 编辑信息

      Snipaste_2019-07-17_09-33-51

    • 添加

      Snipaste_2019-07-17_09-34-24

    • 单条、多条删除

      Snipaste_2019-07-17_09-34-56

  • 教师信息修改:类似学生信息修改,图略

  • 班级信息修改:类似学生信息修改,图略

  • 专业&学院信息修改:类似学生信息修改,图略

拓展功能

  • 学生男女比可视化

Snipaste_2019-07-17_09-36-37

  • 学生人数比可视化

Snipaste_2019-07-17_09-37-17

Snipaste_2019-07-26_17-10-43

  • 师资力量可视化

    Snipaste_2019-07-26_17-12-36

Update History

v1.2.0 - 2019.9.12

版本1.2.0,更新如下内容 :

  • 修复了前端编辑添加弹窗在不同分辨率客户机上的显示大小问题
  • 新增Redis技术,用以缓存用户名密码,用户错误登录次数限制,邮箱验证码等等
  • 新增连续输错用户名密码超过一定次数后的限制时间
  • 更改了邮箱验证码有效时间的实现方式,由服务端java实现改为redis过期时间实现
  • 提升了服务端的安全性和新增异常处理机制,用aop实现入参的校验,对不合法的请求及其参数值用日志记录,并抛出异常
  • 优化了util包等源代码的结构,增强了可拓展性

Download: https://github.com/KuroChan1998/Student-Information-Administration-System/tree/v1.2.0

v1.1.0 - 2019.7.27

版本1.1.0,更新如下内容 :

  • 优化数据表结构,对原有的表的部分字段进行了修改,并增加了title和grade两个表
  • 优化sql语句效率
  • 优化前端查询界面及查询方式,使其更加全面,对用户友好
  • 更新登录界面记住密码的cookie设置
  • 更新邮箱验证码服务,增加了验证码有效时间
  • 优化源代码结构,增强了规范性和可拓展性

Download: https://pan.baidu.com/s/1yHjrk7gAycHRFapU_Waf4g

v1.0.0 - 2019.5.19

StuInfoAdmin-v1.0.0 的一切准备工作似乎都已到位。发布之弦,一触即发。 不枉近百个日日夜夜与之为伴。因小而大,因弱而强。

无论它能走多远,抑或如何支撑?至少我曾倾注全心,无怨无悔

Download: https://pan.baidu.com/s/1piVQnIFdz_BIoszIEzAJwQ

Contact me

欢迎提出意见与建议~

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].