随着移动互联网技术的迅猛发展,微信小程序因其便捷性和即用即走的特性,成为了连接用户与服务的新桥梁。Node.js作为一种高效、轻量级的后端技术,为开发者提供了快速构建服务器端应用的能力。本文介绍了一个基于微信小程序和Node.js的餐厅点餐系统的设计与实现。
该系统旨在为餐厅顾客提供便捷的点餐体验,同时为餐厅管理员提供高效的管理工具。顾客通过微信小程序可以浏览餐厅菜单、选择菜品、下单支付,并随时查看订单状态和进行评价。管理员则通过Node.js后端管理系统,对菜品、订单、用户等数据进行全面管理,确保餐厅运营的有序进行。
在系统设计上,我们采用了前后端分离的开发模式,前端使用微信小程序框架进行界面开发,后端采用Node.js搭建RESTful API接口,实现了前后端的解耦和高效通信。同时,我们采用了MySQL数据库进行数据存储,确保了数据的稳定性和可扩展性。
在实现过程中,我们充分利用了微信小程序的原生功能和Node.js的异步处理能力,为用户提供了流畅的点餐体验。同时,我们也注重系统的安全性和稳定性,采用了多种技术手段保障用户数据的安全和隐私。
通过实践验证,该系统已经成功应用于多家餐厅,得到了广大用户和餐厅管理员的认可。该系统的设计与实现不仅提升了餐厅的服务效率,也为餐饮行业的数字化转型提供了有力的技术支持。未来,我们将继续优化系统功能,提升用户体验,并探索更多技术创新和应用场景。
关键词: 微信小程序;Node.js;MySQL数据库;餐厅点餐系统;前后端分离;系统设计与实现
With the rapid development of mobile Internet technology, WeChat applet has become a new bridge to connect users and services because of its convenience and the characteristics of "use and go". Node.js, as an efficient and lightweight backend technology, provides developers with the ability to quickly build server-side applications. This article introduces the design and implementation of a restaurant ordering system based on WeChat mini program and Node.js.
The system aims to provide a convenient ordering experience for restaurant customers and efficient management tools for restaurant administrators. Customers can browse restaurant menus, select dishes, place orders and make payments through the WeChat mini program, and view order status and give feedback at any time. Administrators use the Node.js backend management system to comprehensively manage data such as dishes, orders, and users, ensuring the orderly operation of the restaurant.
In terms of system design, we adopted a development model of front-end and back-end separation. The front-end used the WeChat mini program framework for interface development, and the back-end used Node.js to build a RESTful API interface, achieving decoupling and efficient communication between the front-end and back-end. At the same time, we used MySQL database for data storage, ensuring the stability and scalability of the data.
During the implementation process, we fully utilized the native functionality of WeChat mini programs and the asynchronous processing capabilities of Node.js, providing users with a smooth ordering experience. At the same time, we also pay attention to the security and stability of the system, and adopt various technical means to ensure the security and privacy of user data.
Through practical verification, the system has been successfully applied to multiple restaurants and has been recognized by a large number of users and restaurant administrators. The design and implementation of this system not only improves the service efficiency of restaurants, but also provides strong technical support for the digital transformation of the catering industry. In the future, we will continue to optimize system functions, enhance user experience, and explore more technological innovations and application scenarios.
Keywords: WeChat mini program; Node.js; MySQL database; Restaurant ordering system; Front and rear separation; System Design and Implementation
目录
随着移动互联网的普及和消费者对便捷性需求的增加,传统的餐厅点餐方式已经逐渐不能满足现代社会的需求。传统的点餐方式往往需要顾客亲自前往餐厅,翻阅纸质菜单进行点餐,这不仅浪费了顾客的时间,也增加了餐厅的运营成本。因此,开发一种基于移动互联网的点餐系统成为了餐饮行业数字化转型的必然趋势。
微信小程序作为一种轻量级的应用程序,具有即用即走、无需下载安装等特点,成为了连接用户与服务的新桥梁。而Node.js作为一种高效、轻量级的后端技术,为开发者提供了快速构建服务器端应用的能力。结合微信小程序和Node.js的技术优势,开发一种基于微信小程序的餐厅点餐系统,可以大大提高点餐的便捷性,降低餐厅的运营成本,提升顾客体验。
此外,随着餐饮行业的竞争日益激烈,餐厅需要不断提升服务质量,以满足消费者的需求。基于微信小程序的点餐系统不仅提供了便捷的点餐功能,还可以通过数据分析等技术手段,帮助餐厅更好地了解消费者的需求,优化菜品结构,提升服务质量。
因此,本研究旨在设计并实现一个基于微信小程序的餐厅点餐系统,以提升餐饮行业的服务效率和顾客体验,为餐饮行业的数字化转型提供有力的技术支持。
1.2 国内外研究现状
在国内,随着移动互联网的快速发展和智能手机的普及,基于微信小程序的餐厅点餐系统已经得到了广泛的应用。许多餐厅开始尝试将传统的点餐方式转型为线上点餐,以提高服务效率和顾客体验。同时,随着Node.js技术的不断成熟和普及,越来越多的开发者选择使用Node.js作为后端技术来构建餐厅点餐系统。这些系统通常具备菜品展示、在线支付、订单管理等功能,大大提高了点餐的便捷性。此外,一些系统还融入了人工智能和大数据技术,对顾客的消费习惯进行分析和预测,为顾客提供更为个性化的推荐服务。
在国外,类似的基于移动应用的点餐系统也受到了广泛的关注和应用。由于西方国家信息技术起步较早,各个行业的信息化变革出现较早,因此在餐饮行业数字化转型方面,西方国家具有一定的领先优势。一些国外的研究团队和企业已经开发出了一系列成熟的餐厅点餐系统,这些系统不仅具备基本的点餐功能,还融入了多种智能化技术,如语音识别、图像识别等,为顾客提供更加智能化的点餐体验。同时,随着移动支付和电子商务的普及,这些系统也支持多种支付方式,如信用卡支付、移动支付等,为顾客提供了更加便捷的支付体验。
综上所述,基于微信小程序的餐厅点餐系统在国内外的研究和应用都已经取得了一定的成果。然而,随着技术的不断发展和消费者需求的不断变化,如何进一步优化系统功能、提高用户体验、保障数据安全等问题仍然值得进一步研究和探讨。
1.3系统开发技术的特色
(1)系统采用前后端分离的开发模式,使得前端和后端可以独立开发和维护,提高了开发效率和系统的可维护性。
(2)系统采用微服务架构,将系统拆分成多个独立的服务,每个服务可以独立部署和扩展,提高了系统的灵活性和可扩展性。
(3)系统采用 Docker 容器化部署技术,使得系统可以快速部署和迁移,提高了系统的可靠性和可移植性。
(4)系统采用自动化测试技术,包括单元测试、接口测试和性能测试等,提高了系统的稳定性和可靠性。
(5)系统采用安全保障技术,包括用户认证、授权、数据加密等,保障了系统的安全性和用户的隐私。
这些技术特色使得基于微信小程序的餐厅点餐系统具有高效、稳定、可靠、安全等优点,能够满足用户的需求和提高用户的体验。
2 基于微信小程序的餐厅点餐系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。接下来会进行详细的介绍。
2.1可行性分析
2.1.1技术可行性分析
微信小程序作为一种成熟、稳定的前端应用平台,提供了丰富的API和组件,能够满足复杂的用户界面和交互需求。Node.js作为后端开发框架,以其高性能、异步I/O处理能力,能够处理高并发请求,确保系统的稳定性和响应速度。此外,现代的前后端分离开发模式使得前后端可以独立开发、测试和维护,提高了开发效率和系统的可扩展性。因此,从技术角度来看,基于微信小程序的餐厅点餐系统是完全可行的。
2.1.2经济可行性分析
基于微信小程序的餐厅点餐系统在经济上具有显著优势。首先,微信小程序作为免费平台,无需额外支付开发或维护费用,大大降低了开发成本。其次,Node.js作为开源技术,拥有大量免费可用的库和框架,减少了购买商业软件的费用。此外,系统的维护和升级成本相对较低,因为基于现代技术的系统通常具有良好的可扩展性和可维护性。综合来看,该系统的经济可行性较高,能够为用户带来长期的经济效益。
2.1.3操作可行性分析
基于微信小程序的餐厅点餐系统具有简洁明了的用户界面和易于操作的功能模块,用户无需复杂的操作即可完成评价、查看评价等操作。同时,微信小程序的用户基础庞大,用户习惯良好,使得系统的操作更加便捷。此外,系统还提供了详细的操作指南和客服支持,帮助用户更好地使用系统。因此,从操作角度来看,该系统的设计与实现也是可行的。
综上所述,基于微信小程序的餐厅点餐系统在技术、经济、操作三个方面均具有良好的可行性。该系统的实施将为用户带来显著的效益和便利,推动餐饮行业的数字化转型和创新发展。
2.2功能需求分析
基于微信小程序的餐厅点餐系统有注册用户和管理员两个用户角色,下面针对两个用户角色的功能需求进行分析:
1.注册用户功能需求
登录注册:为用户提供微信快捷登录和注册功能,简化操作流程,同时保证用户信息的安全性。
首页:呈现餐厅品牌形象、特色菜品、促销活动等信息,提供便捷的搜索功能,帮助用户快速找到所需的菜品或活动。
网站公告:向用户展示餐厅的最新通知、临时调整等重要信息,确保用户能够及时了解餐厅的最新动态。
餐饮新闻:发布餐饮行业资讯、餐厅动态和新菜品介绍,提供新闻浏览、点赞和评论功能,增加用户与餐厅的互动。
在线点餐:允许用户浏览餐厅菜单,选择并下单,支持多种支付方式完成订单支付。
我的:提供用户个人信息管理功能,包括基本信息编辑、收藏夹管理、订单信息查看和订单评价等。
2.管理员功能需求
后台首页:展示系统整体运营数据,如订单量、销售额、用户数量等,帮助管理员快速了解系统运行状态。
系统用户:管理用户账号,包括创建、编辑、禁用和删除用户等功能,确保系统用户信息的准确性和安全性。
在线点餐管理:可以发布餐厅餐品信息供用户选择。
订单信息管理:查看和管理用户的订单信息,包括订单状态、支付情况、配送进度等,确保订单处理的及时性和准确性。
订单评价管理:查看和管理用户的订单评价,支持回复用户评价,提高餐厅服务质量和用户满意度。
系统管理(轮播图管理):上传、编辑和删除首页轮播图,调整轮播图展示顺序,确保首页展示效果的美观和吸引力。
餐厅公告管理:发布、编辑和删除餐厅公告,确保用户能够及时获取餐厅的最新动态和重要信息。
资源管理(餐饮新闻、新闻分类):发布和管理餐饮新闻,创建和编辑新闻分类,提高餐厅的知名度和用户粘性。
基于微信小程序的餐厅点餐系统的完整UML用例图分别是图2-1,图2-2。在参与者上包括注册用户、管理员。
注册用户角色的用例包括登录注册、首页、网站公告、餐饮新闻、在线点餐、我的(基本信息、收藏、订单信息、订单评价)。
图2-1 基于微信小程序的餐厅点餐系统注册用户角色用例图
管理员角色的用例包括后台首页、系统用户、在线点餐管理、订单信息管理、订单评价管理、系统管理(轮播图管理)、餐厅公告管理、资源管理(餐饮新闻、新闻分类)。
图2-2 基于微信小程序的餐厅点餐系统管理员角色用例图
3基于微信小程序的餐厅点餐系统总体设计
在上一章节中分析了基于微信小程序的餐厅点餐系统的功能性需求,并且根据需求分析了基于微信小程序的餐厅点餐系统中的用例。那么接下来就要开始对基于微信小程序的餐厅点餐系统架构、主要功能和数据库开始进行设计。
3.1系统功能模块设计
通过对基于微信小程序的餐厅点餐系统的功能需求分析以及用例分析,得出了基于微信小程序的餐厅点餐系统的功能模块图如图3-1所示。
3.3数据库设计
3.3.1 数据库E-R模型
下面是整个基于微信小程序的餐厅点餐系统的数据库表的E-R实体关系图,如图3-2所示:
3.3.2 数据库表设计
通过上一小节中基于微信小程序的餐厅点餐系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | online_ordering_id | int | 10 | 0 | N | Y | 在线点餐ID | |
2 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
3 | cuisine_type | varchar | 64 | 0 | Y | N | 菜系类型 | |
4 | dish_pictures | varchar | 255 | 0 | Y | N | 菜品图片 | |
5 | price_of_dishes | int | 10 | 0 | Y | N | 0 | 菜品价格 |
6 | food_ingredient_details | text | 65535 | 0 | Y | N | 食材明细 | |
7 | details_of_dishes | text | 65535 | 0 | Y | N | 菜品详情 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_evaluation_id | int | 10 | 0 | N | Y | 订单评价ID | |
2 | order_number | varchar | 64 | 0 | N | N | 订单编号 | |
3 | registered_users | int | 10 | 0 | Y | N | 0 | 注册用户 |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
6 | cuisine_type | varchar | 64 | 0 | Y | N | 菜系类型 | |
7 | purchase_quantity | int | 10 | 0 | Y | N | 0 | 购买数量 |
8 | order_evaluation | text | 65535 | 0 | Y | N | 订单评价 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_information_id | int | 10 | 0 | N | Y | 订单信息ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
3 | registered_users | int | 10 | 0 | Y | N | 0 | 注册用户 |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | dish_name | varchar | 64 | 0 | Y | N | 菜品名称 | |
6 | cuisine_type | varchar | 64 | 0 | Y | N | 菜系类型 | |
7 | price_of_dishes | int | 10 | 0 | Y | N | 0 | 菜品价格 |
8 | purchase_quantity | int | 10 | 0 | Y | N | 0 | 购买数量 |
9 | order_amount | varchar | 64 | 0 | Y | N | 订单金额 | |
10 | flavor_customization | text | 65535 | 0 | Y | N | 口味定制 | |
11 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
12 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | mobile_phone_number | varchar | 16 | 0 | Y | N | 手机号码 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 基于微信小程序的餐厅点餐系统实现
基于微信小程序的餐厅点餐系统的详细设计与实现主要是根据前面的需求分析和总体设计来设计页面并实现业务逻辑。主要从界面实现、业务逻辑实现这两部分进行介绍。
4.1 前台微信端
4.1.1 用户注册界面
不是基于微信小程序的餐厅点餐系统的用户可以通过微信小程序在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。注册实现了注册用户注册,其注册界面展示如下图4-1所示。
图4-1用户注册界面图
4.1.2 用户登录界面
微信小程序上注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。
图4-2用户登录界面图
输入有效的用户名和密码信息,点击“登录”按钮,自动跳转到“首页”页面,首页界面如下图4-3所示。
图4-3首页界面图
4.1.3 在线点餐界面
点击“在线点餐”,注册用户可以查看所有的菜品信息,点击可查看详情,包括菜品名称、菜品类型等,可以在详情页面进行下单、点赞、收藏、评论等操作。界面如下图4-4所示。
图4-4在线点餐详情界面图
4.1.4下单界面
用户在在线点餐详情页面点击“下单”,可以提交在线点餐订单,用户可在我的“订单信息”页面查看订单状态并进行支付,如下图4-5所示。
图4-5订单信息界面图
4.1.5 订单评价界面
用户点击我的-订单评价,注册用户可以对餐厅的菜品进行评价。界面如下图4-6所示。
图4-6订单评价界面图
4.1.6 餐饮新闻界面
用户点击“餐饮新闻”,注册用户可以查看餐饮行业资讯、餐厅动态和新菜品介绍,用户可以进行点赞和评论。界面如下图4-7所示。
图4-7餐饮新闻详情界面图
4.2后台管理员端
4.2.1 系统用户界面
管理员点击“系统用户”这一菜单会显示管理员、注册用户这两个子菜单,管理员可以对这两个角色的信息进行增删改查操作。界面如下图4-8所示。
图4-8用户管理界面图
4.2.2在线点餐管理界面
管理员点击后台左边的“在线点餐管理”菜单后将可以对在线点餐进行管理,包括添加、编辑和删除在线点餐等,还可以查看和回复用户评论。在线点餐管理界面如下图4-8所示。
图4-9在线点餐列表界面图
4.2.3系统管理界面
管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图所示。
4.2.4餐厅公告管理界面
点击“餐厅公告管理”这个菜单,可以查看到系统中所有添加的餐厅公告,支持通过标题对餐厅公告进行查询,添加、删除等操作。餐厅公告管理界面如下图所示。
图4-11餐厅公告管理界面图
4.2.5资源管理界面
管理员点击“资源管理”这一菜单,可以发布和管理餐饮新闻,创建和编辑新闻分类,提高餐厅的知名度和用户粘性。界面如下图所示。
4.2.6订单信息管理界面
管理员点击“订单信息管理”这一菜单,可以查看和管理用户的订单信息,包括订单状态、支付情况、配送进度等,确保订单处理的及时性和准确性。界面如下图所示。
图4-13订单信息管理界面图
4.2.7订单评价管理界面
管理员点击“订单评价管理”这一菜单,可以查看和管理用户的订单评价,支持回复用户评价,提高餐厅服务质量和用户满意度。界面如下图所示。
图4-14订单评价管理界面图
5 基于微信小程序的餐厅点餐系统测试
基于微信小程序的餐厅点餐系统测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查基于微信小程序的餐厅点餐系统,以便发现基于微信小程序的餐厅点餐系统中的错误。测试工作是保证基于微信小程序的餐厅点餐系统质量的关键。
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2系统测试用例
微信端上用户查看在线点餐功能测试:
表5-1微信端上用户查看在线点餐功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
查看在线点餐功能模块测试 | 在线点餐信息正常的显示 | 浏览在线点餐详情信息 | 在小程序端上选择一个在线点餐信息将会进入该在线点餐的详情界面,同时可以评论、收藏。 | 进入该在线点餐的详情信息界面 | 正确 |
查看在线点餐功能模块测试 | 在线点餐详情信息正常的显示 | 浏览在线点餐详情信息 | 点击“评论”填写评论信息,点击“提交”按钮。 | 生成自己的评论信息。 | 正确 |
微信端上下单功能测试:
表5-2微信端上下单功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
下单功能模块测试 | 订单信息正常的显示 | 浏览在线点餐 | 点击在线点餐底部“下单”按钮后填写订单信息点击提交即可。 | 下单成功 | 正确 |
web后台端上管理员发布在线点餐功能测试:
表5-3web后台端上管理员发布餐厅公告功能测试用例表
测试名称 | 操作 | 操作过程 | 预期结果 | 测试结果 |
管理员发布餐厅公告功能测试 | 输入新餐厅公告信息的基本信息 | 后台选择“餐厅公告管理”菜单后,点击“餐厅公告添加”,填写新餐厅公告信息后点击“提交”按钮 | 新餐厅公告发布成功 | 正确 |
5.3测试结果
通过编写了基于微信小程序的餐厅点餐系统的测试用例,已经检测完毕了5.2章节中的3大模块,它为基于微信小程序的餐厅点餐系统的后期推广运营提供了强力的技术支撑。
在开发本系统之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,比如Node.js 开发语言、微信开发者工具等,通过开发这个餐厅点餐系统我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次餐厅点餐系统的开发中我逐渐掌握逐渐熟悉的技术。
本次餐厅点餐系统的开发中我还学会了例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。
在本次项目中我也暴露了诸多问题。对于Node.js的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1]王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-35+39.DOI:10.19850/j.cnki.2096-4706.2023.22.007.
[2]苏兵.基于微服务的校园点餐系统后台的设计与实现[J].电脑与电信,2023,(11):23-28.DOI:10.15966/j.cnki.dnydx.2023.11.008.
[3]陈海燕,常莹,张燕宁.基于Android系统的校园点餐系统中不同数据存储方式的教学研究[J].电脑编程技巧与维护,2023,(09):57-60.DOI:10.16184/j.cnki.comprg.2023.09.012.
[4]曾慧群.基于Android的智慧点餐系统设计与实现[J].现代信息科技,2023,7(14):15-19.DOI:10.19850/j.cnki.2096-4706.2023.14.004.
[5]张芮绮.线上餐厅管理系统的设计[J].科技风,2023,(06):4-6.DOI:10.19392/j.cnki.1671-7341.202306002.
[6]叶梦君,焦冰.基于Linux的点餐系统的设计与实现[J].电脑知识与技术,2023,19(03):44-46+50.DOI:10.14004/j.cnki.ckt.2023.0153.
[7]Yang Y .Design and Implementation of Online Food Ordering System Based on Springcloud[J].Information Systems and Economics,2022,3(4):
[8]刘德凤.酒店点餐系统的设计与实现[J].电子技术与软件工程,2022,(22):173-176.
[9]种倩倩,孙丽英,陈滨,等.基于微信小程序的点餐系统的设计与开发[J].电脑知识与技术,2022,18(19):66-69+73.DOI:10.14004/j.cnki.ckt.2022.1307.
[10]王丽爱,周旭东,刘贤.基于MVC框架的手机点餐系统[J].电脑知识与技术,2022,18(05):76-78+84.DOI:10.14004/j.cnki.ckt.2022.0353.
[11]宁功林.基于微信小程序的大学校园点餐管理系统设计与实现[J].华东科技,2022,(02):77-79.
[12]朱广跃.移动Web点餐系统的设计[J].集成电路应用,2022,39(01):124-125.DOI:10.19339/j.issn.1674-2583.2022.01.045.
[13]Chang V ,Liddle J ,Xu A Q , et al.A new product development of the iOS-based ordering systems for smart cities[J].Library Hi Tech,2022,40(5):1127-1146.
[14]陈帅.微信点餐系统小程序的设计与实现[J].电子技术与软件工程,2021,(24):30-31.
[15]冯毅.智能推荐点餐系统的设计及在餐饮业中的应用价值[J].农村经济与科技,2021,32(06):143-144.
[16]Joshi M ,Shukla H .Design and development of reactive material ordering system using e-kanban and Taguchi's technique for a warehouse of tractor assembly plant[J].International Journal of Industrial and Systems Engineering,2021,37(4):
[17]宋晴,姚敦红.基于UML的餐厅点餐系统设计[J].信息与电脑(理论版),2020,32(13):87-88.
[18]倪自亮,智慧食堂点餐系统.内蒙古自治区,内蒙古赤那网络科技有限公司,2020-04-17.
[19]项健.高校餐厅健康点餐系统开发及其风险分析[D].南京邮电大学,2019.DOI:10.27251/d.cnki.gnjdc.2018.000110.
[20]刘雨馨.基于android的点餐系统的设计与实现[D].湖北工业大学,2019.
至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。
此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。
最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~