基于SpringBoot+Vue+uniapp的高校教务管理小程序系统设计和实现

news2024/12/24 2:11:49

2. 详细视频演示

文章底部名片,联系我获取更详细的演示视频

3. 论文参考

4. 项目运行截图

代码运行,效果展示图

代码运行,效果展示图

代码运行,效果展示图

代码运行,效果展示图

代码运行,效果展示图

5. 技术框架

5.1 后端采用SpringBoot框架

Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约定大于配置的方式,大大简化了应用程序的配置工作。开发者不再需要手动配置大量的 XML 文件或繁琐的注解,框架提供了默认的配置,根据项目的依赖关系和约定,自动完成配置。Spring Boot 使用Maven或 Gradle 进行构建,自动下载项目依赖,并提供了许多插件简化构建过程。开发者可以使用 Spring Initializr 来生成一个基础的项目结构,然后根据需要选择所需的依赖。

5.2 前端框架Vue

Vue.js的设计目标之一是使其尽可能简单、易于理解和上手。Vue 提供了直观的 API,使开发者能够轻松地构建交互式的用户界面。Vue.js 提供了简单而强大的数据绑定机制,通过使用指令(例如 v-model)可以实现视图和数据的双向绑定。当数据发生变化时,视图会自动更新,反之亦然,使得开发者不必手动处理 DOM 操作。Vue.js 提供了一组生命周期钩子函数,允许开发者在组件的不同阶段执行自定义逻辑。这包括创建、挂载、更新和销毁等阶段,为开发者提供了更多灵活性。

6. 可行性分析

可行性分析是每开发一个项目必不可少的一部分,可行性分析可以直接影响一个系统的存活问题,针对开发意义进行分析,还有就是是否可以通过所开发的系统来弥补传统手工统计模式的不足,是否能够更好的解决阿博图书馆管理系统存在的问题等,通过对该阿博图书馆管理系统的开发设计,不仅能够逐步减少工作人员的工作量,而且还可以进行高效工作和管理。所以该系统的开发实现了最大的意义和价值,在系统完成后,利益是否大过于成本,是否能够达到预期效果,这些方面都要进行可行性分析,再通过分析之后,就可以决定是否开发此系统。该阿博图书馆管理系统的开发设计中,以下几点进行了可行性分析:技术可行性:通过Java技术的采用,由于该技术不断成熟,所以使用该技术设计阿博图书馆管理系统是具有可行性的。经济可行性:在开发过程中,系统完成后的利益是否大过于开发成本。操作可行性:阿博图书馆管理系统的开发设计中,方便用户的可操作性和实用性。

7. 系统测试

从多个角度进行测试找到系统中存在的问题是本系统首要的测试目的,通过功能测试寻找出系统缺陷并改正,确保系统没有缺陷。在测试过程中证明系统满足客户需求,发现问题和不足及时改正。测试完成之后得出测试结论。

7.1 系统测试的目的

系统测试是必不可少且考验耐心的过程。其重要性在于,它是保证系统质量和牢靠性的最后一道关,也是整个系统开发过程的最后一次检查。

系统测试主要是为了避免用户在使用时发生问题,增强用户体验感,为了不影响用户的使用,我们需要从多角度、多思路去考虑系统可能遇到的问题,通过不同的模拟场景来发现缺陷并解决问题。在测试的过程中也可以了解到该系统的质量情况,系统功能是否健全,系统逻辑是否顺畅。一个合格的系统测试过程完成后将大大提升系统质量和使用感。测试的目标是验证系统是否符合需求规格说明书的定义,并找出与需求规格说明书不符合或与之冲突的内容。测试过程中一定站在用户的角度考虑问题,避免一些不切实际的场景,浪费测试时间,从而可能会引起问题导致预期结果与实际结果不符。

7.2 系统功能测试

对系统功能模块进行测试,通过点击、输入边界值和必填项非必填项的验证等方法进行一系列的黑盒测试。通过编写测试用例,根据测试用例中的内容进行测试,最后得出测试结论。

登录功能测试方案:当需要登入该系统时,通过账户密码等功能点进行验证,用户在输入时需要输入与数据库内存储的数据匹配的内容,当其中某项输入错误时系统将提示输入错误。此界面对角色权限也有相应的校验,当用户角色的帐号选择管理员角色登录时,也会报错。登录功能测试用例如下表所示。

输入数据

预期结果

实际结果

结果分析

用户名:guanliyuan 密码:123456 验证码:正确输入

登入系统

成功登入系统

和估算结果一样

用户名:guanliyuan 密码:111111 验证码:正确输入

密码错误

密码错误,请重新输入密码

和估算结果一样

用户名:guanliyuan 密码:123456 验证码:错误输入

验证码错误

验证码信息错误

和估算结果一样

用户名:空 密码:123456 验证码:正确输入

用户名必填

请输入用户名

和估算结果一样

用户名:guanliyuan 密码:空 验证码:正确输入

密码错误

密码错误,请重新输入密码

和估算结果一样

用户管理功能测试方案:用户管理主要有添加、编辑、删除、查找用户功能。添加用户时,必填项不填,检验系统是否有非空检验;添加已有的用户信息,检验是否提示用户名已被使用;删除用户信息,系统将检验是否进行此操作;更改用户信息,更改用户信息后页面是否可以展示出来。用户管理测试用例如下表所示。

输入数据

预期结果

实际结果

结果分析

填入用户基本信息

添加成功,在用户列表中显示

该用户出现在在列表中

和估算结果一样

修改用户信息

编辑成功,修改信息成功被修改

用户信息被修改

和估算结果一样

选中删除用户

系统询问是否删除用户,确认后用户被删除

系统询问是否删除用户,确认后查找不到用户信息

和估算结果一样

添加用户时不填用户名

提示用户名不能为空

提示用户名不能为空

和估算结果一样

填入已有用户名

添加失败,提示用户名重复

添加失败,提示用户名重复

和估算结果一样

8. 数据库表设计

列名

数据类型

长度

约束

id

int

11

PRIMARY KEY

addtime

行2内容

行2内容

DEFAULT NULL

jieyuedanhao

varchar

64

DEFAULT NULL

tushubianhao

varchar

64

DEFAULT NULL

tushumingcheng

varchar

12

DEFAULT NULL

fakuanshuoming

varchar

64

DEFAULT NULL

fakuanjine

varchar

64

DEFAULT NULL

fakuanriqi

varchar

64

DEFAULT NULL

yonghuming

varchar

64

DEFAULT NULL

shouji

varchar

64

DEFAULT NULL

9. 代码参考

/**
 * 通用接口
 */
@RestController
public class CommonController{
	@Autowired
	private CommonService commonService;
	
	@Autowired
	private ConfigService configService;
	
	private static AipFace client = null;
	
	private static String BAIDU_DITU_AK = null;
	
	@RequestMapping("/location")
	public R location(String lng,String lat) {
		if(BAIDU_DITU_AK==null) {
			BAIDU_DITU_AK = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "baidu_ditu_ak")).getValue();
			if(BAIDU_DITU_AK==null) {
				return R.error("请在配置管理中正确配置baidu_ditu_ak");
			}
		}
		Map<String, String> map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
		return R.ok().put("data", map);
	}
	
	/**
	 * 人脸比对
	 * 
	 * @param face1 人脸1
	 * @param face2 人脸2
	 * @return
	 */
	@RequestMapping("/matchFace")
	public R matchFace(String face1, String face2) {
		if(client==null) {
			/*String AppID = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "AppID")).getValue();*/
			String APIKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "APIKey")).getValue();
			String SecretKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "SecretKey")).getValue();
			String token = BaiduUtil.getAuth(APIKey, SecretKey);
			if(token==null) {
				return R.error("请在配置管理中正确配置APIKey和SecretKey");
			}
			client = new AipFace(null, APIKey, SecretKey);
			client.setConnectionTimeoutInMillis(2000);
			client.setSocketTimeoutInMillis(60000);
		}
		JSONObject res = null;
		try {
			File file1 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face1);
			File file2 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face2);
			String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
			String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
			MatchRequest req1 = new MatchRequest(img1, "BASE64");
			MatchRequest req2 = new MatchRequest(img2, "BASE64");
			ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>();
			requests.add(req1);
			requests.add(req2);
			res = client.match(requests);
			System.out.println(res.get("result"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return R.error("文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
		} 
		return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
	}

10. 数据库脚本

CREATE TABLE `yonghu` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `yonghuming` varchar(200) NOT NULL COMMENT '用户名',
  `mima` varchar(200) NOT NULL COMMENT '密码',
  `xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
  `xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
  `touxiang` varchar(200) DEFAULT NULL COMMENT '头像',
  `shouji` varchar(200) DEFAULT NULL COMMENT '手机',
  `shenfenzheng` varchar(200) DEFAULT NULL COMMENT '身份证',
  PRIMARY KEY (`id`),
  UNIQUE KEY `yonghuming` (`yonghuming`)
) ENGINE=InnoDB AUTO_INCREMENT=1616222324596 DEFAULT CHARSET=utf8mb3 COMMENT='用户';
CREATE TABLE `messages` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `userid` bigint NOT NULL COMMENT '留言人id',
  `username` varchar(200) DEFAULT NULL COMMENT '用户名',
  `content` longtext NOT NULL COMMENT '留言内容',
  `reply` longtext COMMENT '回复内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1616222424131 DEFAULT CHARSET=utf8mb3 COMMENT='留言板';
CREATE TABLE `token` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `userid` bigint NOT NULL COMMENT '用户id',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
  `role` varchar(100) DEFAULT NULL COMMENT '角色',
  `token` varchar(200) NOT NULL COMMENT '密码',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COMMENT='token表';

13. 获取源码

 我们有上万多套源码,欢迎咨询。
可定制、修改、部署、讲解、代写文档、PPT。
可接定做!可接定做!可接定做!!!!!!

百度网盘 请输入提取码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中科星图GVE(案例)——AI检测采样区域的滑坡

目录 简介 函数 gve.Services.AI.Object_Detection_Landslide(image) 代码 结果 知识星球 机器学习 简介 AI可以通过分析卫星图像或航拍图像来检测采样区域的滑坡。以下是一些可能的方法&#xff1a; 图像识别&#xff1a; AI算法可以训练&#xff0c;以识别滑坡的视觉…

Spring Boot常见错误与解决方法

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; 目录 创建第一个SpringBoot项目 SpringBoot项目各个…

基于分级分类的千亿级规模车联网数据采集与数据安全方案与实践

当前&#xff0c;中国的汽车行业发展势头正旺。造车势力百家争鸣、百花齐放&#xff0c;甚至迈出国门、走向世界。 比如&#xff0c;前不久我们看到的一个现象&#xff1a;中国新能源汽车在欧洲和中东备受欢迎&#xff0c;把本地汽车打的毫无招架之力。 那在这个过程中&#…

SPIE出版-EI会议-人机交互 虚拟现实 <<< 11月杭州

EI、Scopus检索|人机交互与虚拟现实国际会议征稿进行中❗会议已通过SPIE出版❗ 2024人机交互与虚拟现实国际会议 ✅大会时间&#xff1a;2024年11月15-17日 ✅大会地点&#xff1a;中国-杭州 ✅报名/截稿&#xff1a;2024年10月15日&#xff08;团队投稿可享优惠&#xff…

车载电源OBC+DC/DC

文章目录 1. 车载DC/DC应用场景2. PFC2.1 简介2.2 专业名词2.3 常见拓扑结构2.3.1 传统桥式PFC2.3.2 普通无桥型PFC2.3.3 双Boost无桥PFC2.3.4 图腾柱PFC2.3.5 参考资料 2.4 功率因数2.4.1 简介2.4.2 计算 3. DC/DC3.1 Boost升压电路3.1.1 简介3.1.2 电路框图3.1.3 工作原理3.1…

多功能点击器(文末附Gitee源码)——光遇自动弹奏

之前提到的多功能点击器&#xff0c;使用场景比较多&#xff0c;之前玩光遇喜欢在里面弹琴&#xff0c;想到用这个点击器也能自动弹琴&#xff0c;跟别的自动弹琴脚本不一样&#xff0c;这个比较简单容易操作。 借这个光遇自动弹琴使用教程再讲解一下这个多功能点击头的使用方法…

mac端口被占用解决方法

通常情况下&#xff1a;lsof -i:#{port} 就可以找到对应的进程的pid kill -9 #{pid} 直接终结 kill -15 #{pid} 等待正在进行的任务完成再终结 本次纪要 问题出现&#xff1a; 当我想要使用docker启动mysql的时候报错&#xff1a;Error response from daemon: Ports are not…

【项目实战】g-sensor输出的gyro数据值没有变化

项目场景: GR5515 sensor hub SDK 与 master 展锐W307(UWS6130E)通过串口通讯。 问题描述 量产的设备,概率性出现以下问题:G-SENSOR 输出的gyro数据值没有变化,始终是一组一样的值。G-SENSOR型号为icm-42670-p。规格书已上传。 正常的设备是有变化的。参考下图, 对比异…

10.10 工作笔记

需要做的事&#xff1a; 修改文件名&#xff1a;资金曲线_BTC-USDT_1INCH-USDT_24H.csv为 BTC-1INCH_24H.csv整理代码订正数据正确性 1 涨跌幅 4.10第一个涨跌幅为none 正确 4.12涨跌幅 第一个和最后一个着重看看 正确 2 资金曲线 3 总体资金曲线 4 总体涨跌幅 5 总体资金曲线…

bclinux安装minio和mc

下载MinIO服务器二进制文件 访问MinIO的官方网站或使用wget、curl等工具直接从MinIO的官方GitHub存储库下载最新版本的MinIO服务器二进制文件。例如&#xff0c;使用以下命令&#xff1a; 下载命令&#xff1a;wget https://dl.min.io/server/minio/release/linux-amd64/ 授…

PCL 将点云投影到拟合直线

PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#xff09; 一、概述 该代码通过拟合直线模型&#xff0c;将点云投影到该直线上&#xff0c;并输出投影后的点云。 1.1原理 点云投影到直线的过程主要包括以下…

nacos源码修改持久化到postgreSQL数据库

很多业务场景&#xff0c;业务功能必须用pg数据库&#xff0c;这时候注册中心如果用mysql的话&#xff0c;显得浪费资源&#xff0c;基于此&#xff0c;nacos源码修改持久化到postgreSQL数据库是一个必然需求&#xff0c;此处我们修改为只支持pg数据库&#xff0c;2.4版本的源码…

文献阅读Prov-GigaPath模型--相关知识点罗列

文章链接&#xff1a;A whole-slide foundation model for digital pathology from real-world data | NatureDigital pathology poses unique computational challenges, as a standard gigapixel slide may comprise tens of thousands of image tiles1–3. Prior models hav…

联软安全助手卸载 UniAccess Agent,最简单的方法,两步解决!!!

背景&#xff1a; 前段时间因为业务需要安装了这个可恶的安全助手&#xff0c;然后发现卸载不掉&#xff0c;找了网上很多的方法&#xff0c;比如经典的方案一、方案二那个文章&#xff0c;禁用服务根本禁不掉&#xff0c;过两三秒他自己就会把禁用状态改为自动状态&#xff0…

OpenCSG传神社区月度功能更新

9月社区ReleaseNote 在9月的社区更新中&#xff0c;我们继续秉持开放与创新的精神&#xff0c;推出了一系列新功能和技术升级。这些更新不仅扩展了社区的技术支持范围&#xff0c;还为用户提供了更多资源&#xff0c;助力其在人工智能、大数据处理和推理加速等领域的创新。通过…

老男孩mysql系列 1_Mysql 8.0常规安装

1. MySQL安装准备 选择安装的MySQL版本首先判断是否要和公司其他已经安装好的MySQL保持版本一致如果没有上述要求&#xff0c;则一般会安装最新版本&#xff08;目前是5.7&#xff09;如果不是实验新功能性质&#xff0c;则不要选择development release&#xff0c;而要安装Gen…

nuScenes里的目标物体的速度是如何获取的

nuScenes的那些标注文件里并没有标注记录物体的速度数据&#xff0c;而是读取标注数据后根据sample_annotation.json里目标在前后帧里的translation数据相减除以时间差获得x、y、z方向的三个速度分量(Vx,Vy,Vz)的&#xff0c;一版只使用了Vx和Vy&#xff0c;具体实现代码在nusc…

20241007给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Buildroot时使用ADB

20241007给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Buildroot时使用ADB 2024/10/7 17:35 缘起&#xff1a;由于荣品RD-RK3588-AHD开发板使用的是9针的USB-A口&#xff0c;没有使用EVB4默认的type C口。 因此需要拿掉fusb302的驱动/DTS配置部分。 同时&#xff0c;为了简单起见…

腾讯云实时音视频 SDK(TRTC SDK)相关

实时音视频 SDK&#xff08;TRTC SDK&#xff09; 的 RoomID 是什么&#xff1f;取值区间值是多少&#xff1f; RoomID 即房间号&#xff0c;用于唯一标识一个房间。房间号取值区间为1 - 4294967295&#xff0c;由开发者自行维护和分配。 实时音视频 SDK&#xff08;TRTC SDK…

国产工具链GCKontrol-GCAir助力控制律开发快速验证

前言 随着航空领域技术的不断发展&#xff0c;飞机的飞行品质评估和优化成为了航空领域的一个重要任务&#xff0c;为了确保飞行器在各种复杂条件下的稳定性&#xff0c;控制律设计过程中的模型和数据验证需要大量仿真和测试。 本文将探讨基于世冠科技的国产软件工具链GCKont…