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 被巧妙地整合为基于位置的服务,例如路线、方向和地理编码,确保用户和餐厅的精确定位。这种地理位置准确性允许个性化推荐和准确的送货定价。此外,距离矩阵用于准确计算配送成本、距离和时间估计,确保我们的送餐应用程序提供流畅高效的用户体验。

基本应用程序功能

  1. 获取 Google API 密钥

  2. 将上下文提供程序挂接到应用程序

  3. 使用 expo-location 获取用户位置,使用 useContext 钩子访问数据

  4. 创建主标题

  5. 反向地理编码坐标以获取位置和时间函数

  6. 使用 Flatlist 和 Image Component 的类别列表

  7. 使用 Flatlist 和 Text 组件选择餐厅列表

  8. 可重用的标题组件

  9. 附近餐厅推荐

  10. 新食物推荐和您附近最快的组件

  11. 食物堆导航器

  12. 关于将数据传递到堆栈内的屏幕的说明

  13. 创建 Food Page 按钮、文本组件和样式

  14. 带有 BounceCheckBox 的 FoodTags 扁平化列表和良好添加剂列表

  15. 增加数量的计数

  16. 购物车和订单函数和数据准备

  17. 根据添加剂的变化处理添加剂和价格上涨

  18. React Native 中的 TabView

  19. 餐厅页面图像、按钮和使用评级包的评级

  20. 餐厅评分页面

  21. 使用 google 距离矩阵的交货时间、成本和距离

  22. 使用 useContext 钩子将数据传递给 TabView 内的页面

  23. Google 地图和将应用程序链接到本机地图

  24. 使用 Google direction API 获取路线

  25. 在地图上显示 polyLines 和标记

  26. 餐厅美食菜单

  27. 登录并将数据传递到 Login Context

  28. 使用 CartCount 上下文的持久 CartCount

  29. 类别 食品成分

后端系统概述

1. 身份验证和授权

  • 与 Firebase Admin 集成:使用 Firebase Admin SDK 实现后端服务,以管理用户、角色和权限。

  • 基于角色的身份验证:定义四个不同的角色:管理员、供应商、客户和驱动程序。

  • 高级中间件:创建中间件函数以验证用户角色并对受保护的路由实施访问控制。

2. 用户管理

  • 注册和配置文件:为不同的用户角色启用注册,每个角色都有一组唯一的数据字段和验证规则。

  • 实施 JSON Web 令牌 (JWT) 以实现基于令牌的安全用户身份验证。

  • 使用密码加密技术(如 bcrypt)来确保用户凭证的安全。

  • 用户 CRUD 操作:允许添加、更新和检索用户信息。

  • 地址管理:为用户提供添加、更新和检索地址的功能。

  • 实施逻辑以维护每个用户的单个默认地址,并能够更改默认设置。

3. 供应商特定的功能

  • 供应商注册:为供应商设置注册流程,包括收集必要信息和验证。

  • 供应商中间件:确保只有供应商才能访问用于管理其餐厅和食品的路由。

  • 食品管理:为供应商开发终端节点,以上传和管理他们的食品。

4. 推荐和动态内容

  • Location-Based Restaurant Recommendations(基于位置的餐厅推荐):创建终端节点,根据客户的当前位置向客户推荐餐厅。

  • 动态食品推荐:开发算法,根据用户位置向用户推荐食品。

  • 准备和交付时间:引入逻辑,根据用户位置,推荐可以在最短的时间内准备和交付的食物。

5. 购物车和订单处理

  • 购物车管理:允许用户在购物车中添加和删除商品。

  • 使用户能够调整购物车商品的数量。

  • 每当对 Cart 进行更改时,更新并返回 Cart 计数。

  • 订单创建和管理:为用户提供创建订单并使用附加组件自定义订单的功能。

  • 根据付款和配送状态更新订单。

6. 类别和推荐

  • 类别管理:允许管理员添加、更新和删除食品类别。

  • 类别推荐:使用聚合管道向用户提供随机类别推荐。

7. 驱动程序特定的功能

  • 驱动程序注册和限制:为驱动程序建立注册,并确保中间件将其限制为与驱动程序相关的任务。

本课程适合谁:

  • 对于初学者
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。