SpringBoot+Vue实现校园管理系统

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue.js 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:Java jdk8

Maven:apache-maven 3.8.1-bin

一、前言介绍 

信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对校园管理系统等问题,对校园管理系统进行研究分析,然后开发设计出校园管理系统以解决问题。

校园管理系统主要功能模块包括用户管理、课程信息、学生选课、课程成绩、已修课程、学生课表、教师课表、教室信息、申请教室、考试信息、监考信息、调停课申请、校历,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用springboot框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对校园管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现校园管理系统和部署运行使用它。

二、系统功能分析

按照校园管理系统的角色,我划分为了学生用户管理模块、教师用户管理模块和管理员管理模块这三大部分。

2.1学生用户管理模块

(1)学生用户注册登录:学生用户注册为用户并登录校园管理系统;学生用户对个人信息的增删改查,比如个人资料,密码修改。

(2)查看校园管理系统的首页信息:校园管理系统的首页信息包含了首页、交流论课程信息、公告消息、校园资讯、教室信息、考试信息、调停课申请、校历等。

(3)公告消息:当学生点击“公告消息”这一菜单,会显示管理员在后台发布的所有的公告消息,可以查看详情;

(4)校园资讯:当学生点击“校园资讯”这一菜单,会显示管理员在后台发布的所有的校园资讯,可以查看详情,进行收藏、点赞、评论等;

(5)课程信息:当学生点击“课程信息”这一菜单,会显示管理员在后台发布的所有的课程信息,可以查看详情,进行课程名称、授课教师、课程类型、课程日期等;

(5)考试信息:当学生点击“考试信息”这一菜单,会显示管理员在后台发布的所有的考试信息,可以查看详情,进行考试名称、考试类型、考试学生、考试时间等;

2.2教师用户管理模块

(1)课程信息:学生在后台的“课程信息”界面中可以提交出行课程信息,教师在“课程信息”界面可以进行查看;

(2)学生选课:学生在后台的“学生选课”界面中可以提交选课信息,教师在“学生选课”界面可以进行查看;

(3)申请教室:学生在后台的“申请教室”界面中可以提交申请教室信息,教师在“申请教室”界面可以进行查看、审核;

2.3管理员管理模块

(1)登录:管理员的账号是在数据表表中直接设置生成的,不需要进行注册;

(2)站点管理:当点击“站点管理”这一菜单的时候,会出现轮播图+公告栏两个子菜单,可以对这两个模块进行增删改查操作;

(3)用户管理:当点击“用户管理”这一菜单的时候,会出现管理员+学生+教师三个子菜单,可以对这三个模块进行增删改查操作;

(4)内容管理:当点击“内容管理”这一菜单的时候,会出现校园资讯+资讯分类列表这两个子菜单,能够对用户在前台提交的公告消息进行管理,同时对前台展示的校园资讯进行增删改查操作;

(5)更多管理:当点击“更多”这一菜单的时候,会出现课程信息+学生选课+课程成绩+已修课程+学生课表+教师课表+教室信息+申请教室+考试信息+监考信息+调停课申请+校历这十二个子菜单,能够对课程信息进行增删改查操作,对学生和教师提交的课程成绩进行管控,以及实现对教师和学生提交的调停课申请+学生选课进行审核管理;

三、用户功能模块

3.1前台首页界面

当进入校园管理系统的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图所示。

3.2学生登录界面

校园管理系统中的前台上注册后的学生是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到校园管理系统的首页中;否则将会提示相应错误信息,学生登录界面如下图所示。

3.3学生注册界面

不是校园管理系统中正式学生的是可以在线进行注册的,如果你没有本校园管理系统的账号的话,添加“注册”,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可学生注册成功。其用学生注册界面展示如下图所示。

3.4校园资讯界面

当访客点击校园管理系统中导航栏上的“校园资讯”后将会进入到该“校园资讯”列表的界面,然后选择想要看的资讯信息,点击进入到详细界面,在详细界面可以点赞+收藏+评论等操作,校园资讯界面如下图所示。

3.5公告栏界面

当点击导航栏上的“公告栏”的时候,就会进入对应的界面查看公告信息,公告栏界面如下图所示。

3.6课程信息详情界面

当访客点击了任意课程信息后将会进入课程信息的详情界面,可以了解到该课程的课程名称、授课教师、课程类型、课程日期、备注、课程内容等,同时可以对该课程信息进行选课+评论,课程信息详情展示页面如图所示。

四、管理员功能模块

4.1用户管理界面

校园管理系统中的管理人员是可以对前台注册的学生用户、教师用户进行管理的,也可以对管理员进行管控。界面如下图所示。

4.2内容管理界面

校园管理系统中的管理人员在“内容管理”这一菜单中是可以对校园管理系统内的校园资讯、资讯分类列表等进行维护和管理的,界面如下图所示。

4.3站点管理界面

校园管理系统中的管理人员在“站点管理”这一菜单中是可以对前台显示的轮播图以及公告栏进行管控。界面如下图所示。

4.4更多管理界面

校园管理系统中的管理人员在“更多管理”这一菜单下是可以对校园管理系统内的课程信息、学生选课、课程成绩、已修课表、学生课表、教师课表、教师信息、申请教室、考试信息、监考信息、调停课申请、校历进行管控的,其管理界面如下图所示。

五、部分核心代码

5.1用户管理关键代码 

public String encryption(String plainText) {

String re_md5 = new String();

try {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(plainText.getBytes());

byte b[] = md.digest();

int i;

StringBuffer buf = new StringBuffer("");

for (int offset = 0; offset < b.length; offset++) {

i = b[offset];

if (i < 0)

i += 256;

if (i < 16)

buf.append("0");

buf.append(Integer.toHexString(i));

}

re_md5 = buf.toString();

} catch (Exception e) {

e.printStackTrace();

}

return re_md5;

}

 5.2站点管理关键代码

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

service.insert(service.readBody(request.getReader()));

return success(1);

}

@Transactional

public Map<String, Object> addMap(Map<String,Object> map){

service.insert(map);

return success(1);

}

public Map<String,Object> readBody(BufferedReader reader){

BufferedReader br = null;

StringBuilder sb = new StringBuilder("");

try{

br = reader;

String str;

while ((str = br.readLine()) != null){

sb.append(str);

}

br.close();

String json = sb.toString();

return JSONObject.parseObject(json, Map.class);

}catch (IOException e){

e.printStackTrace();

}finally{

if (null != br){

try{

br.close();

}catch (IOException e){

e.printStackTrace();

}

}

}

return null;

}

public void insert(Map<String,Object> body){

StringBuffer sql = new StringBuffer("INSERT INTO ");

sql.append("`").append(table).append("`").append(" (");

for (Map.Entry<String,Object> entry:body.entrySet()){

sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

}

sql.deleteCharAt(sql.length()-1);

sql.append(") VALUES (");

for (Map.Entry<String,Object> entry:body.entrySet()){

Object value = entry.getValue();

if (value instanceof String){

sql.append("'").append(entry.getValue()).append("'").append(",");

}else {

sql.append(entry.getValue()).append(",");

}

}

sql.deleteCharAt(sql.length() - 1);

sql.append(")");

log.info("[{}] - 插入操作:{}",table,sql);

Query query = runCountSql(sql.toString());

query.executeUpdate();

}

5.3更多管理关键代码

@RequestMapping(value = "/del")

@Transactional

public Map<String, Object> del(HttpServletRequest request) {

service.delete(service.readQuery(request), service.readConfig(request));

return success(1);

}

@Transactional

public void delete(Map<String,String> query,Map<String,String> config){

StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

log.info("[{}] - 删除操作:{}",table,sql);

Query query1 = runCountSql(sql.toString());

query1.executeUpdate();

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一季春秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值