立项背景
随着宠物经济的快速发展,传统宠物店面临以下挑战:
- 管理效率低下: 人工预约容易出错,客户信息分散
- 客户体验差: 电话预约不便,等待时间长
- 营销手段单一: 缺乏有效的客户留存和复购机制
- 数据分析缺失: 无法精准分析客户需求和业务趋势
项目目标
1. 提升运营效率: 通过数字化管理减少人工成本,提高服务效率
2. 优化客户体验: 提供便捷的在线预约和会员服务体验
3. 增强客户粘性: 建立完善的会员体系和营销机制
4. 数据驱动决策: 提供全面的数据分析支持业务决策
软件功能
门店管理功能
- 多门店支持
- 地理位置服务
- 营业时间管理
- 服务项目配置
预约管理功能
- 在线预约
- 智能排班
- 预约提醒
- 状态跟踪
会员管理功能
- 会员等级
- 积分系统
- 余额管理
- 优惠券
宠物档案功能
- 档案管理
- 健康记录
- 服务历史
- 健康提醒
支付结算功能
- 多种支付
- 自动结算
- 退款处理
- 财务统计
业务流程
1. 用户注册流程
A[用户打开小程序] --> B[微信授权登录]
B --> C[获取用户基本信息]
C --> D[创建用户账户]
D --> E[生成会员卡]
E --> F[完成注册]
2. 预约服务流程
A[选择门店] --> B[选择服务项目]
B --> C[选择宠物]
C --> D[选择技师]
D --> E[选择时间]
E --> F[确认预约信息]
F --> G[选择支付方式]
G --> H[完成支付]
H --> I[预约成功]
3. 会员充值流程
A[进入会员中心] --> B[选择充值金额]
B --> C[选择支付方式]
C --> D[发起支付]
D --> E[支付成功]
E --> F[更新会员余额]
F --> G[记录充值记录]
G --> H[充值完成]
4. 服务完成流程
A[技师开始服务] --> B[更新预约状态]
B --> C[服务完成]
C --> D[自动扣费]
D --> E[生成消费记录]
E --> F[发送完成通知]
F --> G[用户评价]
G --> H[更新技师评分]
架构设计原则
1. 分层架构: 采用经典的三层架构模式
- 表现层: 小程序端 + Web管理端
- 业务层: Node.js API服务
- 数据层: MySQL数据库
2. 微服务思想: 虽然是单体应用,但按业务模块划分
- 用户服务模块
- 预约服务模块
- 支付服务模块
- 通知服务模块
3. RESTful设计: API接口遵循REST规范
- 统一的URL设计
- 标准的HTTP状态码
- 一致的响应格式
4. 数据驱动: 以数据为中心的设计思路
- 完善的数据模型设计
- 数据一致性保证
- 数据安全和备份
1. 小程序端技术栈
- 开发框架: 微信原生小程序
- 样式处理: WXSS + 全局样式变量
- 状态管理: 页面级状态 + 全局数据
- 网络请求: 封装的request工具类
- 地理位置: 微信小程序地理位置API
- 支付功能: 微信小程序支付API
2. Web管理端技术栈
- 框架: Vue 3 + Composition API
- 构建工具: Vite (快速构建和热更新)
- UI组件: Element Plus (企业级组件库)
- 状态管理: Pinia (Vue 3推荐状态管理)
- 路由管理: Vue Router 4
- 图表组件: ECharts + Vue-ECharts
- HTTP客户端: Axios (请求拦截和响应处理)
3. 后端API技术栈
- 运行环境: Node.js 16+
- Web框架: Express.js (轻量级、灵活)
- 数据库: MySQL 8.0 (关系型数据库)
- ORM框架: Sequelize (对象关系映射)
- 身份认证: JWT (无状态认证)
- 参数验证: express-validator
- 日志管理: Winston (结构化日志)
- 安全防护: Helmet + CORS + Rate Limiting
难点:1、需要防止同一技师在同一时间被重复预约:预约时间冲突检测
2、会员等级升级规则复杂,需要考虑消费金额和积分:设计会员等级计算算法,使用数据库触发器自动更新
3、管理后台需要实时显示预约状态变化:管理后台需要实时显示预约状态变化;预约状态变化时广播
4、需要保护用户手机号、地址等敏感信息:数据脱敏处理,敏感数据加密存储
我的角色:全栈开发