333 lines
10 KiB
Markdown
333 lines
10 KiB
Markdown
# FischerX 开发底座初始化 Spec
|
||
|
||
## Why
|
||
|
||
Fischer公司需要一个适配国内运行环境的开发底座,类似John Rush的Mars Stack/Mars Foundation理念,用于快速构建业务模块,降低开发成本,提升开发效率。当前项目为全新项目,需要先明确整体架构和未来使用方式,然后根据国内环境逐一完善功能模块。
|
||
|
||
## What Changes
|
||
|
||
- 创建完整的Monorepo项目架构
|
||
- 搭建基础开发框架(前端、后端、数据库)
|
||
- 实现核心基础模块(用户管理、认证授权、权限控制、文件存储)
|
||
- 集成国内云服务和第三方服务(阿里云、微信支付、支付宝等)
|
||
- 建立完整的开发文档和规范体系
|
||
- 配置CI/CD流程和基础设施
|
||
|
||
## Impact
|
||
|
||
- Affected specs: 全新项目,无现有spec
|
||
- Affected code: 全新项目,需要从零开始构建
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: 项目架构设计
|
||
|
||
系统SHALL采用Monorepo架构,支持多应用、多包的统一管理。
|
||
|
||
#### Scenario: Monorepo架构搭建
|
||
- **WHEN** 项目初始化时
|
||
- **THEN** 系统应创建以下目录结构:
|
||
- apps/:应用层(web、admin、mobile、miniapp)
|
||
- packages/:共享包(core、ui、utils、types、config)
|
||
- services/:后端服务(api、worker、realtime)
|
||
- infra/:基础设施配置
|
||
- docs/:文档目录
|
||
- tools/:开发工具(包含CLI工具)
|
||
|
||
#### Scenario: 技术栈选择
|
||
- **WHEN** 选择技术栈时
|
||
- **THEN** 系统应采用以下技术组合(推荐Node.js全栈方案):
|
||
- 前端:Next.js 14+ + TypeScript + Tailwind CSS + Shadcn UI
|
||
- 后端:NestJS + Prisma + PostgreSQL
|
||
- 缓存:Redis
|
||
- 消息队列:RabbitMQ
|
||
- 存储:阿里云OSS
|
||
- 部署:Docker + Kubernetes + 阿里云ACK
|
||
|
||
### Requirement: 底座使用方式设计
|
||
|
||
系统SHALL提供灵活的底座使用方式,支持多种业务场景。
|
||
|
||
#### Scenario: Monorepo模式使用(适合同一团队的多项目)
|
||
- **WHEN** Fischer公司内部开发新业务系统时
|
||
- **THEN** 系统应支持:
|
||
- 在FischerX Monorepo中创建新应用(apps/<app-name>)
|
||
- 自动继承packages中的共享包(core、ui、utils等)
|
||
- 共享基础设施配置和CI/CD流程
|
||
- 统一维护和升级核心功能
|
||
|
||
#### Scenario: 独立项目模式使用(适合不同客户的项目)
|
||
- **WHEN** 为客户开发定制系统时
|
||
- **THEN** 系统应支持:
|
||
- 从FischerX模板创建独立项目
|
||
- 复制核心包到新项目(packages/core、packages/ui等)
|
||
- 自由定制业务功能,不影响其他项目
|
||
- 选择性更新底座功能
|
||
|
||
#### Scenario: API服务模式使用(适合轻量级集成)
|
||
- **WHEN** 需要快速集成底座功能时
|
||
- **THEN** 系统应支持:
|
||
- 部署FischerX作为共享服务(auth-service、file-service等)
|
||
- 新业务系统通过API调用底座功能
|
||
- 使用客户端SDK简化集成(@fischerx/client-sdk)
|
||
- 统一维护底座服务,自动升级
|
||
|
||
#### Scenario: CLI工具支持
|
||
- **WHEN** 开发者需要创建新项目或应用时
|
||
- **THEN** 系统应提供CLI工具(fischerx-cli),支持:
|
||
- 创建新应用:`fischerx-cli create-app <app-name> --type=web|admin|mobile|miniapp`
|
||
- 初始化独立项目:`fischerx-cli init <project-name> --template=standalone|monorepo|lightweight`
|
||
- 部署共享服务:`fischerx-cli deploy-service --services=<service-list>`
|
||
- 更新底座版本:`fischerx-cli update --scope=core|ui|all`
|
||
- 生成业务模块:`fischerx-cli generate-module <module-name> --template=crud|cms|ecommerce`
|
||
|
||
#### Scenario: 核心功能共享策略
|
||
- **WHEN** 设计底座功能模块时
|
||
- **THEN** 系统应明确区分:
|
||
- **核心共享功能**(packages/core):用户管理、认证授权、权限控制、文件存储、消息通知
|
||
- **可选共享功能**(packages/ui、packages/utils):UI组件、工具函数、类型定义
|
||
- **业务独立功能**(apps/<app-name>/src):业务逻辑、特定UI、定制功能
|
||
- **配置化驱动**:通过配置而非代码实现业务定制
|
||
|
||
#### Scenario: 版本管理和更新策略
|
||
- **WHEN** 底座功能更新时
|
||
- **THEN** 系统应支持:
|
||
- Monorepo模式:自动更新所有应用
|
||
- 独立项目模式:选择性更新(通过CLI工具)
|
||
- API服务模式:自动更新所有调用方
|
||
- 版本兼容性检查和迁移指南
|
||
|
||
### Requirement: 用户管理模块
|
||
|
||
系统SHALL提供完整的用户管理功能,支持国内主流认证方式。
|
||
|
||
#### Scenario: 用户注册登录
|
||
- **WHEN** 用户需要注册或登录时
|
||
- **THEN** 系统应支持以下认证方式:
|
||
- 手机号验证码登录(阿里云短信)
|
||
- 微信登录(OAuth)
|
||
- 支付宝登录(OAuth)
|
||
- 传统邮箱密码登录
|
||
|
||
#### Scenario: 实名认证
|
||
- **WHEN** 用户需要进行实名认证时
|
||
- **THEN** 系统应集成阿里云实名认证服务,支持:
|
||
- 身份证信息验证
|
||
- 人脸识别验证
|
||
- 身份证OCR识别
|
||
|
||
### Requirement: 权限控制模块
|
||
|
||
系统SHALL提供基于RBAC的权限控制机制。
|
||
|
||
#### Scenario: 角色权限管理
|
||
- **WHEN** 管理员需要配置权限时
|
||
- **THEN** 系统应支持:
|
||
- 角色创建和管理
|
||
- 权限分配和继承
|
||
- 资源访问控制
|
||
- 动态权限检查
|
||
|
||
#### Scenario: 权限验证
|
||
- **WHEN** 用户访问受保护资源时
|
||
- **THEN** 系统应验证用户权限,拒绝未授权访问
|
||
|
||
### Requirement: 认证授权模块
|
||
|
||
系统SHALL提供安全的认证授权机制。
|
||
|
||
#### Scenario: JWT Token管理
|
||
- **WHEN** 用户登录成功时
|
||
- **THEN** 系统应生成JWT Token,包含:
|
||
- 用户基本信息
|
||
- 权限信息
|
||
- 过期时间
|
||
- 签名验证
|
||
|
||
#### Scenario: Session管理
|
||
- **WHEN** 用户活跃时
|
||
- **THEN** 系统应管理用户会话,支持:
|
||
- 会话创建和销毁
|
||
- 会话刷新
|
||
- 多设备登录管理
|
||
- 登录状态同步
|
||
|
||
### Requirement: 文件存储模块
|
||
|
||
系统SHALL提供统一的文件存储服务,适配国内云存储。
|
||
|
||
#### Scenario: 对象存储集成
|
||
- **WHEN** 用户上传文件时
|
||
- **THEN** 系统应支持:
|
||
- 阿里云OSS存储
|
||
- 腾讯云COS存储(备选)
|
||
- MinIO私有化部署(备选)
|
||
- 文件上传、下载、删除
|
||
- 图片处理(压缩、裁剪、水印)
|
||
- CDN加速
|
||
|
||
#### Scenario: 文件访问控制
|
||
- **WHEN** 用户访问文件时
|
||
- **THEN** 系统应验证访问权限,生成临时访问URL
|
||
|
||
### Requirement: 支付系统模块
|
||
|
||
系统SHALL集成国内主流支付渠道。
|
||
|
||
#### Scenario: 微信支付集成
|
||
- **WHEN** 用户选择微信支付时
|
||
- **THEN** 系统应支持:
|
||
- 扫码支付
|
||
- H5支付
|
||
- 小程序支付
|
||
- 订单创建和查询
|
||
- 退款处理
|
||
|
||
#### Scenario: 支付宝支付集成
|
||
- **WHEN** 用户选择支付宝支付时
|
||
- **THEN** 系统应支持:
|
||
- 扫码支付
|
||
- H5支付
|
||
- 订单创建和查询
|
||
- 退款处理
|
||
|
||
### Requirement: 消息通知模块
|
||
|
||
系统SHALL提供多渠道消息通知服务。
|
||
|
||
#### Scenario: 短信通知
|
||
- **WHEN** 需要发送短信通知时
|
||
- **THEN** 系统应集成阿里云短信服务,支持:
|
||
- 验证码发送
|
||
- 通知短信发送
|
||
- 营销短信发送(需审核)
|
||
- 发送记录查询
|
||
|
||
#### Scenario: 推送通知
|
||
- **WHEN** 需要发送推送通知时
|
||
- **THEN** 系统应支持:
|
||
- 小程序推送
|
||
- App推送(阿里云移动推送)
|
||
- 站内消息推送
|
||
|
||
### Requirement: 内容审核模块
|
||
|
||
系统SHALL提供内容审核服务,满足国内合规要求。
|
||
|
||
#### Scenario: 文本审核
|
||
- **WHEN** 用户提交文本内容时
|
||
- **THEN** 系统应调用阿里云内容审核服务,检测:
|
||
- 敏感词过滤
|
||
- 政治敏感内容
|
||
- 色情暴力内容
|
||
- 广告垃圾内容
|
||
|
||
#### Scenario: 图片审核
|
||
- **WHEN** 用户上传图片时
|
||
- **THEN** 系统应调用阿里云图片审核服务,检测:
|
||
- 色情图片
|
||
- 暴力图片
|
||
- 政治敏感图片
|
||
- 广告图片
|
||
|
||
### Requirement: 监控告警模块
|
||
|
||
系统SHALL提供完善的监控告警体系。
|
||
|
||
#### Scenario: 性能监控
|
||
- **WHEN** 系统运行时
|
||
- **THEN** 系统应监控:
|
||
- 应用性能指标(响应时间、吞吐量)
|
||
- 资源使用情况(CPU、内存、磁盘)
|
||
- 错误率和异常情况
|
||
- 用户行为数据
|
||
|
||
#### Scenario: 告警通知
|
||
- **WHEN** 监控指标异常时
|
||
- **THEN** 系统应发送告警通知:
|
||
- 邀请相关人员
|
||
- 提供告警详情
|
||
- 建议处理方案
|
||
|
||
### Requirement: 开发文档体系
|
||
|
||
系统SHALL提供完整的开发文档。
|
||
|
||
#### Scenario: 架构文档
|
||
- **WHEN** 开发者需要了解架构时
|
||
- **THEN** 系统应提供:
|
||
- 整体架构设计文档
|
||
- 模块划分说明
|
||
- 技术选型说明
|
||
- 数据流图
|
||
|
||
#### Scenario: API文档
|
||
- **WHEN** 开发者需要调用API时
|
||
- **THEN** 系统应提供:
|
||
- API接口文档
|
||
- 参数说明
|
||
- 返回值说明
|
||
- 错误码说明
|
||
- 示例代码
|
||
|
||
#### Scenario: 开发指南
|
||
- **WHEN** 新开发者加入时
|
||
- **THEN** 系统应提供:
|
||
- 快速开始指南
|
||
- 开发规范文档
|
||
- 最佳实践指南
|
||
- 常见问题解答
|
||
|
||
### Requirement: CI/CD流程
|
||
|
||
系统SHALL建立自动化CI/CD流程。
|
||
|
||
#### Scenario: 代码提交
|
||
- **WHEN** 开发者提交代码时
|
||
- **THEN** 系统应自动执行:
|
||
- 代码规范检查
|
||
- 类型检查
|
||
- 单元测试
|
||
- 构建验证
|
||
|
||
#### Scenario: 自动部署
|
||
- **WHEN** 代码合并到主分支时
|
||
- **THEN** 系统应自动部署:
|
||
- 开发环境部署
|
||
- 测试环境部署
|
||
- 生产环境部署(需审批)
|
||
|
||
### Requirement: 国内环境适配
|
||
|
||
系统SHALL全面适配国内运行环境。
|
||
|
||
#### Scenario: 云服务适配
|
||
- **WHEN** 使用云服务时
|
||
- **THEN** 系统应优先使用国内云服务:
|
||
- 阿里云(首选)
|
||
- 腾讯云(备选)
|
||
- 华为云(备选)
|
||
|
||
#### Scenario: 网络环境适配
|
||
- **WHEN** 部署应用时
|
||
- **THEN** 系统应优化国内网络:
|
||
- 使用国内CDN加速
|
||
- 配置国内DNS解析
|
||
- 多地域部署(华北、华东、华南)
|
||
|
||
#### Scenario: 合规性适配
|
||
- **WHEN** 系统上线时
|
||
- **THEN** 系统应满足国内合规要求:
|
||
- ICP备案
|
||
- 数据本地化存储
|
||
- 实名认证要求
|
||
- 内容审核要求
|
||
- 数据安全法要求
|
||
|
||
## MODIFIED Requirements
|
||
|
||
无修改需求(全新项目)
|
||
|
||
## REMOVED Requirements
|
||
|
||
无删除需求(全新项目) |