完整的美容服务 O2O(线上到线下)平台移动端应用,允许用户浏览沙龙、选择服务、进行预约和支付等操作
项目分析报告:Beauty Salons Customer Application
项目概述
项目名称: beauty_salons_customer
项目类型: Flutter 美容沙龙预订应用
平台: Android/iOS (跨平台)
版本: 4.1.0+15
开发语言: Dart (Flutter 框架)
SDK 要求: >=3.3.3 <4.0.0
这是一个完整的美容服务 O2O(线上到线下)平台移动端应用,允许用户浏览沙龙、选择服务、进行预约和支付等操作。
功能描述
核心功能
- 用户认证: 注册、登录、找回密码、手机验证
- 服务浏览: 按分类、位置等条件搜索和浏览美容服务
- 沙龙管理: 查看和筛选附近的美容沙龙
- 服务预订: 选择服务选项、添加附加选项并预订
- 支付处理: 支持多种支付方式(Stripe、PayPal、Razorpay、FlutterWave、PayStack、PayMongo)
- 位置服务: 集成 Google 地图和 GPS 定位
- 通知系统: Firebase 推送通知和消息提醒
- 收藏功能: 收藏喜欢的服务和沙龙
- 评价系统: 对服务和沙龙进行评价
- 钱包功能: 余额管理和充值
主要模块
| 模块名 | 功能说明 |
|---|---|
| account | 账户管理 |
| auth | 认证授权 |
| book_e_service | 服务预订 |
| bookings | 预订管理 |
| category | 分类管理 |
| checkout | 结账流程(多种支付方式) |
| custom_pages | 自定义页面 |
| e_service | 电子服务详情 |
| favorites | 收藏功能 |
| gallery | 图库展示 |
| help_privacy | 帮助与隐私 |
| home | 主页展示 |
| maps | 地图功能 |
| messages | 消息系统 |
| notifications | 通知系统 |
| profile | 用户资料 |
| rating | 评价系统 |
| root | 根模块 |
| salon | 美容沙龙管理 |
| search | 搜索功能 |
| settings | 设置页面 |
| wallets | 钱包功能 |
项目结构
beautysalons-410.nalili.com-flutter_application/
├── lib/
│ ├── app/
│ │ ├── exceptions/ # 异常处理
│ │ ├── middlewares/ # 路由中间件
│ │ ├── models/ # 数据模型
│ │ ├── modules/ # 功能模块 (22 个模块)
│ │ ├── providers/ # 数据提供者
│ │ ├── repositories/ # 数据仓库
│ │ ├── routes/ # 路由配置
│ │ └── services/ # 服务层
│ ├── common/ # 公共组件和工具
│ ├── firebase_options.dart # Firebase 配置
│ └── main.dart # 应用入口
├── android/ # Android 平台配置
├── ios/ # iOS 平台配置
├── assets/ # 资源文件
│ ├── img/ # 图片资源
│ └── icon/ # 图标资源
├── config/ # 配置文件
└── documentation/ # 文档
核心业务逻辑
技术架构
- 架构模式: MVVM/MVC,使用 GetX 框架进行状态管理
- 依赖注入: 通过 GetX 进行服务管理
- 响应式编程: 使用 Rx observables 进行状态变化
数据流
- API 通信: 使用 Dio 库进行 HTTP 请求
- 本地存储: 使用 GetStorage 进行本地数据持久化
- 实时数据库: 使用 Firebase Firestore
- 状态管理: 使用 GetX 的响应式变量
关键服务
AuthService (认证服务)
- 管理用户登录状态
- 使用 GetStorage 存储用户数据
- 处理 API 令牌管理
SettingsService (设置服务)
- 应用程序配置管理
- 主题切换(亮色/暗色)
- 本地化设置
- 地址管理
HomeController (主页控制器)
- 获取滑块广告
- 获取分类列表
- 获取推荐沙龙
- 实现下拉刷新功能
EServiceController (服务控制器)
- 管理具体服务的详情
- 处理服务选项选择
- 收藏/取消收藏功能
- 预订数据准备
核心代码文件
| 文件路径 | 说明 |
|---|---|
lib/main.dart |
应用入口文件,初始化配置和路由 |
lib/firebase_options.dart |
Firebase 服务配置 |
lib/app/routes/app_pages.dart |
路由配置和页面导航 |
lib/app/services/auth_service.dart |
用户认证服务 |
lib/app/services/settings_service.dart |
应用设置服务 |
lib/app/modules/home/home_controller.dart |
主页业务逻辑 |
lib/app/modules/auth/auth_controller.dart |
认证业务逻辑 |
lib/app/modules/book_e_service/book_e_service_controller.dart |
服务预订逻辑 |
lib/app/modules/checkout/checkout_controller.dart |
结账支付逻辑 |
lib/app/models/ |
数据模型定义 |
技术栈
核心框架与库
| 依赖库 | 版本 | 用途 |
|---|---|---|
| get | 4.6.6 | 状态管理和路由 |
| get_storage | 2.1.1 | 本地存储 |
| dio | 4.0.6 | HTTP 客户端 |
| dio_http_cache | 0.3.0 | HTTP 缓存 |
| firebase_core | 2.29.0 | Firebase 核心 |
| firebase_auth | 4.19.1 | Firebase 认证 |
| cloud_firestore | 4.16.1 | Firestore 数据库 |
| firebase_messaging | 14.8.1 | 推送通知 |
| firebase_storage | 11.7.1 | 文件存储 |
| google_maps_flutter | 2.6.0 | 地图服务 |
| webview_flutter | 4.7.0 | WebView 组件 |
UI 组件库
- google_fonts: 字体支持
- cached_network_image: 图片缓存
- carousel_slider: 轮播图
- flutter_svg: SVG 渲染
- shimmer: 加载动画
- date_picker_timeline: 日期选择器
支付集成
- Stripe、PayPal、Razorpay、FlutterWave、PayStack、PayMongo
安全特性
- Firebase 认证: 安全的用户认证机制
- API 密钥管理: 保护后端 API 密钥
- 数据加密: 本地存储数据加密
- 权限管理: 运行时权限请求处理
集成服务
| 服务 | 用途 |
|---|---|
| Firebase | 认证、数据库、存储、推送通知 |
| Google Maps | 地理位置和地图服务 |
| Stripe/PayPal/Razorpay 等 | 全球化支付解决方案 |
| WebView | 嵌入式网页显示 |
总结
这是一个功能齐全的美容服务预订应用程序,采用现代 Flutter 开发实践。项目使用 GetX 框架进行状态和路由管理,集成了丰富的第三方服务(Firebase、Google Maps、多种支付方式),实现了完整的 O2O 服务预订流程。架构清晰,模块分离明确,具有良好的可维护性和扩展性。
优势特点:
- 模块化架构,易于添加新功能
- 支持多种支付网关,适合全球化部署
- 完善的国际化支持
- 灵活的主题系统
- 清晰的代码组织结构