rwadurian/backend/services/presence-service/docs/README.md

137 lines
3.0 KiB
Markdown

# Presence Service 文档中心
## 文档目录
| 文档 | 描述 | 适用读者 |
|-----|------|---------|
| [ARCHITECTURE.md](./ARCHITECTURE.md) | 系统架构设计 | 架构师、Tech Lead |
| [API.md](./API.md) | API 接口规范 | 前端/客户端开发者 |
| [DEVELOPMENT.md](./DEVELOPMENT.md) | 开发指南 | 后端开发者 |
| [TESTING.md](./TESTING.md) | 测试策略与实践 | 开发者、QA |
| [DEPLOYMENT.md](./DEPLOYMENT.md) | 部署运维指南 | DevOps、SRE |
---
## 快速导航
### 我是开发者
1. 阅读 [ARCHITECTURE.md](./ARCHITECTURE.md) 了解系统架构
2. 阅读 [DEVELOPMENT.md](./DEVELOPMENT.md) 搭建开发环境
3. 阅读 [TESTING.md](./TESTING.md) 了解测试规范
### 我是前端/客户端开发者
1. 阅读 [API.md](./API.md) 了解接口规范
2. 查看 SDK 示例代码
### 我是 DevOps/SRE
1. 阅读 [DEPLOYMENT.md](./DEPLOYMENT.md) 了解部署方案
2. 配置监控和告警
---
## 服务概览
**Presence Service** 是用户在线状态检测和活跃度分析微服务。
### 核心功能
- 实时在线状态检测 (心跳机制)
- 日活统计 (DAU)
- 在线人数历史查询
- 分析事件收集
### 技术栈
- **运行时**: Node.js 20
- **框架**: NestJS 10
- **语言**: TypeScript 5
- **数据库**: PostgreSQL 15 + Redis 7
- **消息队列**: Kafka
- **ORM**: Prisma 5
### 架构模式
- DDD (领域驱动设计)
- 六边形架构 (Hexagonal Architecture)
- CQRS (命令查询职责分离)
---
## 快速开始
```bash
# 克隆项目
git clone <repository-url>
cd backend/services/presence-service
# 安装依赖
npm install
# 启动基础设施
docker compose -f docker-compose.dev.yml up -d
# 初始化数据库
npx prisma db push
# 启动服务
npm run start:dev
```
---
## 测试
```bash
# 全部测试
npm test
# 单元测试
npm run test:unit
# 集成测试
npm run test:integration
# E2E 测试
npm run test:e2e
```
### 测试统计
| 类型 | 套件数 | 用例数 |
|-----|-------|-------|
| 单元测试 | 9 | 123 |
| 集成测试 | 3 | 22 |
| E2E 测试 | 3 | 20 |
| **总计** | **15** | **165** |
---
## 目录结构
```
presence-service/
├── docs/ # 文档 (当前目录)
├── src/
│ ├── api/ # API 层 (Controllers, DTOs)
│ ├── application/ # 应用层 (Commands, Queries)
│ ├── domain/ # 领域层 (Entities, Value Objects, Services)
│ ├── infrastructure/ # 基础设施层 (Repositories, Redis, Kafka)
│ └── shared/ # 共享模块 (Filters, Guards, Utils)
├── test/
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ └── e2e/ # E2E 测试
├── prisma/ # Prisma Schema
└── docker-compose*.yml # Docker 配置
```
---
## 联系方式
- **技术负责人**: [name@example.com]
- **问题反馈**: [GitHub Issues]