目录
项目介绍:
这是一款餐厅定制的软件产品,分为管理端和用户端,管理端供商家也就是餐厅使用,餐饮企业可以通过系统管理员工、菜品、套餐和订单,通过工作台、数据统计分析经营数据。用户端是给点餐的顾客使用的,结合了微信小程序,提供在线浏览菜品和套餐、添加购物车、下单和支付等功能。
功能架构:
分析:
-
管理端:
管理端顾名思义,就是供管理员使用的。
假设你是店长,经营了一家餐厅,你需要完成哪些工作?
- 首先想到对员工、菜品的管理 => 员工管理、菜品管理
- 管理菜品,涉及到对菜品进行分类 => 分类管理
- 菜品组合,搭配成套餐更利于销售 => 套餐管理
- 销售完成,生成订单 => 订单管理
- 需要了解当天流水、交易相关信息 => 工作台
- 优化餐厅经营,需要对数据进行分析 => 数据统计
- (及时处理订单,保留顾客) => 来/催单提醒
-
用户端:
用户端顾名思义,就是供用户员使用的。
结合自身在餐厅点餐的经验,用户应该可以完成哪些操作?
- 点餐时需要获取信息、账户等,也就是说必须要完成登录 => 微信登录
- 了解餐厅售卖的商品(菜品、套餐等) => 商品浏览
- 购买超出1件/种商品时,需要有载体 => 购物车
- 购买商品,生成订单 => 用户下单
- 付款 => 用户支付
- 当老客户/不小心取消订单,希望重新下单或者单纯看看点过啥时 => 历史订单
- 如果是商家自送,需要提供收货地址 => 地址管理
- 下单了,但订单等太久得不到处理 => 催单退款
功能操作
(仅超级管理员登录管理端可进行数据的增删改操作,普通员工登录只可进行查询操作)
技术栈:展示项目中使用到的技术框架和中间件等
名称 | 概述 | 项目中的使用 |
---|---|---|
技术框架 | ||
Node.js | 一个基于Chrome V8引擎的JavaScript运行环境,用于构建快速、可扩展的网络应用程序。 | 构建管理端界面 |
Vue.js | JavaScript前端框架,用于构建用户界面 | 构建管理端界面 |
Swagger | API文档生成工具,用于设计、构建、文档化RESTful API | 测试 |
POI | Apache提供的Java库,用于操作Microsoft Office格式的文件 | 导出统计数据 |
Spring Boot | 基于Spring框架的快速开发框架,用于构建Java应用程序 | 搭建项目 |
Spring MVC | Spring框架的一部分,用于构建Web应用程序的MVC框架 | 搭建项目 |
Spring Task | Spring框架提供的任务调度和定时任务管理功能 | 定时检查订单状态 |
Spring Cache | Spring框架的缓存抽象和支持 | 支持缓存 |
JWT(JSON Web Token) | 用于身份验证和信息传输的开放标准(JSON对象) | 安全登录 |
WebSocket | 一种通信协议,用于在客户端和服务器之间实现双向通信 | 催单、来单提醒 |
中间件 | ||
Apache ECharts | 一个基于JavaScript的数据可视化库 | 数据统计图形化 |
HttpClient | Java的HTTP客户端库,用于发送HTTP请求 | HTTP请求和响应 |
阿里云OSS | 阿里云提供的对象存储服务 | 存储菜品图片 |
MySQL | 关系型数据库管理系统 | 持久化数据 |
Redis | 开源的内存数据库,用作缓存、消息队列等 | 营业状态、小程序用户浏览 |
MyBatis | Java持久层框架,用于与数据库交互 | 持久化数据 |
PageHelper | MyBatis的分页插件,用于数据库查询结果的分页处理 | 分页查询 |
Spring Data Redis | Spring框架提供的Redis数据访问抽象库 | 营业状态、小程序用户浏览 |
Nginx | 高性能的HTTP和反向代理服务器。 | 代理 |
为什么这么选择技术栈?
中间件 / 技术框架 | 原因 |
---|---|
Node.js | Node.js适合构建高效的后端服务和实时应用程序。它具有非阻塞I/O模型和轻量级的高性能特性。 |
Vue.js | Vue.js易于上手并且性能优异。它提供了组件化开发的能力,能够快速构建交互性强、用户体验良好的单页面应用。 |
ElementUI | ElementUI是一个基于Vue.js的组件库,提供了丰富的UI组件和交互式的界面元素,能够快速构建美观的用户界面。 |
微信小程序 | 微信小程序是在微信平台上运行的轻量级应用,用户可以无需下载即可快速访问。适合于快速推广和用户便捷使用。 |
Apache ECharts | Apache ECharts是一个功能强大的开源图表库,支持多种图表类型和交互特性,适合用于数据可视化和统计分析。 |
Spring Boot; SpringMVC; Spring Task | Spring框架是Java生态系统中最流行的企业级框架之一; Spring Boot简化了Spring应用的开发和部署; SpringMVC提供了强大的Web应用支持‘ Spring Task用于定时任务管理。 |
HttpClient | HttpClient是一个强大的HTTP客户端库,用于在Java中进行HTTP请求和响应的处理。 |
Spring Cache; Spring Data; Redis | Spring Cache提供了缓存抽象和支持,可以轻松集成到Spring应用中,提高数据访问性能和系统响应速度; Spring Data Redis用于操作Redis缓存和数据存储。 |
JWT | JWT(JSON Web Token)是一种安全的身份验证和授权机制,用于在客户端和服务器之间安全地传递信息。 |
阿里云OSS | 阿里云对象存储(OSS)是一种高可用、高扩展性的云存储服务,适合存储和管理软件中的图片、文件等静态资源。 |
Swagger | Swagger是一种流行的API文档生成工具,能够自动生成和展示RESTful API的文档,并支持在线调试和测试。 |
POI | POI(Poor Obfuscation Implementation)是Apache软件基金会的开源项目,用于读写Microsoft Office格式文件,如Excel。 |
WebSocket | WebSocket是一种在单个TCP连接上进行全双工通信的协议,适合实时通信和消息推送。 |
MySQL; Redis; MyBatis; PageHelper; Spring Data Redis | MySQL是一个流行的关系型数据库,适合存储结构化数据; Redis是一个高性能的键值存储数据库,用于缓存和临时数据存储; MyBatis是一个持久层框架,用于简化数据库访问; PageHelper用于分页查询 |
Nginx | Nginx是一个高性能的HTTP和反向代理服务器,用于负载均衡、静态资源服务、HTTPS代理等。 |