Deliverzler

一款新的开源餐厅外卖应用程序,使用 Flutter、Firebase、Google Maps、本地通知、FCM 通知、Riverpod 状态管理以及 MVVM 模块化架构创建。

截图

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

功能

  • 使用模块化 MVVM 架构、自定义小部件和整洁的可重用代码。
  • 使用 Riverpod 作为状态管理。
  • 使用 Firebase Firestore 作为后端。
  • 使用 Google Maps API(地点自动补全 – 地点详情 – 路线)。
  • 使用本地通知进行到达地点通知,以及 FCM 用于新提交订单通知。
  • 使用生成的路由实现整洁的导航。
  • 使用 GetX 生态系统实现本地化、主题化、SnackBar 等。
  • 使用响应式 UI 和自定义类来处理尺寸、颜色、主题等。

逻辑

  • 该应用程序可供餐厅的多个外卖司机使用。此外,您还可以使其适用于多供应商应用程序。
  • 员工只有登录屏幕。您应该通过管理应用程序在后端授权他们。
  • 主屏幕将显示已准备好配送(“即将到来”)或正在配送(“途中”)的外卖订单流。
  • 任何员工都可以查看订单详情并配送“即将到来”的订单。
  • 员工可以配送多个订单。
  • 只有正在配送订单的员工才能确认/取消或显示订单的地图。
  • 如果客户在“客户应用程序”中提供了他们的位置,该位置将加载到地图上,否则员工可以搜索该位置(每次搜索会话使用新的会话令牌以减少 Google Maps 账单)。
  • 当订单到达目的地(200 米内)时,负责该订单的员工将收到本地通知,并能够在地图上确认并呼叫客户。
  • 如果外卖司机的位置更改(每 5 秒和 5 米距离变化),它将更新后端上的外卖地理点(“为其所有当前配送的订单,以便客户可以收听”)并更新地图路线(“仅针对已打开的地图,如果有的话”)。
  • 当新订单添加到后端“外卖订单”时,所有员工都将收到 FCM 的通知(应用程序在前台、后台或已终止时工作)。“您需要将项目附带的功能部署到您的 Firebase Cloud Functions”。
  • 员工可以在个人资料屏幕中添加/编辑其信息。
  • 应用程序支持(英语/阿拉伯语),您可以轻松添加更多语言。
  • 应用程序支持(浅色/深色)主题模式,它会随您的设备模式而变化,或者您可以从设置中选择您喜欢的主题。

如果您喜欢该项目,请给一个 ⭐️.. 谢谢!

GitHub

查看 Github