Penny Lens 系统架构

2025年1月27日
8 分钟阅读
作者:Penny Lens Team

Penny Lens 系统架构

🏗️ 整体架构

系统组成

Penny Lens 是一个基于复式记账法的家庭财务管理系统,由三个核心组件构成:

1. Penny Lens PC (桌面端)

  • 技术栈: Nuxt 4 + Vue 3 + TypeScript + Ant Design Vue + UnoCSS
  • 功能: 完整的财务管理功能,包括记账、资产管理、预算控制、统计分析等
  • 特点: 功能最全面,适合深度财务管理和数据分析

2. Penny Lens Frontend (移动端)

  • 技术栈: UniApp + Vue 3 + TypeScript + wot-design-uni + Pinia
  • 功能: 移动端财务管理,支持多平台部署(微信小程序、支付宝小程序、H5、App)
  • 特点: 跨平台支持,移动端优化,适合日常记账和快速操作

3. Penny Lens Serverless (服务端)

  • 技术栈: 支付宝小程序云 Serverless + TypeScript + MongoDB
  • 功能: 统一的后端服务,提供API接口、数据存储、业务逻辑处理
  • 特点: 云原生架构,高可用性,自动扩缩容

架构图

┌─────────────────────────────────────────────────────────────────┐
│ Penny Lens 系统架构 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ PC 客户端 │ │ 移动端客户端 │ │ 服务端 │ │
│ │ │ │ │ │ │ │
│ │ Nuxt 4 │ │ UniApp │ │ Serverless │ │
│ │ Vue 3 │ │ Vue 3 │ │ TypeScript │ │
│ │ TypeScript │ │ TypeScript │ │ MongoDB │ │
│ │ Ant Design │ │ wot-design │ │ JWT Auth │ │
│ │ UnoCSS │ │ Pinia │ │ Cloud Function │ │
│ │ Pinia │ │ Iconify │ │ Scheduled Jobs │ │
│ │ ECharts │ │ Multi-Platform│ │ Encryption │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │ │ │ │
│ │ │ │ │
│ └────────────────────────┼────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 统一后端 API 服务 │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │ │
│ │ │ 用户管理 │ │ 资产管理 │ │ 记账管理 │ │ 统计报表 │ │ │
│ │ │ User API │ │ Asset API │ │Accounting API│ │Stats API│ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────┘ │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │ │
│ │ │ 预算管理 │ │ 订阅管理 │ │ 储蓄游戏 │ │ 短链接 │ │ │
│ │ │ Budget API │ │Subscription │ │ Savings API │ │Short API│ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 数据存储层 │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │ │
│ │ │ 用户数据 │ │ 资产数据 │ │ 记账数据 │ │ 其他数据 │ │ │
│ │ │ Users │ │ Assets │ │ Accounting │ │ Others │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

🔄 数据流架构

数据流向

用户操作 → 客户端 → API网关 → 云函数 → 数据库
↓ ↓ ↓ ↓ ↓
界面交互 数据验证 路由分发 业务逻辑 数据存储
↓ ↓ ↓ ↓ ↓
用户反馈 状态管理 权限验证 数据处理 数据同步

数据同步

实时同步

  • 用户操作: 用户操作实时同步到数据库
  • 状态更新: 客户端状态实时更新
  • 数据一致性: 保证数据一致性

批量同步

  • 定时任务: 定时同步数据
  • 数据备份: 定期数据备份
  • 统计分析: 定期统计分析

🔐 认证架构

统一认证

JWT Token 认证

// 认证流程
1. 用户登录 → 验证凭据 → 生成JWT Token
2. 客户端存储Token → 请求时携带Token
3. 服务端验证Token → 返回用户信息
4. Token过期 → 刷新Token或重新登录

多端认证

  • PC端: 用户名/密码登录
  • 移动端: 第三方登录(微信、支付宝)
  • 统一用户: 同一用户多端数据同步

权限控制

角色权限

  • 普通用户: 基础功能权限
  • 高级用户: 高级功能权限
  • 管理员: 系统管理权限

功能权限

  • 记账权限: 记账功能权限
  • 资产管理: 资产管理权限
  • 统计分析: 统计分析权限
  • 系统设置: 系统设置权限

📊 业务架构

核心业务模块

1. 用户管理模块

  • 用户注册: 用户注册和验证
  • 用户登录: 用户登录和认证
  • 用户信息: 用户信息管理
  • 权限控制: 用户权限管理

2. 资产管理模块

  • 资产类型: 现金、银行卡、投资等
  • 资产操作: 资产增删改查
  • 余额管理: 资产余额计算
  • 资产统计: 资产统计分析

3. 记账管理模块

  • 收入记账: 收入记录管理
  • 支出记账: 支出记录管理
  • 转账记账: 转账记录管理
  • 记账统计: 记账统计分析

4. 预算管理模块

  • 预算设置: 预算目标设置
  • 预算监控: 预算执行监控
  • 预算分析: 预算分析报告
  • 预算提醒: 预算超支提醒

5. 统计分析模块

  • 收支统计: 收支统计分析
  • 资产统计: 资产统计分析
  • 趋势分析: 财务趋势分析
  • 报表生成: 财务报表生成

6. 订阅管理模块

  • 订阅设置: 订阅服务设置
  • 订阅监控: 订阅状态监控
  • 订阅提醒: 订阅到期提醒
  • 订阅统计: 订阅统计分析

7. 储蓄游戏模块

  • 虚拟交易: 虚拟股票交易
  • 排行榜: 用户排行榜
  • 游戏统计: 游戏数据统计
  • 奖励系统: 游戏奖励系统

8. 短链接模块

  • 链接生成: 短链接生成
  • 链接管理: 短链接管理
  • 访问统计: 链接访问统计
  • 链接分析: 链接效果分析

🔧 技术架构

前端架构

PC端架构

┌─────────────────────────────────────────────────────────────┐
│ Penny Lens PC 架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
│ │ 页面层 │ │ 组件层 │ │ 服务层 │ │
│ │ │ │ │ │ │ │
│ │ Dashboard │ │ StatCard │ │ User API │ │
│ │ Assets │ │ AssetCard │ │ Asset API │ │
│ │ Accounting │ │ Transaction │ │ Budget API │ │
│ │ Budget │ │ BudgetForm │ │ Stats API │ │
│ │ Statistics │ │ Chart │ │ ... │ │
│ └─────────────────┘ └─────────────────┘ └─────────────┘ │
│ │ │ │ │
│ └────────────────────────┼────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 状态管理层 │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ User Store │ │ Asset Store │ │ App Store │ │ │
│ │ │ (Pinia) │ │ (Pinia) │ │ (Pinia) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

移动端架构

┌─────────────────────────────────────────────────────────────┐
│ Penny Lens Frontend 架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
│ │ 页面层 │ │ 组件层 │ │ 服务层 │ │
│ │ │ │ │ │ │ │
│ │ Dashboard │ │ StatCard │ │ User API │ │
│ │ Assets │ │ AssetCard │ │ Asset API │ │
│ │ Accounting │ │ Transaction │ │ Budget API │ │
│ │ Budget │ │ BudgetForm │ │ Stats API │ │
│ │ Statistics │ │ Chart │ │ ... │ │
│ └─────────────────┘ └─────────────────┘ └─────────────┘ │
│ │ │ │ │
│ └────────────────────────┼────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 状态管理层 │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ User Store │ │ Asset Store│ │ App Store │ │ │
│ │ │ (Pinia) │ │ (Pinia) │ │ (Pinia) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

后端架构

服务端架构

┌─────────────────────────────────────────────────────────────┐
│ Penny Lens Serverless 架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
│ │ 控制器层 │ │ 服务层 │ │ 数据层 │ │
│ │ │ │ │ │ │ │
│ │ UserController│ │ UserService │ │ MongoDB │ │
│ │ AssetController│ │ AssetService │ │ Collections│ │
│ │ AccountingCtrl │ │ AccountingSvc │ │ Indexes │ │
│ │ BudgetController│ │ BudgetService │ │ Transactions│ │
│ │ ... │ │ ... │ │ ... │ │
│ └─────────────────┘ └─────────────────┘ └─────────────┘ │
│ │ │ │ │
│ └────────────────────────┼────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 云函数层 │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 路由处理 │ │ 权限验证 │ │ 异常处理 │ │ │
│ │ │ Router │ │ Auth │ │ Exception │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

🔄 集成架构

客户端集成

数据同步

  • 实时同步: 用户操作实时同步
  • 离线同步: 离线数据同步
  • 冲突解决: 数据冲突解决

状态管理

  • 统一状态: 多端状态统一
  • 状态同步: 状态实时同步
  • 状态持久化: 状态本地持久化

服务端集成

API集成

  • 统一接口: 统一的API接口
  • 版本管理: API版本管理
  • 接口文档: 完整的接口文档

数据集成

  • 数据模型: 统一的数据模型
  • 数据验证: 数据验证和清理
  • 数据转换: 数据格式转换

📊 性能架构

性能优化

前端性能

  • 代码分割: 按需加载代码
  • 缓存策略: 合理的缓存策略
  • 资源优化: 资源压缩和优化
  • 懒加载: 组件和路由懒加载

后端性能

  • 数据库优化: 数据库查询优化
  • 缓存机制: 数据缓存机制
  • 异步处理: 异步任务处理
  • 负载均衡: 负载均衡策略

监控架构

系统监控

  • 性能监控: 系统性能监控
  • 错误监控: 错误日志监控
  • 资源监控: 资源使用监控
  • 业务监控: 业务指标监控

告警机制

  • 实时告警: 实时告警机制
  • 分级告警: 分级告警策略
  • 告警处理: 告警处理流程
  • 告警恢复: 告警恢复机制

🔒 安全架构

安全策略

数据安全

  • 数据加密: 敏感数据加密
  • 传输安全: 数据传输安全
  • 存储安全: 数据存储安全
  • 访问控制: 数据访问控制

系统安全

  • 身份认证: 用户身份认证
  • 权限控制: 细粒度权限控制
  • 安全审计: 安全操作审计
  • 漏洞防护: 安全漏洞防护

合规性

数据合规

  • 数据保护: 用户数据保护
  • 隐私政策: 隐私政策合规
  • 数据删除: 数据删除机制
  • 数据导出: 数据导出功能

安全合规

  • 安全标准: 安全标准合规
  • 安全测试: 安全测试验证
  • 安全培训: 安全培训教育
  • 安全审计: 安全审计检查

🚀 部署架构

部署策略

环境管理

  • 开发环境: 开发测试环境
  • 测试环境: 功能测试环境
  • 预生产环境: 生产环境预演
  • 生产环境: 正式生产环境

部署方式

  • 蓝绿部署: 零停机部署
  • 灰度发布: 逐步发布策略
  • 回滚机制: 快速回滚机制
  • 监控告警: 部署监控告警

运维架构

运维管理

  • 自动化运维: 自动化运维流程
  • 监控告警: 全面监控告警
  • 日志管理: 日志收集分析
  • 备份恢复: 数据备份恢复

运维工具

  • 监控工具: 系统监控工具
  • 日志工具: 日志分析工具
  • 部署工具: 自动化部署工具
  • 测试工具: 自动化测试工具

📈 扩展架构

功能扩展

模块化设计

  • 插件系统: 可扩展的插件系统
  • 模块化: 模块化功能设计
  • 接口标准化: 标准化接口设计
  • 版本兼容: 版本兼容性管理

第三方集成

  • 银行接口: 银行API集成
  • 支付接口: 支付服务集成
  • 数据源: 外部数据源集成
  • 服务集成: 第三方服务集成

技术扩展

技术升级

  • 框架升级: 技术框架升级
  • 工具升级: 开发工具升级
  • 服务升级: 云服务升级
  • 安全升级: 安全机制升级

架构演进

  • 微服务化: 微服务架构演进
  • 容器化: 容器化部署
  • 云原生: 云原生架构
  • 智能化: AI和机器学习集成

重要提醒:

  1. 保持架构的一致性和可扩展性
  2. 确保各组件间的良好协作
  3. 持续优化系统性能和用户体验
  4. 建立完善的监控和运维体系
  5. 关注安全性和合规性要求