Flutterzon – 使用Flutter克隆Amazon
Flutterzon 致力于创建一个Amazon克隆应用,作为一个全栈电子商务应用程序。技术栈包括用于前端的Flutter,用于后端的Node.js,用于数据存储的MongoDB,用于高效状态管理的Bloc,以及用于无缝图片和媒体管理的Cloudinary。主要目标是忠实地镜像Amazon移动应用程序中的功能和用户体验。
Flutterzon 专注于提供无缝且响应式的用户界面,确保用户在平台上浏览时获得流畅直观的体验。它还配备了管理面板,经过战略性集成以增强控制并促进有效管理。这个附加组件满足了行政需求,提供了管理和优化应用程序各个方面的方式。
Flutterzon 是一项有目的的举措,其主要目标是创建一个Amazon克隆应用程序,忠实地重现Amazon移动应用程序著名的功能和用户体验。
技术栈
-
客户端
功能
-
认证与用户数据
-
电子邮件和密码认证: 使用电子邮件和密码凭据登录和管理用户账户。
-
持久化认证状态和用户类型重定向: 在启动应用程序和登录过程中,保持登录状态,并根据您的用户类型自动登陆正确的仪表板(用户或管理员)。
-
使用 Hydrated Bloc 进行用户数据持久化: 使用 Hydrated Bloc 持久化存储用户数据,以实现无缝的用户体验。
-
-
主屏幕
- 动态主屏幕优惠: 主屏幕上有多个优惠,包括引人入胜的静态图片轮播,一个精选的交易水平列表(也是静态的),但四个动态图片优惠可以轻松从后端更新,以实现持续刷新体验。
-
产品管理
-
按类别划分的产品: 按类别组织产品,方便浏览和导航。
-
产品搜索: 使用专门的搜索功能高效搜索产品。
-
产品详情: 查看全面的产品详情,包括平均评分、评分次数以及基于产品类别的产品推荐。
-
产品评分系统: 仅为您订购过的产品评分,可以通过产品详情或订单详情屏幕进行。
-
每日特价: 发现评分最高的产品作为“每日特价”。
-
-
账户功能
-
订购产品: 无缝地订购产品。
-
订单详情: 查看订单详情,包括状态,并根据订购的产品类别接收产品推荐。
-
搜索订单: 轻松搜索特定订单。
-
浏览历史: 维护最近访问过的产品历史,以便于访问。
-
心愿单: 创建和管理心愿单,以跟踪您想要的产品。
-
-
购物车管理
-
购物车列表: 查看和管理添加到购物车中的产品。
-
购物车操作
- 向右滑动:从购物车中删除商品。
- 向左滑动:将商品添加到“稍后保存”列表中。
- 查看购物车商品的相似产品。
-
稍后保存列表: 管理稍后保存的产品。
-
稍后保存操作
- 向右滑动:从“稍后保存”列表中删除商品。
- 向左滑动:将商品添加到购物车。
- 删除、比较和在购物车与稍后保存列表之间移动产品。
-
产品推荐: 根据用户的浏览历史接收产品推荐,或在没有浏览历史的情况下接收随机推荐。
-
结账选项
-
Google Pay 结账: 使用 Google Pay 进行结账,享受安全便捷的支付体验。
-
立即购买结账: 付款后立即使用“立即购买”选项订购所选产品。
-
-
-
管理面板: 使用全面的管理面板有效管理电子商务平台。
-
管理面板功能
-
产品管理: 按类别查看、添加和删除产品。
-
收入分析: 使用可视化图表跟踪总收入和按类别划分的收入。
-
四张图片优惠管理: 从管理部分查看、添加和删除四张图片优惠。
-
订单管理: 查看订单详情并更改订单状态。
-
-
-
登出: 轻松退出用户和管理员账户。
-
使用的一些包
-
bloc: 利用 bloc 进行有效状态管理。
-
hydrated_bloc: 使用 hydrated_bloc 持久化用户数据,以实现无缝的用户体验。
-
equatable: 使用 equatable 高效比较对象,以提高性能。
-
syncfusion_flutter_charts 包: 使用 syncfusion_flutter_charts 包以全面的图表格式显示按类别划分的收入。
-
go_router: 采用 go_router 在应用程序中进行高效的页面导航。
-
屏幕截图
-
首页
-
产品
-
订单
-
购物车
-
管理员
本地运行
-
克隆此仓库
https://github.com/tejasbadone/flutterzon_bloc.git
-
迁移到根目录并通过运行安装所有必需的依赖项
flutter pub get
-
创建 MongoDB 项目和集群
-
使用 Drivers 连接到集群并获取连接字符串。
-
我已在项目根目录创建了一个
config.env文件,其中包含设置所需的基本详细信息,您也可以创建一个或直接更新必要的值,这完全取决于您。 -
转到
server/index.js并替换 userName、password 和 connection string。 -
转到
lib/src/utils/constants/strings.dart并用您的 IP 地址替换uri。 -
创建 Cloudinary 项目,并在设置中启用未签名的操作。
-
转到
lib/src/data/repositories/admin_repository.dart,在uploadImages()方法中更新cloudinaryCloudName和cloudinaryUploadPreset。 -
现在,运行以下命令,迁移到服务器文件夹,安装必需的依赖项,并在本地运行服务器。
cd server npm install npm run dev (to run index.js using nodemon) OR npm start (to run index.js)
下载
下载 apk – https://drive.google.com/file/d/1K1k8DbwHfyAnujwRAPgzXmcEUVABFB_p/view?usp=sharing
测试凭据
-
用户
- 邮箱: [email protected]
- 密码: 123456
-
管理员
- 邮箱: [email protected]
- 密码: 123456
笔记
-
如果您想在该应用程序中下订单,您可以注册 Google Pay API 测试卡白名单。这将为您提供模拟卡详细信息,使您能够在一个受控环境中安全地测试下单功能。
-
对于上面提供的 Flutterzon apk 的 GitHub 版本,请注意,某些管理功能,例如删除产品和优惠的能力,已被故意禁用,以防止对实际数据库进行意外篡改。您可以访问的原始代码库包含完整的功能,包括删除产品。如果您想探索全部功能,请参阅提供的原始代码。
-
请注意,由于服务器托管在业余计划上,应用程序或 API 在提供详细信息时可能会出现延迟。如果 15 分钟没有活动,服务器可能会休眠,导致第一个 API 请求处理延迟。我们非常感谢您在此过程中的耐心。
-
如果您有兴趣,还有另一个使用 Provider 和 Flutter 的
setState构建的版本。您可以在 此处 访问它。
免责声明
此应用程序是一个个人项目,出于教育和学习目的而构建。它与 Amazon 没有任何关联或认可。虽然该应用程序具有受 Amazon 启发的产品详情和图片,但这些仅用于演示目的,可能不代表实际产品。这些元素的所有权利属于其各自所有者。我们仅出于教育目的使用它们,无意进行商业开发。
此外,请注意,在此原型中尝试下单仅用于测试目的,不会导致实际产品交付或产生真实世界费用。此环境仅用于模拟和开发目的。
联系方式
许可证
本项目根据 MIT 许可协议授权 – 详情请参阅 LICENSE.md 文件





