基于nodejs+vue移动端的点餐系统python-flask-django-php

 
本系统的开发和运行将会给人们的用餐带来巨大的便捷,使得用餐摆脱了时间和空间的限制。本系统内部后台采用nodejs开发,系统的总体划分为前端和后端。前端模块主要是用来展示现相关的订餐页面和餐点的数据渲染;后端则主要体用一些业务和逻辑上的处理服务。课题将运用电子商务系统规划设计与分析理论,项目管理理论等。对中国点餐系统的运营模式发展的基础上,设计一套切实可行的点餐系统。
前端技术:nodejs+vue+elementui,
Express 框架于Node运行环境的Web框架,
语言 node.js
框架:Express
前端:Vue.js
数据库:mysql
数据库工具:Navicat
开发软件:VScode
视图层其实质就是vue页面,通过编写vue页面从而展示在浏览器中,编写完成的vue页面要能够和控制器类进行交互,从而使得用户在点击网页进行操作时能够正常。

代码结构讲解
 1、 node_modules文件夹(有npn install产生)
    这文件夹就是在创建完项目后,cd到项目目录执行npm install后生成的文件夹,下载了项目需要的依赖项。
2、package.json文件
     此文件是项目的配置文件(可定义应用程序名,版本,依赖项等等)。node_modules文件夹下的依赖项是从哪里知道的呢?原因就是项目根目录下的这个package.json文件,执行npm install时会去找此文件中的dependencies,并安装指定的依赖项。
3、public文件夹(包含images、javascripts、stylesheets)
      这个文件夹做过Web开发的应该一看就知道,为了存放图片、脚本、样式等文件的。
4、routes文件夹
      用于存放路由文件。
5、views文件夹
      存放视图。  
现如今,人们的生活节奏加快于是就对用餐的时间有了一定的要求。随着计算机网络技术的发展,结构目前手机的普及。在线订餐系统也就运营而出了,不仅可以解决用户的用餐问题同时还解决了餐厅的销量。通过对点餐系统的设计,改变了传统了点餐方式通过电子信息和信息化技术来实现不接触点餐,避免了人手不足造成的点餐取餐时间过长的问题。随着互联网技术的发展,点餐系统的开发技术逐渐成熟,开发成本也快速的下降。目 录
第1章 引言 1
1.1 研究背景 1
1.2 选题意义 1
1.3 研究现状 1
1.4 研究内容 3
1.5 论文结构 3
第2章 相关理论概述 4
2.4 MySQL数据库 4
第3章 点餐平台系统分析 6
3.1 需求概述 6
3.2 功能需求分析 6
3.3 非功能需求分析 8
3.4 可行性分析 8
第4章 系统的详细设计 10
4.1 系统架构 10
4.2 系统主要模块功能设计 11
4.3 数据库设计 12
第5章 点餐平台的实现 16
5.1 点餐平台前台实现 16
5.2 点餐平台后台实现 23
第6章 点餐平台测试 27
6.1 系统测试目标 27
6.2 测试方法 27
6.3 测试用例 27
6.4 测试结果 29
第7章 总结 30
参考文献 31
致 谢 31

第1章引言
1.1研究背景
随着计算机科技的不断发展,人们的生活已经和网络科技息息相关了。计算机科学技术的应用已经接触到了我们生活的边边角角。在进行信息的处理交流当中也同时创造了大量的财富。为了使得餐饮的服务行业更得上时代发展的步伐,各种订餐系统也再开始如火如荼的研发当中。餐饮行业在电商的范围之内还处于一种萌芽之势,相比传统的线下售卖,网络的宣传和普及反倒是更加的方便和便捷。通过电子商务的平台结合餐饮行业的特征,最终可以形成类似于一种“互联网+”模式的订餐方式。慢慢的随着时代的发展,人们也广泛的接受了订餐这种模式,迅速订餐也成为了广大消费者最喜欢的供餐方式了。互联网的应用和发展,已经为广大人民提供了良好的基础条件。同时,在线订餐服务也拥有更加直观和高效的处理方式和服务。通过利用电子信息化的技术,存储和处理数据,使得数据可以高效的进行处理分配[1]。
1.2选题意义
本次选题计划完成基于移动端的点餐系统的实现,通过本次课题的设计不仅可以巩固大学所学习到的旧知识同时也可以在开发的过程中学习到课题设计所需要的知识。除能够实现对专业知识的综合运用,实现理论应用于实践之外,还能促进我的动手能力和软件设计能力[2]。随着课题的完成使得我熟悉软件开发的基本步骤、数据库的逻辑设计、物理设计等,了解了基本的HTTP协议的基本状态码和服务器的各种异常的排查,为就业打下良好的代码基础[3]。
同时随着本次本科课题的完成,可以针对解决在线送餐的问题是实现线上和线下送餐的结合,提高餐饮业的订餐量和用户使用的便捷性[4]。订餐系统的实际需求就是通过送菜来完成系统内部的订单,在这个业务的处理过程中,商家和消费者都可以通过互联网来实时的跟踪订单的情况。随着订餐系统的不断细分加上市场差异化竞争将在未来的竞争中占主导地位选题意义[5]。
1.3研究现状
1.3.1国外研究现状
大中小城市中餐饮行业的发展可谓是蒸蒸日上,传统的手工作业方式已经不能满足餐饮经营者的需求了。顾客对食物的要求也越来越高了。所有商品信息,账目变得十分庞大,核算起来非常费时费力,当然也容易出错。同过计算机对这些信息的管理操作,可以解决以上问题,不仅能节约时间,节省人力,还能提高工作的效率,为广大餐饮行业的经营者带来了更多地利益,同时也让更多顾客对食品更加了解。对于餐饮这一行业,发达国家发展的速度比发展中国家的要求要高很多[6]。因为发达国家时间观念强,对服务的要求也高,这也促使着餐饮不断发展,更重要的是其餐饮业能充份利用计算机,利用计算机去管理,能更加好的提供各种服务。
CBEST(2022)在研究中指出[7],随着网络不断的发展,订餐系统也会越来越具有一定的开发意义,信息化的系统具有良好的操作性和可核对性等特点,受到了大量的餐饮店的关注和青睐,由于信息化的系统的可扩充性因此在系统功能开发之上可以进行二次的系统开发,有助于系统功能的不断完善。目前国内外的参订大多数都是手写点餐的方式,这样容易出现记错等问题。不方便结算和对账。
在国外,校园订餐系统已经得到广泛应用。美国加州理工学院、哈佛大学、剑桥大学等高校都建立了自己的校园订餐系统,为学生提供更加便捷的餐饮服务。在加州理工学院,学生可以通过手机App预订餐点,同时也可以在手机上查看餐厅的菜单、营业时间和排队情况等信息。该系统还可以提供根据学生饮食偏好进行推荐的功能,以及根据学生用餐记录和营养需求进行个性化营养规划的功能。在哈佛大学,校园订餐系统可以接受在线订餐、支付以及配送等服务。该系统还提供了餐厅的菜单、营业时间等信息,并可以根据学生的历史订单和评价为学生推荐菜品。在剑桥大学,校园订餐系统使用了智能手机应用程序和在线服务,提供预订、支付、排队和食品提取等功能。此外,该系统还可以定制营养计划、限制食品消耗和提高餐厅生产效率等。预订都是免费、即时的[3]。国外的校园订餐系统在服务范围、功能丰富程度、用户体验等方面都已经比较成熟,可以为国内的校园订餐系统的设计和优化提供借鉴和参考。
1.3.2国内研究现状
目前我国的订餐行业已经发展到了一个成熟节点,例如国内的美团、饿了么等公司已经在该行业内部做到了标新立异,将该行业做到了国内的顶尖。此外国内的一些小型餐馆有一些是没有连接互联网,使得这些店家的生意有所下滑。
百度外卖发展相对较晚,在2014年4月才正式上线,2015年7月正式开始独立运营。百度外卖不同于其他网上订餐平台,它拥有自己的配送团队,而其他订餐平台大多是由餐厅自己配送。由于自己的配送团队更易管理,百度外卖在服务态度上,送餐速度上都有相对比较大的优势,因此百度外卖在市场份额上也成功地后来居上。在2016年元旦,百度外卖推出查询订单位置功能,这也是国内同行业第一个支持此功能的订餐平台。
赵敬宇(2022)在研究中指出[8],点餐程序可以满足用户的基本订单的用户需求,服务于大众餐厅。为消费者和商家通过了一个交流和订餐的平台,节约了商家的宣传和广告成本,也增加了餐厅的曝光度。同时用户也可以通过大众点评来查看商家的评价信息,满足用户的评分需求。
1.4研究内容
本文主要进行了研究基于移动端的订餐系统的设计与实现,通过分析了目前的订餐系统的现状和发展趋势,选定了技术开发手段和平台。研究了系统开发技术的相关理论基础和技术特性,采用软件开发工程化的指导思想来分析系统内部的性能、功能等需求。同时分析在线订餐系统的优劣。在线订餐相比传统的线下就餐,更加多了几分色彩。在线订餐可通过各种图片样式,在对产品进行展示,以加强产品的宣传[9]。同时因为电子系统的存在也可以十分方便的对。商品信息进行管理和维护,并且只要在后台动动鼠标就可以完成。此外,本次系统的设计是采用B/S的架构模式,用户端无需安装其他第三方的软件,就可以进行网上订餐。同样在高峰期,用户也只需要进行提前预约即可完成订餐服务。此外,在线订餐也解决了,高峰期用餐的拥挤问题,可以为市场竞争更加轻松的环境。有利于执行错峰用餐的安排。对于商家,也同时有利于扩大整个市场占比份额。
论文结构
论文共分7章。
第1章简述了系统研究背景、研究意义、以及与课题相关的国内外现状信息和研究内容。
第2章简述了系统开发所采用的核心开发技术、软件环境和架构等。
第3章进行了同需求分析。主要从功能需求和非功能需求分析进行分析,此外对系统也进行了可行性分析。
第4章进行了系统总体结构的设计主要包含了系统架构设计、功能模块设计和数据库设计。
第5章是对系统实现效果的介绍和展示。
第6章是对系统进行软件测试,主要采用了黑盒测试。
第7章是总结。
.1需求概述
随着社会的进步发展,传统餐饮行业也收到了互联网技术的冲击。传统线下都是开门待客或者是电话预约,每当在中午、下午等饭点时间就出现餐厅无法应付的场面,为了最大努力的满足用户的吃饭需求和餐厅老板的营业需求,特此设计一款在线订餐系统帮助用户实现远程点餐,同时为用户和餐厅都节省了时间成本。
3.2功能需求分析
针对不同用户需求,本系统主要划分了两类用户用例,主要有用户和管理员组成,每一组不同的用例都包含了不同的系统模块和使用权限。
3.2.1用户用例需求分析
(1)系统遵循开放模式,注册用户可以按照自己的需要查看配件和账单结算;未注册用户也可以任意查看,但在生成订单时要求正式登陆系统。
(2)菜品信息主要包括编码、名称、类型、活动、描述和图片等。
(3)提供查询功能,可实现关键字模糊查询,按照类别和活动查询。
(4)购物车中要清楚显示编码、名称、价格和数量,并显示总价格。
(5)为了方便用户的操作,可以直接在购物车中删除配件,如果用户想继续购买,通过点击该连接可再次购买,更新数量。
(6)用户在关闭浏览器之前,可随时查看自己的购物车,并可随时下订单。
(7)用户可以查看自己的订单,并且可以更改订单状态。
 系统用户的功能用例分析下表3-1所示:
表3-1 用户信息表
项目 内容
用例名称 用户功能用例
用例描述 用户可以实现对系统内部登录、注册、个人信息、在线订餐等功能
参与者 用户
状态 使用系统内部的功能模块
前置条件 成功登录系统
后置条件 退出系统
基本操作流程 用户登录之后进入系统,然后就可以在系统内部进行商品浏览,然后可以选择商品进行在线订餐
可选操作流程 退出系统结束本次流程
假设 用户完成了系统内部的功能流程
3.2.2管理员用例需求分析
(1)管理员拥有最大权限,可以进入管理页面并配置系统信息。
(2)管理员可以管理会员,对用户信息进行删除。
(3)管理员可以随时更新菜品信息,上传新菜品,以及删除菜品。
(4)管理员查看订单,并更新订单状态。
 系统管理员的功能用例分析下表3-2所示:
表3-2 用户信息表
项目 内容
用例名称 管理员功能用例
用例描述 管理员可以实现对系统内部登录之后就可以对系统内部的数据和业务信息进行管理
参与者 管理员
状态 使用系统内部的功能模块
前置条件 成功登录系统
后置条件 退出系统
基本操作流程 管理员登录之后进入系统,就可以在系统后台的商品管理模块、订单管理模块、资讯管理管理进行
可选操作流程 退出系统结束本次流程
假设 管理员完成了系统内部的功能流程
3.3非功能需求分析
可以分为以下几种。
3.3.1系统的健壮性
系统的运行需要保证良好的可用性,需要针对系统内部的异常中断等操作进行及时的处理和分析。遇到特殊情况需要代码内部有一定的适应性,即代码拥有一定的自我诊断或者故障处理的能力。
3.3.2系统的可维护性
系统的扩展性和拓展性主要表现在系统在运行过程当中可以进行可以实现额外功能的添加,在开发中应该遵守一定的开发规则,避免出现,代码思路不清晰导致的隐患。同时当心从内部出现中断异常的时候,需要,管理者的介入并及时的恢复系统的正常运行[13]。
3.3.3系统的响应速度
系统的响应服务应该满足用户基本的等待相应请求时间,一般来说,整体的系统响应时间应尽可能的小,最好保持在毫秒级以内,否则就会给用户带来一些不好的使用体验,从而造成用户的流失[14]。
3.4可行性分析
3.4.1技术可行性分析
本次系统设计采用HTML、nodejs等技术来实现整体系统的开发,根据nodejs语言的特性可以很容易的对Web进行开发和编辑,MySQL也具有一定的可用性,可以很快的上手。经过了系统需求分析之后,对比实际的应用需求结合技术的使用特性和应用场景,发现本系统具有技术方面的可行性[15]。
3.4.2经济可行性分析
本次开发的系统的模块功能对服务器的硬件质量和设备要求都不是很高,开发技术的选择都是基于免费的开源社区版本,省去了一部分的开发经济费用,同时本系统在后期的运行过程中也是具有很好的可移植性和维护性的,总体来说本次系统开发在经济方面是具有一定的可行性的。
3.4.3法律可行性分析
本系统在开发过程中对用户的基本个人信息等信息进行保护,不会将用户的个人信息进行泄露或者用于其他的商业活动,因此在系统的运行和使用过程当中不会出现违法的情况
4.1系统架构
系统功能模块结构图反映了在线订餐系统的系统功能模块的划分,本系统的主要是实现了两个用例模块一个是用户端另一个是管理员端。
(1)管理员端:
用户信息管理:实现了对系统内部用户信息的管理。
商品管理:实现了对系统内部商品信息的管理。
订单管理:实现了对系统内部用户的订单信息的管理。
登录功能:实现了管理员账号和密码的验证。
分类管理:实现了对系统内部商品菜品信息的分类管理。
(2)用户端:
用户登录:验证了用户的账号和密码的匹配性并对用户进行分流。
用户注册:实现了游客用户的账号注册。
商品浏览:实现了对商品信息的浏览和查看。
购物车:实现了对商品信息的结算操作,添加至购物车等功能。
商品购买:实现了对商品信息的下单购买操作。
个人信息管理:实现了对个人信息的管理。
 4.3.2物理设计
物理设计是确定数据库内部表格结构的大小,变量类型的以及存储的数据引擎。系统内部的数据信息表字段都是具有一定的现实意义,都代表这不同的数据含义,具体的数据表表格字段的设计如下所示。
用户信息表如表4-1所示。
表4-1 用户信息表
字段名 说 明 类 型 长 度 可否为空 主键
Id 用户编号 varchar2 20 否 是
Name 账号 varchar2 20 否 否
Password 用户密码 varchar2 20 是 否
Status 状态 varchar2 20 是 否
Address 地址 varchar2 20 是 否
Phone 手机 varchar2 11 否 否

权限信息表如表4-2所示。
表4-2 权限信息表
字段名 说 明 类 型 长 度 可否为空 主键
Id I varchar2 50 否 是
Name 权限名 varchar2 20 否 否
Description 描述 varchar2 50 否 否
产品信息表如表4-3所示。
表4-3 产品信息表
字段名 说 明 类 型 长 度 可否为空 主键
Id id varchar2 100 否 是
name 名称 varchar2 99 否 否
Price 价格 Double 4000 否 否
Zan 点赞数 Int 100 否 否
Number 库存 Int 20 否 否
Image_url 封面 varchar2 30 否 否
Description 描述 Varchar2 100 否 否
管理员信息表如表4-4所示。
表4-4 管理员信息表
字段名 说 明 类 型 长 度 可否为空 主键
Id ID varchar2 20 否 是
Password 管理员密码 varchar2 20 否 否
Name 账号 Varchar2 20 否 否
评论信息表如表4-5所示。
表4-5评论信息表
字段名 说 明 类 型 长 度 可否为空 主键
Id 评论id Varchar2 100 否 是
Content 内容 Varchar2 1000 否 否
create_time 发表时间 Datetime 100 否 否
PubilishId 发表人id Varchar2 99 否 否

第5章 点餐平台的实现
5.1点餐平台前台实现
5.1.1点餐平台登录界面
登录界面实现了用户的验证,在该模块要对所有的访问者进行身份验证,通过了验证才可以进入系统。
 第6章点餐平台测试
6.1系统测试目标
系统测试作为软件开发完毕的最后一个环节,也是检测本次软件开发质量的一个过程。功能模块的开发结束并不代表着软件开发的结束。在整个系统的功能模块开发当中,需要通过软件测试来实现,确保系统中功能的正确性。一个优秀的测试用例可以发现整体系统框架中最为致命的软件缺陷,在整体的软件开发的初始阶段中,我们就需要进行良好的前期分析和需求分析,这有助于减少后期软件测试维护的工作量。在软件开发的过程当中一定是会遇到一些大大小小的系统异常等问题出现。而软件开发测试的目的就是为了在早期阶段就发现这些细小问题并将他们加以解决,及时纠正系统内部出现的错误从而保证系统后续的运行稳定性和用户的使用体验感。在软件开发结束后进行编码测试是一项非常重要的工作,对于测试的结果中的漏洞进行改正可以有效提高系统运行的稳定性[16]。
6.2测试方法
系统测试的方法有黑盒测试和白盒测试两种,黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,针对“软件界面”和”软件功能“进行测试,只检查功能是否符合需求规格说明书能正常使用。因此黑盒测试又叫功能测试或数据驱动测试。白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看作一个打开的盒子,他允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致[17]。
6.3测试用例
6.3.1登录功能测试
检测1:用户登录模块测试
目的:测试用户在登录的过程中可能发生的意外情况。
内容:验证用户名密码的合法性。
具体的测试用例如表6-1所示
表6-1 登录功能测试用例表
输入 输出 结论
账号 密码
Admin Admin 密码正确 进入系统,跳转至主页
Admin Mima 密码错误 提示密码错误
Qwer Admin 账号不存在 提示账号不存在
空 Admin 账号名不为空 提示账号名不为空
Admin 空 密码不为空 提示密码不为空

6.3.2购物车测试
检测2:购物车模块测试。
目的:测试用户在订餐的过程中可能发生的意外情况。
内容:测试用户在下订单时,能否向购物车内正常的添加菜品;是否可以从购物车内删除或清空购物车;购物车内商品价格计算是否正常;如表6-2所示。
表6-2 购物车测试用例表
操作 页面显示
添加菜品到购物车 提示添加成功
删除购物车中的菜品 提示删除成功
调整购物车中的菜品数量 系统自动计算修改后的总价格
再次添加菜品 购物车中菜品和价格信息更新
6.3.3商品上传测试
检测3:商品图片上传功能测试。
目的:测试管理员在对商品图片上传的过程中可能发生的意外情况。
内容:测试管理员上传商品图片时,能否正常在系统中添加商品的信息和图片。测试用例如表6-3所示。
表6-3 商品上传测试用例表
操作 页面显示
管理员进入到商品管理模块点击添加按钮 系统弹出商品管理模块的界面
填好商品信息并选好商品图片进行上传 提示上传成功
查看商品信息并对商品进行修改 提示修改成功
查看商品信息 可以正常的浏览
测试结果如图6-1,6-2所示。


图6-1 商品图片上传成功


图6-2 商品图片修改成功
6.3.4订单生成测试
具体的测试用例如表6-4所示。
表6-4 订单生成测试用例表
操作 页面显示
用户在前台进行下单 下单成功,存入数据库
管理员在后台查看用户的下单信息 显示用户的订单信息
查看订单信息并对订单进行修改 可以正常查看订单信息
订单结束之后,用户可以对订单信息进行评价操作 显示评价信息
6.4测试结果
通过利用黑盒测试的方法对本系统功能模块和性能进行了测试,发现了整个系统中存在的一些很细小不容易发现的缺陷和漏洞并对其进行了改正。修改之后的系统在性能和功能方面都有了一个很大的提升,系统的安全性、可靠性、健壮性、可移植性等达到了极致。

第7章总结
在设计本系统功能模块之初,一直在思考如何对功能模块进行设计才能够符合消费者的日常操作习惯,同时数据又能够安全无误地存储到数据库。通过自身不断地学习和实践,不仅捋顺了本系统的设计的思路,而且将开发模式进行了系统的分析,最终将本系统成功的开发了出来。
本文实现的系统虽然功能较为丰富,致力于满足更多学生的系统需求。但是在实现和实际使用的过程中仍有很多需要增加和改进的地方。如可以对日常数据进行数据挖掘使得系统更智能化;可以加入定位技术使用户可以自动识别自己的地址;还可以加入订单轨迹定位功能,使得用户可以时刻掌握自己的订单进行状态。这些工作都会在以后的研究中进一步实现和完善。

致 谢
时光匆匆,四年的大学时光擦肩而过。在大学学习期间遇到了很多老师和同学帮助和关怀。在论文即将完成之际,我想向所有在曾经帮助过我的人表示最真诚的致谢。
首先,我要对我的指导老师金志雄老师表示最真诚的感谢。从论文的选题、开题报告以及后来的论文修改指导,金老师都是耐心的帮我梳理论文内容结构。金老师严肃的治学态度和敬业精神在深深的影响着我。在金老师的帮助之下是我顺利完成了论文的修改,在此感谢金老师的关心和学业指导。
最后感谢母校的包容,给我们通了一个良好的学习环境和美丽的校园。在这里也是我结识了一群志同道合的朋友,我们一起学习一起共同奔赴未来。在论文和系统设计道中也多亏了他们的帮助使我走出困境、克服困难。感谢相遇。
希望母校越来越好,祝愿大家都能有一个美好且明媚的未来。

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值