React Native 食物应用程序
React Native Food App
了解如何构建送餐应用
学习内容
-
React Native Food 应用程序
-
构建 Nodejs Rest API
-
Build With Expo
-
谷歌地图与详细说明
要求
-
CSS 的基本编程知识
描述
基于 react native 的 Foodly 食品配送应用程序拥有使用 Node.js 和 Express 制作的动态后端,为高性能运营奠定了坚实的基础。MongoDB 用于高效的数据处理,并无缝集成 Firebase Admin 以增强后端管理功能。
本教程仅涵盖前端用户部分。后端 api,但我们没有涵盖任何管理面板
前端使用最新版本的 React Native 和 Expo 开发,具有时尚、尖端的用户界面。Google Maps API 被巧妙地整合为基于位置的服务,例如路线、方向和地理编码,确保用户和餐厅的精确定位。这种地理位置准确性允许个性化推荐和准确的送货定价。此外,距离矩阵用于准确计算配送成本、距离和时间估计,确保我们的送餐应用程序提供流畅高效的用户体验。
基本应用程序功能
-
获取 Google API 密钥
-
将上下文提供程序挂接到应用程序
-
使用 expo-location 获取用户位置,使用 useContext 钩子访问数据
-
创建主标题
-
反向地理编码坐标以获取位置和时间函数
-
使用 Flatlist 和 Image Component 的类别列表
-
使用 Flatlist 和 Text 组件选择餐厅列表
-
可重用的标题组件
-
附近餐厅推荐
-
新食物推荐和您附近最快的组件
-
食物堆导航器
-
关于将数据传递到堆栈内的屏幕的说明
-
创建 Food Page 按钮、文本组件和样式
-
带有 BounceCheckBox 的 FoodTags 扁平化列表和良好添加剂列表
-
增加数量的计数
-
购物车和订单函数和数据准备
-
根据添加剂的变化处理添加剂和价格上涨
-
React Native 中的 TabView
-
餐厅页面图像、按钮和使用评级包的评级
-
餐厅评分页面
-
使用 google 距离矩阵的交货时间、成本和距离
-
使用 useContext 钩子将数据传递给 TabView 内的页面
-
Google 地图和将应用程序链接到本机地图
-
使用 Google direction API 获取路线
-
在地图上显示 polyLines 和标记
-
餐厅美食菜单
-
登录并将数据传递到 Login Context
-
使用 CartCount 上下文的持久 CartCount
-
类别 食品成分
后端系统概述
1. 身份验证和授权
-
与 Firebase Admin 集成:使用 Firebase Admin SDK 实现后端服务,以管理用户、角色和权限。
-
基于角色的身份验证:定义四个不同的角色:管理员、供应商、客户和驱动程序。
-
高级中间件:创建中间件函数以验证用户角色并对受保护的路由实施访问控制。
2. 用户管理
-
注册和配置文件:为不同的用户角色启用注册,每个角色都有一组唯一的数据字段和验证规则。
-
实施 JSON Web 令牌 (JWT) 以实现基于令牌的安全用户身份验证。
-
使用密码加密技术(如 bcrypt)来确保用户凭证的安全。
-
用户 CRUD 操作:允许添加、更新和检索用户信息。
-
地址管理:为用户提供添加、更新和检索地址的功能。
-
实施逻辑以维护每个用户的单个默认地址,并能够更改默认设置。
3. 供应商特定的功能
-
供应商注册:为供应商设置注册流程,包括收集必要信息和验证。
-
供应商中间件:确保只有供应商才能访问用于管理其餐厅和食品的路由。
-
食品管理:为供应商开发终端节点,以上传和管理他们的食品。
4. 推荐和动态内容
-
Location-Based Restaurant Recommendations(基于位置的餐厅推荐):创建终端节点,根据客户的当前位置向客户推荐餐厅。
-
动态食品推荐:开发算法,根据用户位置向用户推荐食品。
-
准备和交付时间:引入逻辑,根据用户位置,推荐可以在最短的时间内准备和交付的食物。
5. 购物车和订单处理
-
购物车管理:允许用户在购物车中添加和删除商品。
-
使用户能够调整购物车商品的数量。
-
每当对 Cart 进行更改时,更新并返回 Cart 计数。
-
订单创建和管理:为用户提供创建订单并使用附加组件自定义订单的功能。
-
根据付款和配送状态更新订单。
6. 类别和推荐
-
类别管理:允许管理员添加、更新和删除食品类别。
-
类别推荐:使用聚合管道向用户提供随机类别推荐。
7. 驱动程序特定的功能
-
驱动程序注册和限制:为驱动程序建立注册,并确保中间件将其限制为与驱动程序相关的任务。
本课程适合谁:
- 对于初学者
评论(0)