获取源码:基于spring-boot+vue的网上订餐系统的设计与实现: 基于spring-boot+vue的网上点餐系统的设计与实现包含美食、商家、下单、美食评论、美食资讯、用户点评、店铺收藏、地址管理、个人中心、我的订单、后台管理等功能。系统分为三个角色:管理员、商家、用户采用技术:SpringBoot,shiro,Mybatis-plus,Vue,redis,mysql,ElementUi,echarts工具:idea,vscode,navicat
系统演示视频地址:SpringBoot+Vue的网上订餐系统_哔哩哔哩_bilibili
系统概述
随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于网上点餐系统当然也不能排除在外,随着网络技术的不断成熟,带动了网上点餐系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对网上点餐系统而言非常有利。本系统采用的数据库是Mysql,使用SpringBoot框架开发,运行环境使用Tomcat服务器,IDEA 是本系统的开发平台。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
系统需求分析
2.1 任务概述
通过对互联网各大在线教育平台和业务的分析,将平台分为以下几大模块:美食、商家、权限、用户、日志、资讯、热评、订单、关于。目前,主要角色包括:管理员、商家、用户。系统的功能如下图2.1所示。
2.2 功能性需求
网上订单系统主要分为两大功能模块:系统后台和用户使用端模块。
管理端模块主要负责整个系统的配置及系统安全运行保证。管理端模块包括首页、省份管理、城市管理、商圈管理、类型管理、标签管理、资讯管理、点评管理、留言管理、美食管理、订单管理、用户管理、个人中心、系统设置、系统工具
首页,包括用户数量、美食数量、商家数量、点评数量、用户性别、资讯数量、订单数量、店铺销量走势折线图分析。
省份管理模块,包括对省份的增加、删除、修改、查询功能。
城市管理模块,包括对城市的增加、删除、修改、查询功能。
商圈管理模块,包括对城市的增加、删除、修改、查询功能。
类型管理模块,包括对城市的增加、删除、修改、查询功能。
标签管理模块,包括对城市的增加、删除、修改、查询功能。
资讯管理模块,包括对城市的增加、删除、修改、查询功能。
点评管理模块,包括对城市的增加、删除、修改、查询功能。
留言管理模块,包括对留言的查询、回复、删除功能。
美食管理模块,包括对美食的查询、修改、删除功能。上传美食图片,管理美食评论、美食上下架等功能。
订单管理模块,针对用户对美食的下单生成订单,包括查询、退款、使用、送达等功能。
用户管理,对用户和商家的账号管理,可以修改账号信、重置密码和删除。
个人中心,对管理员自身信息的修改,包括密码和头像的修改。
系统设置模块,包括用户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置和日志管理。
系统工具模块,主要的功能是读取数据库表通过选项和设置生产增删改查的前后端代码。
商家模块主要包括注册、美食管理、订单管理、个人中心、首页五大模块。
学生模块主要包含了登陆注册、美食、商家、资讯、点评、留言、关于、下单等功能。
2.3 非功能性需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:
2.3.1正确性需求
管理员应能够进行有关的用户信息准确地添加到数据库中。系统用户登录后,系统应能正确地读取用户个人信息以及用户的权限信息系统的操作结果与预期的结果应该是一致。
2.3.2安全性需求
系统登录需要输入用户名、密码,并且需要防止SQL注入问题,用户登录后根据用户角色的不同可以访问的权限应该不同。
2.3.3界面需求
系统对界面的要求窗口布局清晰,颜色搭配合理,色调柔和,各窗体主题风格一致,对用户友好,界面的设计应遵循如下规则:
(1)提供信息反馈,用多种信息提示用户当前的系统运行状态。
(2)显示启动画面,画面要简洁明了,不能太过花哨。
2.3.4时间特殊性需求
当管理员向系统添加用户信息时需要在一定时间内处理用户数据并将数据录入数据库中。
2.3.5稳定性需求
系统部署后,在硬件条件和支持软件条件没有变化的情况下,能够一直保持运行状态,直到系统被升级或代替。
2.3.6故障处理能力需求
系统可能遇到的软件故障是数据库与应用程序服务器。为了满足信息处理的需求,可以采取数据恢复数据来解决。
系统总体设计
3.1 系统数据库设计
3.1.1 数据库逻辑结构设计
数据库的逻辑结构设计主要分为两步:第一步将概念设计模型得出的E-R图进行转换成关系模型,然后对转化成的关系模型进行优化。根据角色和表关系图可以确定系统设计 27 个数据表比较合适,分别是公告表(ape_account)、地址表(ape_address)、美食资讯表(ape_article)、商圈表(ape_business)、城市表(ape_city)、收藏表(ape_collection)、美食点评表(ape_comment)、部门表(ape_dept)、字典表(ape_dict_data)、代码生成表(ape_gen_table)、生成字段表(ape_gen_table_column)、美食表(ape_food)、美食评论表(ape_food_comment)、登陆日志表(ape_login_log)、菜单表(ape_menu)、留言表(ape_message)、操作日志表(ape_operate_log)、参数表(ape_param)、岗位表(ape_post)、角色表(ape_role)、角色菜单关系表(ape_role_menu)、订单表(ape_order)、省份表(ape_province)、标签表(ape_tag)、分类表(ape_type)、用户表(ape_user)、用户角色关系表(ape_user_role)。在系统的实体类图确定之后,需要将概念层进一步具体化。实体类之间的联系可以根据具体的情况确定。一个城市有多名商家,一名上商家可以发布多个美食。
具体的数据库ER图如下图所示:
系统主要功能设计及实现
4.1用户功能
用户在登录页面通过输入用户名和密码后点击登录按钮进行登录,用户的登录功能设计如下图所示:
用户在注册页面通过输入用户名、用户账号、密码和确认密码后点击注册按钮进行注册,用户的注册功能设计如下图所示:
用户在登陆成功后会进入到系统首页,系统首页展示了美食资讯、美食列表、平台统计数据、商家列表和热评列表,用户的首页功能设计如下图所示:
点击导航栏的美食进入美食列表,可以根据美食分类、美食标签、排序方式搜索美食,用户的美食列表功能设计如下图所示:
进入美食列表之后,点击想要下单的美食,进入到美食详情页,美食详情页包含了美食名称、美食简介、商家其他美食列表、下单、价格、评论功能,美食详情功能设计如下图所示
点击下单购买,如下图所示:
选择美食之后点击评论,进入美食评论详情页面,可以查看对美食的评论,美食评论功能设计如下图所示:
点击导航栏的商家进入到商家列表,可以根据商圈进行筛选,商家列表功能设计如下图所示:
点击商家之后进入商家详情页面,展示商家名称、简介、照片和美食列表,点击美食之后可以跳转到相应的美食详情页,商家详情功能设计如下图所示:
点击导航栏的资讯进入到资讯列表,资讯列表功能设计如下图所示:
点击相应资讯进入到资讯详情页,查看资讯的内容,资讯详情功能设计如下图所示:
点击导航栏的点评进入点评列表,可以名称筛选,点评列表功能设计如下图所示:
点击对应点评进入点评详情页,展示点评的内容,点评详情功能设计如下图所示:
点击导航栏的留言进入到留言列表,留言列表功能设计如下图所示:
点击导航栏关于进入关于页面,展示了系统的信息和作者信息,关于页面功能如下图所示:
点击导航栏头像出现下拉框,点击个人中心进入页面,可以修改个人信息、修改密码和头像,个人中心功能设计如下图所示:
点击导航栏头像出现下拉框,点击外送地址进入页面,展示我已经保存的地址列表,外送地址功能设计如下图所示:
点击导航栏头像出现下拉框,点击我的订单进入页面,可以查看已经购买过的美食订单,我的订单功能设计如下图所示:
点击导航栏头像出现下拉框,点击我的收藏进入页面,可以查看已经收藏的商家,我的收藏功能设计如下图所示:
点击导航栏头像出现下拉框,点击写点评进入页面,可以添加点评,写点评功能设计如下图所示:
点击导航栏头像出现下拉框,点击我的点评进入页面,可以查看用户写的点评,我的点评功能设计如下图所示:
4.2商家功能
商家输入信息入驻系统。管理员通过后即可使用,商家入驻功能如下图所示:
商家输入用户名和密码进入商家后台首页,商家首页功能如下图所示:
点击商家美食管理,可以对该商家的美食进行增加、删除、修改、查询,点击评论可以查看美食的评论,商家美食管理功能设计如下图所示:
点击订单管理,可以对商家的美食的订单进行删除、修改、查询,可以处理订单的使用状态和退款。商家订单管理功能设计如下图所示:
点击个人中心,可以修改商家信息,修改密码和头像,个人中心功能设计如下图所示:
4.3管理员功能
管理员登陆之后进入管理员首页,首页功能设计如下图所示:
点击省份管理,可以对省份进行增加、删除、修改、查询,省份管理功能设计如下图所示:
点击城市管理,可以对专业进行增加、删除、修改、查询,城市管理功能设计如下图所示:
点击商圈管理,可以对商圈进行删除、增加、修改、查询,商圈管理功能设计如下图所示:
点击类型管理,可以对类型分类进行增加、删除、修改、查询,分类功能如下图所示:
点击标签管理,可以对标签进行增加、删除、修改、查询,标签管理功能如下图所示:
点击资讯管理,可以对资讯进行增加、删除、修改、查询,资讯管理功能如下图所示:
点击点评管理,可以对点评进行增加、删除、修改、查询,点评管理功能如下图所示:
点击留言管理,可以对留言进行删除、回复,留言管理功能如下图所示:
之后美食管理、订单管理等功能同教师功能相同,区别点在于商家是只能操作自己的内容,管理员可以操作所有人的内容,管理员的这些功能就不在此展示了。
之后点击用户管理,用户管理和商家管理,都可以对用户或商家进行增加、删除、修改、查询,用户管理和商家管理功能设计如下图所示:
点击系统设置,用户管理,可以对管理员增加、删除、修改、查询,用户管理功能设计如下图所示:
点击系统管理,角色管理可以对角色进行增加、删除、修改、查询,角色管理功能设计如下图所示:
点击系统管理,菜单管理可以对菜单进行增加、删除、修改、查询,菜单管理功能设计如下图所示:
第五章 系统测试
5.1 系统测试的目的
系统测试是将已经继承好的软件系统,作为计算机系统的一个元素,与计算机硬件、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的集成测试和确认测试。
系统测试的目标是:通过与系统的需求规格说明进行比较,检查软件是否存在与系统规格说明不符合或与之矛盾的地方,从而验证软件系统的功能和性能等满足规格说明所制定的要求。
5.2 系统测试分析
用户层:围绕用户界面的规范性、友好性、可操作性、系统对用户的支持,以及数据的安全性等方面展开。另外,用户层的测试通常还应注意可维护性测试和安全性测试。
应用层:主要是针对产品工程应用或行业应用的测试。从应用软件系统的角度出发,模拟实际应用环境,对系统的兼容性、可靠性等进行测试。针对整个系统的应用层测试,包含并发性能测试、负载测试、压力测试、强度测试、破坏性测试。
功能层:检测系统是否已经实现需求规格说明中定义的功能,以及系统功能之间是否存在类似共享资源访问冲突的情况。
子系统层:针对产品内部结构性能的测试。
协议/指标层:针对系统所支持的协议,进行协议一致性测试和协议互通测试。
5.3 系统测试的方法
功能测试:功能测试属于黑盒测试,是系统测试中最基本的测试。功能测试主要根据产品的需求规格说明和测试需求列表,验证产品是否符合需求规格说明。
在线学习系统
协议一致性测试:主要用于分布式系统。在分布式系统中,很多功能的实现是通过多台计算机相互协作来完成的,这要求计算机之间能相互交换信息,所以需要制定一些规则(协议)。对协议进行测试,通常包括:协议一致性测试、协议性能测试、协议互操作性测试、协议健壮性测试。
性能测试:主要用于实时系统和嵌入式系统,性能测试是指测试软件在集成系统中的运行性能,目标是量度系统的性能和预先定义的目标有多大差距。一种典型的性能测试是压力测试,当系统同时接收极大数量的用户和用户请求时,需要测量系统的应对能力。性能测试要有工具的支持,在某种情况下,测试人员必须自己开发专门的接口工具。
压力测试:又称强度测试,是在各种超负荷的情况下观察系统的运行情况的测试。
容量测试:在系统正常运行的范围内测试并确定系统能够处理的数据容量。容量测试是面向数据的,主要目的就是检测系统可以处理目标内确定的数据容量。
安全性测试:安全性测试就是要验证系统的保护机制是否抵御入侵者的攻击。保护测试是安全性测试中一种常见的测试,主要用于测试系统的信息保护机制。评价安全机制的性能与安全功能本身一样重要,其中安全性的性能主要包括:有效性、生存性、精确性、反应时间、吞吐量。
失效恢复测试:验证系统从软件或者硬件失效中恢复的能力。失效恢复测试采用各种人为干预方式使软件出错,造成人为的系统失效,进而检测系统的恢复能力。如果恢复需要人为干预,则应考虑平均修复时间是否在限定的范围内。
备份测试:备份测试是失效恢复测试的补充,目的是验证系统在软件或者硬件失效的实践中备份其数据的能力。
GUI 测试:GUI 测试与用户友好性测试和可操作性测试有重复,但 GUI 测试更关注对图形界面的测试。GUI 测试分为两个部分,一方面是界面实现与界面设计的情况要符合;另一方面是要确认界面能够正确处理事件。GUI 测试设计测试用例一般要从以下 4 方面考虑:(1)划分界面元素,并根据界面的复杂性进行分层。通常把界面划分为三个层次,第一层是界面原子层;第二层是界面组合元素层;第三层是一个完整的窗口。(2)在不同的界面层次确定不同的测试策略。(3)进行测试数据分析,提取测试用例。(4)使用自动化测试工具进行脚本化工作。
健壮性测试:又称容错测试,用于测试系统在出故障时,是否能够自动恢复或者忽略故障继续运行。健壮性测试的一般方法是软件故障插入测试,在软件故障插入测试中,需要关注三个方面:目标系统、故障类型和插入故障的方法。
兼容性测试:检验被测的应用系统对其他系统的兼容性。
易用性测试:与可操作性类似。检测用户在理解和使用系统方面是否方便。易用性测试是面向用户的系统测试,包括对被测系统的系统功能、系统发布、帮助文本和过程等的测试。
总结
随着知识经济的到来,我们的点餐模式受到了前所未有的冲击,各种新的点餐模式如潮水般涌现,在所有点餐模式中,最具有冲击力的便是随着网络技术发展而出现的网络化点餐,又称在线点餐,它是通过在网上建立平台,用户应用网络进行在线点餐的一种全新方式。相对于其他的模式来说,它具有无可比拟的优势。
同时,本系统还存在一些不完善的地方,业务逻辑方面编写效率不够高,界面设计色彩相对比较单调,用了一个静态模板,页面的布局与设计水平有待提高,界面过于简单不符合审美,逻辑可能有疏忽的地方这些都是后期需要改进的。我们会不断的学习新的知识去完善我们的系统。
本系统服务器端使用SpringBoot框架,该框架大大简化了整个项目的开发,减少了繁杂冗余的配置文件,改用统一的yml文件,文件格式要求严格,但是内容一目了然,同时改该框架可以很方便的对一些增删改查请求做出响应。经历了前期需求分析,概要设计,详细设计等一系列步骤,本系统逐步走向完善,最终得以完成本设计,前端使用Vue和ElementUI框架实现前端的设计,简化代码的开发,便于功能的实现。