一、前言
设计一款简单操作实用的校园代跑腿系统。系统主要包括用户登录、注册、订单管理(创建、修改、发布代跑腿订单)、查看订单信息(取货送货地址、订单价格与电话号码),以及跑腿员接单。
本系统是为解决高校内短距离业务的需求,特开发高校校园跑腿系统,针对校园内的礼物代发、药品代买、快递代取、打印服务、餐品代买等进行管理,实现平台内发布方和接手方的沟通桥梁,通过交流达成交易,为双方带来便利,提高跑腿信息发布的效率。
校园代跑腿APP选用 SpringBoot+UniAPP 框架进行开发。其中,SpringBoot 框架为系统提供了强大的后端支持,具备高效的业务处理能力和稳定的运行保障。UniAPP 赋予了系统跨平台的特性,使得系统能够在不同的设备上流畅运行。在数据库存储方面,本课题采用 MySQL 数据库,MySQL 具有高度的稳定性,能够确保数据的安全存储和可靠管理。其存储容量大,可以满足系统不断增长的数据存储需求。同时,MySQL 的处理能力快,能够快速响应系统的查询和操作请求。架构方面采用的是B/S 架构,即浏览器 / 服务器架构。这种架构具有诸多优势,一方面,用户只需通过浏览器即可访问系统,无需安装额外的客户端软件,极大地提高了用户的使用便利性。另一方面,B/S 架构使得系统的维护和升级更加便捷,只需要在服务器端进行操作,即可实现对所有用户的更新。此外,B/S 架构还具有良好的可扩展性,能够根据业务需求的增长轻松地进行系统扩展和升级。
二、功能设计图
(1)用户用例图如下图所示:
2、管理员用例图如下图所示:
3、系统总体模块架构如下图所示:
4、登录流程如下图所示:
5、发布订单流程如下图所示:
6、个人中心流程如下图所示:
三、数据库设计
数据库的 E-R 图(实体 - 关系图)是一种强大的工具,用于直观地表示数据库中的实体及其之间的关系。在数据库设计中,E-R 图可以帮助我们清晰地理解数据的结构和流向。限于篇幅要求,仅列出关键部分实体属性图和E-R图,如下所述。
四、部分效果展示
4.1 用户登录,在登录页面输入正确的用户名和密码后,点击登录操作;如图所示。
4.2 用户在登录成功之后,可点击发布任务订单,例如让别的同学帮忙代拿快递,跑腿等等。发布任务界面如下图所示:
4.3 跑腿人员在接单之后可以跟任务发起人在消息、我得消息页面进行聊天对话。聊天列表如下图所示:
4.4 用户点击我的,在我的页面可以对个人信息,我的发布,我得订单进行详细操作,界面如下图所示:
4.5 用户可查看订单的单独详情,并且对订单进行评论。界面如下图所示:
4.6 管理员登录后可查看所有的用户,并且对用户进行封禁等操作。具体界面如下图所示:
4.7 管理员可以维护所有的任务订单,并且对违规的任务订单进行下架,删除等操作。具体界面如下图所示:
4.8 管理员可以维护所有的任务分类,具体界面如下图所示:
五、部分功能代码
/**
* 上传文件
* @param request
* @param file
* @return
*/
@Override
public Result uploadSinglePhoto(HttpServletRequest request, MultipartFile file) {
if (null == file) {
return ResultGenerator.genFailResult(ResultCode.FILE_BULL_ERROR,"文件不能为空");
}
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
// 获取文件名
String fileName = file.getOriginalFilename();
//获取上传文件输入流
InputStream inputStream = file.getInputStream();
//获取文件名称
fileName = StringUtil.getFormatterDate(new Date(), "yyyyMMdd") + "/" + System.currentTimeMillis() + fileName;
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, inputStream);
//上传
ossClient.putObject(putObjectRequest);
//把上传后把文件url返回
String url = "https://" + bucketName + "." + endpoint + "/" + fileName;
return ResultGenerator.genSuccessResult(url);
} catch (Exception e) {
e.printStackTrace();
}finally {
if (ossClient != null) {
//关闭OSSClient
ossClient.shutdown();
}
}
return ResultGenerator.genFailResult(ResultCode.FILEUPLOAD_ERROR,"文件上传失败");
}
@ApiOperation(value = "接单", notes = "接单")
@RequestMapping(value = "/add", method = {RequestMethod.POST})
public Result add(@RequestBody ReceivingOrders receivingOrders) {
receivingOrders.setCreatedAt(new Date());
receivingOrders.setIsDelete(false);
receivingOrders.setCode(RandomUtil.createRandom(true,4));
receivingOrdersService.save(receivingOrders);
Result result=ResultGenerator.genSuccessResult();
result.setData(receivingOrders);
return result;
}
六、答辩可能出现的问题
🌟问题一
答辩老师:登录是怎么实现的,可以展开说一下吗?
同学可回答:
1、前端会开发一个表单,表单中包含了用户名和密码两个输入框,用户在两个输入框输入值以后点击提交按钮,这个时候前端会做初步的校验,例如,检查用户名是否为空、密码长度是否符合规定等。
2、然后前端就会通过特定的接口请求将用户输入的登录信息发送给后端服务器。
3、后端接收到前端传来的登录请求和用户数据后,首先会对请求进行解析和验证。确保请求的合法性和数据的完整性。
4、然后,后端会根据用户提供的用户名在数据库中进行查询,以确定该用户是否存在。如果用户存在,接着会对用户输入的密码进行加密处理,并与数据库中存储的已加密密码进行比对。
5、如果密码匹配,则表示用户身份验证成功。后端会生成一个唯一的令牌(token),这个令牌可以包括了用户的身份信息等重要数据。并将这个令牌返回给前端。前端接收到后端返回的令牌后,会将其存储在sessionStorage中,以便在后续的请求中可以携带这个令牌,向服务器表明用户的身份。
6、最后,每当用户进行需要身份验证的操作时,前端会在请求头中添加这个令牌,发送给后端进行验证。通过这样的方式,实现了登录功能。
源码及文档获取
大家点赞、收藏、关注、评论啦 、需要源码及文档的可直接私信我即可。