docs: 重构开发者文档骨架并增强入口导航

This commit is contained in:
lzh
2026-04-06 00:22:42 +08:00
parent 5ea1a0c70c
commit 2e9372bfac
28 changed files with 836 additions and 650 deletions

View File

@@ -0,0 +1,98 @@
# AIOT 文档建设蓝图与执行方案
## A. 《AIOT 文档建设蓝图》
### 1. 文档建设目标
- **终结“代码与文档脱节”**将文档确立为业务流转、Agent协作、新人入职的核心资产与代码同等对待。
- **精准映射项目进度**:清晰展现一阶段(保洁/安保/Ops核心已完成并转入迭代的现状以及 4 月份向 IoT 业务转移的重心。
- **提供多维立体视角**:通过分层结构,满足产品看业务、前端/移动端看接口联调、后端看底层实现、运维看部署排障的不同诉求。
### 2. 文档分层设计
结合真实的 AIOT 场景,建议采用**四维分层模型**
- **高维(全局/业务层)**:业务域蓝图、系统总体架构、全端进度状态矩阵(核心关注:进度与可用性)。
- **中维(链路/协作层)**跨端业务串联IoT 报警 -> Ops 工单生成 -> 移动端抢单的全链路),重在时序与交互。
- **低维(实现/工程层)**:各主仓(后端 Java、前端 Vue、移动端 UniApp的落地细节、核心包/类索引。
- **基建(规范/字典层)**:术语表、核心表结构、枚举字典字典、前后端规约。
### 3. 建议目录结构(整合优化版)
针对现有结构过于零散且存在大量“空壳”的问题,建议调整如下:
```text
/开发者文档
├── 00-项目总览与进度 (新增,存放核心进度矩阵和阅读向导)
├── 01-业务领域与架构 (合并原 01/02)
├── 02-后端开发 (AIOT-Cloud, 针对 java17 仓)
├── 03-前端开发 (Vben Admin, 针对 vue 仓)
├── 04-移动端开发 (UniApp, 针对 uniapp 仓)
├── 05-IoT生态接入 (应对 4 月重点:硬件对接、场景引擎)
├── 06-API规范与数据字典 (原 07/08 简化合并)
├── 07-DevOps运维保障 (原 09部署与排障)
└── 08-开发协作规范 (原 10/11/12/13/14 整合,收敛模板味)
```
### 4. 目录撰写准则(写什么 / 不写什么)
- **写什么**:核心接口名、关键表名/状态枚举(带上代码文件路径)、主干流程梳理、复杂链路的源码入口导读。
- **不写什么**:大段易变的业务 CRUD 流水账、未经产品确认的未来脑洞、大篇幅的框架官方文档搬运(给链接即可)。
### 5. 必须图文化的内容
- **复杂状态机流转**:例如 Ops 工单的“创建-派发-接单-执行-核验”生命周期,必须有流程图。
- **核心联动链路**:例如 4 月重点“IoT设备联动Ops引擎”的跨端全链路。
- **系统架构与网络拓扑**:梳理各微服务、网关、端侧的交互边界。
### 6. 项目当前进度的表达机制
建立 `《00-项目能力与进度状态矩阵.md》`,按照模块进行网格化管理:
- 使用标签体系:`[✅生产可用] [🚀迭代中] [🚧开发中] [❌未开始]`
- 示例:
- `Ops-保洁业务`:后端 `[✅生产可用]` / 移动端 `[🚀迭代中]`
- `Ops-安保工单`:后端 `[✅生产可用]` / 移动端 `[✅生产可用]`
- `IoT-设备直连`:后端 `[🚧开发中]` (4月主线)
### 7. 文档与代码保持同步的机制
- **Single Source of Truth**:诸如工单状态字典、错误码等,以代码枚举为准,文档仅做原理解释和代码索引(指出枚举类所在包)。
- **流程级约束**涉及核心业务流如状态机的修改PR/Commit 必须包含对应的文档更新。
- **Agent 协作约定**:给协作 Agent 派发任务时,强制附加指令:“如修改核心逻辑,请一并修改 `XXX.md` 中对应的段落”。
### 8. 两天落地优先级计划
- **Day 1重组框架与沉淀一阶段资产**
- 调整物理目录,清理空壳文件。
- 创建《00-AIOT项目能力状态矩阵》盘点一阶段 Ops、保洁、安保进度。
- 梳理现有后端的长篇文档,提取状态图和架构图。
- **Day 2打通端侧与攻坚 IoT 准备**
- 补充前端Vben和移动端UniApp的工单对齐文档。
- 为 4 月 IoT 主线搭建《IoT与Ops联动链路跨端设计》骨架。
---
## B. 《第一批优先文档清单》
| 序号 | 文档名称 | 目标与核心内容 | 目标读者 | 建议深度 | 需配图 |
|---|---|---|---|---|---|
| 1 | `00-AIOT项目能力状态矩阵` | **明确当前项目阶段**:盘点 Ops/保洁/安保 完成度,规划 IoT 阶段。 | 全员 | 业务级 | ❌ 否(表格) |
| 2 | `01-总体架构与系统交互边界` | **理清宏观上下游**:明确 Cloud、UI、UniApp 之间的调用关系与鉴权方案。 | 新人,Agent,各端开发 | 架构级 | ✅ 是 |
| 3 | `02-后端/Ops工单生命周期与状态机` | **一阶段核心收口**:讲透工单怎么流转,包含派单、队列、抢单逻辑。 | 后端,测试,产品 | 核心代码级 | ✅ 是 |
| 4 | `02-后端/IoT与Ops联动链路设计` | **4月核心前置指导**:规则引擎如何触发报警并生成工单下发。 | 后端,IoT侧 | 主体实现级 | ✅ 是 |
| 5 | `03-前端/工单管理与工作台接入指北` | **解决前端文档缺失**:结合 Vben 结构说明如何开发工单后台页面。 | 前端开发 | 核心代码级 | ✅ 是(区域图) |
| 6 | `04-移动端/保洁与安保抢单链路` | **拉通移动端进度**:结合 UniApp 说明接单、上报、核验的 App 侧逻辑。 | 移动端开发 | 核心代码级 | ✅ 是(时序图) |
| 7 | `05-IoT接入协议与硬件映射规范` | **指导硬件联调**:规范物模型、指令上下行协议格式。 | 硬件,后端 | 源码导读级 | ✅ 是 |
| 8 | `08-开发协作与文档更新规约` | **解决同步痛点**:明确代码变动时文档的维护边界和提测流程。 | 研发全员 | 业务级 | ❌ 否 |
---
## C. 当前文档库现状诊断与重构建议
经过对 `/mnt/c/document/AIOT/开发者文档` 目录的扫描与分析:
### 1. “干货”文档(接近真实项目,需保留并优化):
- **目录 `03-后端开发`** 下的内容具有极高的价值:
- `04-Ops工单生命周期与状态机.md` (15KB+)
- `05-Ops派单、队列与执行人状态.md` (13KB+)
- `06-IoT设备、规则与场景引擎.md` (12KB+)
- `07-IoT与Ops联动链路.md` (12KB+)
- **建议**:这些文件详细描述了业务链路,是项目的精华。建议进一步提取其中的状态枚举和核心类名,并在适当位置补充 Mermaid 状态图和时序图。
### 2. “模板味”极重的空壳文件(建议重写/重构):
- **目录 `04-前端` / `05-移动端` / `06-物联网` / `07-API` / `08-数据库`**
- 这些目录下的文件(如 `01-前端工程结构与协作边界.md` 等)大小均不足 1KB通篇只有骨架和套话完全脱离了真实的 `yudao-ui-admin-vben``aiot-uniapp` 仓。
- **建议**:立刻停止堆砌目录。将前端/移动端文档与现有的代码目录结构深度绑定写明“工单列表页代码在哪”、“发起API请求的封装类叫什么”落实到“核心代码级”。
- **零碎的支撑目录 (`10-编码规范` / `12-教程示例` / `13-常见问题` / `14-术语表`)**
- 文件细碎且内容空泛。
- **建议**:将它们统一收敛到合并后的 `08-开发协作规范` 中,减少用户查找的认知负担。

View File

@@ -0,0 +1,45 @@
# 00-阅读地图 (Reading Roadmap)
本文档是 AIoT 项目的 onboarding 核心指南。不要像无头苍蝇一样翻阅所有文档,请对号入座,根据你的角色和当前任务,按照推荐的先后顺序和时间分配进行阅读。
---
## 🐣 新人 Onboarding 路线 (建议耗时30分钟)
无论你是什么岗位,入职第一天请先花半小时理清全局:
1. **[必读] README.md** (5分钟):了解文档中心定位和项目大方向。
2. **[必读] 02-项目当前状态.md** (10分钟)了解目前团队重点在打哪场仗Ops 还是 IoT系统哪些部分是可用的。
3. **[必读] 03-代码仓与协作边界.md** (10分钟):认清三大主仓 (`aiot-platform-cloud` / `yudao-ui-admin-vben` / `aiot-uniapp`) 的边界,知道在哪提 PR在哪报 Bug。
4. **[选读] 08-附录/术语表** (5分钟):快速扫一眼行业黑话(如果有),防止开会听天书。
---
## 💻 研发人员路线 (建议耗时:半天)
当你准备 clone 代码开始干活时,请花半天时间吃透相关规范:
### 后端开发 (Backend)
1. **07-协作规范/01-不同项目的基本规范.md**:重点看**后端规范**,理解分包逻辑、异常处理和日志要求。
2. **06-平台支撑/**查阅本地环境配置、Nacos/Redis/MySQL 连接说明。
3. **01-业务与架构/**:阅读全局架构图,理解服务拆分。
4. **具体业务模块**:如果你负责 Ops保洁/安保),去 `02-Ops领域/` 找业务方案;如果负责硬件,去 `03-IoT领域/`
### 前端/移动端开发 (FE/Mobile)
1. **07-协作规范/01-不同项目的基本规范.md**:重点看**前端/移动端规范**,理解目录划分和状态管理。
2. **04-前端开发/ 或 05-移动端开发/**查阅具体框架Vben / Uniapp的脚手架运行指南与组件规范。
3. **接口契约**:查阅前后端联调的 YApi/Swagger 地址及通用的错误码处理逻辑。
---
## 🧪 测试与联调路线 (针对 QA & 测试同学)
当你准备介入测试时,你需要关注系统的“流转与可用性”:
1. **02-项目当前状态.md**:明确哪些模块是“已完成可测”的,哪些还在“建设中”,避免提无效 Bug。
2. **03-代码仓与协作边界.md**:当你发现一个 Bug需要根据此文档快速判断是前端展示问题、接口报错还是设备端无响应从而将 Bug 指派给对应仓库的负责人。
3. **业务方案的“测试用例基准”**:深入阅读 `02-Ops领域``03-IoT领域` 中的具体设计文档,重点看业务流转图(状态机)和前置条件。
---
## 🛠️ 运维与排障路线 (针对 DevOps & SRE)
线上部署或处理紧急故障时的速查路径:
1. **06-平台支撑/CI-CD规范.md**(如已补充):查看发布流水线和环境变量注入规则。
2. **06-平台支撑/中间件配置.md**核对消息队列RabbitMQ/Kafka、Redis 集群、数据库路由等基础依赖。
3. **07-协作规范/01-不同项目的基本规范.md**:重点查看后端**日志规范**章节,了解遇到问题时该去哪里抓取 TraceId如何通过日志定位链路。
4. **03-代码仓与协作边界.md**:通过异常堆栈中的包名,快速对应到对应的代码仓库。

View File

@@ -0,0 +1,11 @@
# 01-项目总览
## 项目背景
本项目是一个综合性的 AIoT 平台旨在结合物联网设备与日常运营Ops提供高效、智能的管理方案。
## 核心业务板块
- **Ops 领域**:工单、保洁、安保等日常运营管理(一阶段核心业务)。
- **IoT 领域**:设备接入、数据采集与控制(后续重点)。
## 目标受众
- 系统架构师、后端研发、前端研发、移动端研发及产品经理。

View File

@@ -0,0 +1,34 @@
# 02-项目当前状态
本文档实时反映 AIoT 项目的真实进度基线,帮助团队在联调和规划时拉齐认知,避免“以为做完了实际还没开始”的坑。
## 1. 核心业务节奏Ops 与 IoT 的关系
当前项目处于**「Ops 深化迭代」与「IoT 攻坚破局」的双线交汇期**。
- **Ops 领域(工单、保洁、安保)**:是第一阶段的核心,目前**基础建设已完成**。它已经具备了闭环能力,当前的节奏是持续的业务逻辑迭代、体验优化和边缘场景覆盖。
- **IoT 领域(设备接入、物模型)**:是接下来的**核心战场**。前期的重心在 Ops 上,现在研发火力正逐渐向 IoT 倾斜,目标是打通硬件到平台的双向控制链路,让 Ops 能够真正与物理设备联动。
## 2. 业务与功能状态矩阵
以下是系统核心域的当前成熟度评估,分为三个维度:
- **业务能力状态**:该领域的业务逻辑是否闭环?
- **功能状态**:代码实现了多少?
- **可用状态**:能否在线上/测试环境跑通?
### [A] Ops 领域(工单/保洁/安保)
- **业务能力状态**:🟢 **基础闭环**。保洁与安保的派单、抢单、执行、验收标准主干流程已确立。
- **功能状态**:🟡 **持续迭代**。RBAC 权限、工单流转、基础通知等核心功能已落地;复杂状态机流转、排班策略、数据看板仍在开发或迭代中。
- **可用状态**:🟢 **核心可用**。前后端已能进行主流程联调,可支撑基础的业务演示与测试。
### [B] IoT 领域(设备/物模型/通信)
- **业务能力状态**:🟡 **设计与探索中**。物模型标准、设备接入协议MQTT等、数据流向规则正在制定。
- **功能状态**:🔴 **起步阶段**。设备注册、网关对接、指令下发等底层链路处于 Demo 或初期研发阶段。
- **可用状态**:🔴 **不可用/内部测试**。目前尚无法提供稳定的前后端联动环境,需依赖 Mock 数据。
### [C] 平台支撑与基础设施
- **业务能力状态**:🟢 **标准已定**。开发规范、认证鉴权、字典与系统配置标准已确立。
- **功能状态**:🟢 **基座稳固**。基于 `aiot-platform-cloud` 和 Vben 的底层脚手架、ORM、缓存、安全过滤已基本建设完毕。
- **可用状态**:🟢 **高可用**。各端开发者拉取代码即可运行环境,基础 CRUD 无碍。
## 3. 研发关注重点提示
- **如果你在做 Ops**:请关注代码的健壮性、状态机的严谨性,以及历史数据的兼容性。
- **如果你在做 IoT**:请关注架构的扩展性、协议的通用性,容忍一定程度的推翻重构,快速试错。

View File

@@ -0,0 +1,50 @@
# 03-代码仓与协作边界
项目的成功在于清晰的边界。当跨端联调或出现 Bug 时,必须知道“这是谁的锅,该去哪提 PR”。本项目严格围绕三大主仓进行协作。
## 1. 三大主仓职责定义
### 📦 后端核心仓:`aiot-platform-cloud`
- **定位**:整个系统的大脑与数据中枢。
- **职责**
- 承载 Ops工单/保洁/安保)的所有业务逻辑。
- 承载 IoT 设备接入、物模型解析、设备控制指令下发。
- 提供统一的权限认证RBAC、系统基础配置与 Open API。
- **主要干系人**:后端研发团队。
### 📦 Web 管理端仓:`yudao-ui-admin-vben`
- **定位**:运营人员与管理员的控制台。
- **职责**
- 平台基础数据管理(用户、角色、字典、菜单)。
- Ops 业务的管理后台(排班分配、工单审核、数据报表)。
- IoT 设备的运维台(设备注册、实时状态监控、指令测试)。
- **主要干系人**:前端研发团队。
### 📦 移动端仓:`aiot-uniapp`
- **定位**:一线业务人员(保安、保洁员、维修工)的作业工具。
- **职责**
- 承载高频移动端操作:扫码、抢单、工单执行反馈、图片上传。
- 现场设备状态快速查看与简易控制。
- **主要干系人**:移动端研发团队。
## 2. 跨仓协作关系
- **API 契约优先**:所有跨仓交互(前端/移动端对接后端)必须先定 API 文档Swagger/YApi。后端未提供契约前前端/移动端可依赖契约进行 Mock 开发,禁止“边写接口边联调”。
- **多端一致性**:当一个业务实体(如“工单状态”)发生变更时,**后端发起变更通告**`yudao-ui-admin-vben``aiot-uniapp` 需同步评估改动范围,禁止一端暗改。
## 3. Bug 定位与认领指南
为了避免扯皮,遇到问题请遵循以下优先级在不同仓库定位:
| 问题现象 | 定位优先级与排查路径 | 对应仓库 |
| :--- | :--- | :--- |
| **界面错位、样式崩塌、按钮点不动** | 纯展现问题。优先检查本地代码/组件状态。 | `yudao``uniapp` |
| **业务流程卡死、页面报 "Network Error"** | 前端先抓包F12 / 代理),如果接口没发出去或者参数拼错,前端修。 | 首查 `yudao` / `uniapp` |
| **抓包显示后端返回 HTTP 500 或业务错误提示** | 明确的后端抛错。后端通过 TraceId 去看日志,定位是逻辑 Bug 还是数据脏了。 | `aiot-platform-cloud` |
| **App 上某个功能比 Web 上少字段** | 确认 API 契约是否有该字段。有则查移动端渲染;无则查后端接口适配。 | 跨仓联调确认 |
| **设备上线了但页面没刷新** | 确认链路:设备 -> 后端 (IoT) -> DB/MQ -> 后端接口 -> 前端。先看后端日志有没有收到报文。 | 首查 `cloud` 硬件链路 |
## 4. 文档与仓库的对应关系
- 有关 **表结构设计、API 定义、架构流转图** 的文档修改,通常伴随着 `aiot-platform-cloud` 的代码变更。
- 有关 **组件库规范、页面路由、打包脚本** 的问题,直接对应 `yudao-ui-admin-vben``aiot-uniapp`
- **强行规矩**:无论改了哪个仓的业务主逻辑,都必须回到 `开发者文档` 仓库同步更新对应的 Markdown 文档!

View File

@@ -0,0 +1,18 @@
# 99-骨架重构说明
## 重构背景
原文档结构主要按技术栈和组件划分,缺乏以业务和项目全局视角为主的引导。本次重构旨在建立“先搭骨架,再填正文”的内容体系,突出 Ops 和 IoT 业务主线。
## 新旧结构映射
- `01-快速开始``03-后端开发` 等部分高价值内容已迁移至 `01-业务与架构``06-平台支撑``07-协作规范`
-`04-前端开发``05-移动端开发` 的高价值内容保留至新的同名目录。
- `09-DevOps运维` 归入 `06-平台支撑`
- `10-编码规范``11-开发流程指南` 整合至 `07-协作规范`
## 保留与待重写内容
- **保留内容**:后端高价值的设计文档、部署文档。
- **待重写内容**:部分模板味较重、缺乏实际业务背景说明的示例文件。
## 后续补全建议
1. 优先补充 Ops 领域核心业务(工单、保洁、安保)的设计文档。
2. 完善 `aiot-platform-cloud` 的后端项目基本规范与架构说明。

View File

@@ -0,0 +1,188 @@
# AIOT 系统架构
本文档描述 AIOT 平台的整体系统架构和模块划分。
## 高层架构
```
┌──────────────────────────────────────────────────────────────┐
│ 客户端 │
├─────────────┬────────────────────┬───────────────────────────┤
│ Web 管理后台 │ 移动端(多端) │ IoT 设备 │
│ Vue 3 │ uni-app │ MQTT / HTTP │
│ Vben Admin │ 小程序/H5/App │ 传感器/执行器 │
└──────┬───────┴─────────┬──────────┴──────────┬───────────────┘
│ HTTPS │ HTTPS │ MQTT / HTTP
│ │ │
┌──────▼──────────────────▼─────────────────────▼──────────────┐
│ viewsh-gateway │
│ Spring Cloud GatewayAPI 网关) │
│ 路由转发 · 鉴权 · 限流 · 负载均衡 │
└──────────────────────────┬───────────────────────────────────┘
┌──────────────────────────▼───────────────────────────────────┐
│ 后端微服务集群 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ viewsh-server主服务 │ │
│ │ 聚合启动各业务模块 │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌──────────────────┐ │
│ │ module-system │ │ module-infra │ │ module-iot │ │
│ │ 用户·角色·权限 │ │ 文件·配置·代码 │ │ 设备·数据·协议 │ │
│ │ 菜单·部门·岗位 │ │ 生成·日志·监控 │ │ 采集·告警·联动 │ │
│ └───────────────┘ └───────────────┘ └──────────────────┘ │
│ │
│ ┌───────────────┐ ┌──────────────────────────────────────┐ │
│ │ module-ops │ │ viewsh-framework │ │
│ │ 工单·巡检 │ │ 公共层:安全、缓存、日志、工具类 │ │
│ │ 告警·维保 │ │ MyBatis-Plus · MapStruct · Lombok │ │
│ └───────────────┘ └──────────────────────────────────────┘ │
└──────────────────────────┬───────────────────────────────────┘
┌──────────────────────────▼───────────────────────────────────┐
│ 数据层 │
│ ┌───────────────┐ ┌───────────────┐ ┌──────────────────┐ │
│ │ MySQL 8.0 │ │ Redis │ │ Nacos │ │
│ │ 业务数据 │ │ 缓存·会话 │ │ 注册中心·配置 │ │
│ └───────────────┘ └───────────────┘ └──────────────────┘ │
└──────────────────────────────────────────────────────────────┘
┌──────────────────────────▼───────────────────────────────────┐
│ 基础设施 │
│ Docker · Jenkins · Nginx │
└──────────────────────────────────────────────────────────────┘
```
## 后端模块职责
### viewsh-gateway
API 网关,所有客户端请求的统一入口。
- 路由转发:根据路径前缀将请求分发到对应服务
- 认证鉴权:统一的 Token 校验
- 限流熔断:保护后端服务
- 跨域处理:统一 CORS 配置
### viewsh-framework
公共框架层,被所有业务模块依赖。
- 安全框架JWT 认证、权限校验
- 数据访问MyBatis-Plus 封装、分页、多租户
- 缓存封装Redis 操作工具类
- 日志切面:操作日志、访问日志
- 工具类库Lombok、MapStruct、通用响应体
### viewsh-server
主服务启动模块,聚合加载各业务模块。
- 统一启动入口
- 模块扫描与加载
- 全局异常处理
- Swagger/OpenAPI 文档聚合
### viewsh-module-system
系统管理模块,提供基础的管理功能。
- 用户管理:增删改查、密码重置
- 角色管理:角色分配、数据权限
- 权限管理:菜单权限、按钮权限
- 部门管理:组织架构树
- 岗位管理
- 字典管理
- 通知公告
### viewsh-module-infra
基础设施模块,提供平台底层能力。
- 文件管理:上传、下载、存储
- 配置管理:系统参数配置
- 代码生成:根据表结构自动生成 CRUD 代码
- 数据源管理
- API 日志:访问日志、错误日志
- 定时任务
### viewsh-module-iot
IoT 核心模块AIOT 平台的核心业务。
- 设备管理:设备注册、分组、状态监控
- 数据采集:设备上报数据接收和存储
- 协议适配MQTT、HTTP 等协议接入
- 告警规则:阈值告警、离线告警
- 设备联动:规则引擎、场景联动
- 数据可视化:实时数据展示
### viewsh-module-ops
运维管理模块,面向运维人员的管理功能。
- 工单管理:创建、分配、流转、关闭
- 巡检管理:巡检计划、巡检记录
- 告警处理:告警确认、告警统计
- 维保管理:设备维保计划和记录
## 前端架构
```
yudao-ui-admin-vben/
├── apps/ # 应用层
│ └── admin/ # 管理后台主应用
├── packages/ # 共享包
│ ├── components/ # 通用业务组件
│ ├── utils/ # 工具函数
│ └── types/ # TypeScript 类型定义
├── internal/ # 内部构建配置
│ ├── lint-configs/ # ESLint、Prettier 规则
│ └── vite-config/ # Vite 构建配置
└── scripts/ # 构建和发布脚本
```
**核心技术选型**Vue 3 + TypeScript + Vben Admin + Ant Design Vue + Pinia + pnpm monorepo + Turborepo
## 移动端架构
```
aiot-uniapp/
├── src/
│ ├── pages/ # 页面
│ ├── components/ # 组件
│ ├── api/ # 后端 API 调用
│ ├── store/ # Pinia 状态管理
│ ├── utils/ # 工具函数
│ └── static/ # 静态资源
├── env/ # 多环境配置
└── vite-plugins/ # 自定义 Vite 插件
```
**核心技术选型**Vue 3 + TypeScript + uni-app + Pinia + UnoCSS + wot-design-uni
**构建目标**微信小程序、H5、Android App、iOS App
## 通信方式
| 通信链路 | 协议 | 说明 |
|----------|------|------|
| 前端 ↔ 网关 | HTTPS | REST API 调用 |
| 移动端 ↔ 网关 | HTTPS | REST API 调用 |
| 网关 ↔ 后端服务 | HTTP | 内部服务转发 |
| 设备 ↔ 后端 | MQTT | 设备数据上报、指令下发 |
| 设备 ↔ 后端 | HTTP | 设备注册、固件升级 |
| 服务 ↔ Nacos | HTTP | 服务注册与配置拉取 |
## 关键设计原则
1. **模块化** — 业务按领域拆分为独立模块,各模块职责清晰
2. **网关统一入口** — 所有外部请求通过 Gateway 进入,统一鉴权和路由
3. **配置集中管理** — Nacos 管理所有服务配置,支持动态刷新
4. **前后端分离** — 前端独立部署,通过 API 与后端交互
5. **多端复用** — 移动端通过 uni-app 一套代码编译多个平台
---
最后更新时间2026-03-26

View File

@@ -0,0 +1,8 @@
# 01-架构设计说明
## 目标与面向读者
介绍系统整体的微服务架构、网络边界与技术选型,主要面向系统架构师与后端开发者。
## 核心内容占位
- 待补充:系统物理架构图。
- 待补充:`aiot-platform-cloud` 的微服务划分说明。

View File

@@ -1,114 +0,0 @@
# 项目概述
欢迎来到 AIOT人工智能物联网项目本文档介绍项目的背景、目标和范围。
## 🎯 项目目标
AIOT 项目的核心目标是:
1. **实时设备管理** — 连接和管理各类物联网设备
2. **数据驱动洞察** — 收集和分析设备数据
3. **智能决策支持** — 使用 AI 模型提供智能建议
4. **用户友好体验** — 提供直观的 Web 和移动界面
5. **高可用和可扩展** — 支持大规模设备接入
## 📊 项目范围
### 核心功能
| 功能 | 说明 | 优先级 |
|-----|------|--------|
| 设备接入 | 支持多种协议的设备连接 | 高 |
| 数据采集 | 实时采集设备数据 | 高 |
| 数据分析 | 数据统计和可视化 | 高 |
| 告警系统 | 异常告警和通知 | 中 |
| 远程控制 | 远程操作设备 | 中 |
| AI 预测 | 基于 ML 的预测 | 中 |
| 用户管理 | 组织和权限管理 | 高 |
| 移动应用 | iOS/Android 原生应用 | 中 |
### 支持的设备类型
- 温湿度传感器
- 门窗磁传感器
- 运动传感器
- 智能灯
- 智能插座
- 摄像头
- 能源监测设备
- 自定义设备(通过 API
## 👥 目标用户
1. **企业管理员** — 管理组织内的设备和用户
2. **运维工程师** — 监控系统健康和性能
3. **数据分析师** — 分析数据和生成报告
4. **普通用户** — 通过移动端控制设备
5. **开发者** — 集成自定义设备和应用
## 🏗️ 技术栈概览
### 后端
- **运行时** — Node.js / Python
- **框架** — Express / FastAPI
- **数据库** — PostgreSQL + Redis
- **消息队列** — RabbitMQ / Kafka
- **实时通信** — WebSocket / Socket.io
### 前端
- **框架** — React 18+
- **状态管理** — Redux / Context API
- **UI 库** — Material-UI / Ant Design
- **构建工具** — Webpack / Vite
### 移动端
- **框架** — React Native / Flutter
- **原生功能** — 地理定位、推送通知等
- **离线支持** — SQLite + Redux Persist
### 基础设施
- **容器化** — Docker
- **编排** — Kubernetes
- **CI/CD** — GitHub Actions / GitLab CI
- **监控** — Prometheus + Grafana
- **日志** — ELK Stack
## 📈 项目里程碑
| 阶段 | 时间 | 目标 |
|-----|------|------|
| MVP | Q1 2024 | 核心功能实现 |
| Beta | Q2 2024 | 用户测试和反馈 |
| GA | Q3 2024 | 正式发布 |
| 迭代 | Q4 2024+ | 功能完善和优化 |
## 📚 相关文档
- **[技术栈详解](02-tech-stack.md)** — 每个技术的选择原因
- **[环境配置](03-environment-setup.md)** — 本地开发环境设置
- **[快速开始](04-quick-start.md)** — 5 分钟快速上手
- **[系统架构](../02-architecture/01-system-architecture.md)** — 整体架构设计
- **[ARCHITECTURE.md](../ARCHITECTURE.md)** — 详细架构文档
## 🔗 相关链接
- GitHub 仓库:`[待填充]`
- 项目管理:`[待填充]`
- 问题追踪:`[待填充]`
- 文档网站:`[待填充]`
- API 文档:`[待填充]`
## ❓ 常见问题
**Q: 这个项目适合我吗?**
A: 如果你对物联网、全栈开发或 AI 应用感兴趣,是的!无论你的背景如何,我们都欢迎。
**Q: 需要什么前置知识?**
A: 基本的编程知识即可。具体技术可以在参与过程中学习。
**Q: 怎么开始贡献?**
A: 请阅读 [CONTRIBUTING.md](../CONTRIBUTING.md) 和本指南的后续部分。
---
准备好开始了吗?前往 **[快速开始](04-quick-start.md)** 或选择你感兴趣的领域开始学习!

View File

@@ -0,0 +1,9 @@
# Ops领域总览
## 目标与面向读者
Ops 是当前第一阶段的核心业务,包括工单、保洁、安保等日常运营管理。本文档面向相关业务的产品与研发。
## 子业务模块
- **工单管理**:待补充方案。
- **保洁管理**:待补充方案。
- **安保管理**:待补充方案。

View File

@@ -0,0 +1,8 @@
# IoT领域总览
## 目标与面向读者
下一阶段的核心业务,聚焦于物联网设备的接入、控制与数据分析。
## 核心模块
- **设备接入层**待补充协议MQTT/HTTP等说明。
- **物模型设计**:待补充设备属性、事件、服务定义。

View File

@@ -0,0 +1,48 @@
# 🖥️ 前端工程结构与协作边界
前端仓库当前是一个 Vue 3 monorepo。它最重要的不是页面组件细节而是应用层和共享层的边界。
## 1. 当前关键目录
- `apps/`
- `packages/`
- `internal/`
- `scripts/`
- `docs/`
## 2. `apps` 的意义
当前可见应用包括:
- `web-antd`
- `web-ele`
- `web-naive`
- `web-tdesign`
它们代表可运行应用层,而不是共享层。
## 3. `packages` 的意义
当前可见共享层包括:
- `constants`
- `effects`
- `icons`
- `locales`
- `preferences`
- `stores`
- `styles`
- `types`
- `utils`
这说明前端已具备明确的共享能力抽象。
## 4. 与后端的关系
前端文档不应只按页面分组,更应围绕后端业务域组织:
- system
- infra
- iot
- ops

View File

@@ -0,0 +1,41 @@
# 📱 移动端工程结构与页面分域
移动端当前不是简单页面合集,而是按业务域拆分的 uni-app 项目。
## 1. 当前关键目录
- `src/api`
- `src/pages`
- `src/pages-bpm`
- `src/pages-core`
- `src/pages-infra`
- `src/pages-ops`
- `src/pages-system`
- `src/store`
- `src/router`
## 2. 页面分域说明
### `pages-ops`
直接对应 Ops 现场执行域,当前已可见:
- `inspection`
- `work-order`
### `pages-system`
对应用户、角色、通知、租户等系统能力。
### `pages-infra`
对应配置、日志、任务、文件等基础设施能力。
### `pages-bpm`
对应流程能力。
## 3. 为什么移动端文档要强调分域
因为它最终消费的是后端领域能力,而不是单纯页面组件。

View File

@@ -0,0 +1,8 @@
# 支撑平台总览
## 目标与面向读者
介绍 DevOps、运维部署及中间件相关的内容。
## 后续规划
- 补充 CI/CD 流程说明。
- 补充 Redis、RabbitMQ/Kafka 等中间件的使用规范。

View File

@@ -0,0 +1,23 @@
# 🔗 接口分域与维护原则
这部分不替代 Swagger而是定义接口文档应该怎样围绕业务域维护。
## 1. 推荐按域维护
- system
- infra
- iot
- ops
## 2. 为什么不按页面维护
因为页面会变,但领域边界更稳定。
同一个接口可能同时服务:
- 后台页面
- 移动端页面
- 规则联动
所以接口文档优先按域维护更稳。

View File

@@ -0,0 +1,31 @@
# 🗄️ 数据域划分与表关系思路
当前数据库文档最重要的不是表清单,而是先划分数据域。
## 1. 系统主数据
- 用户
- 角色
- 菜单
- 部门
- 租户
## 2. IoT 主数据与过程数据
- 产品
- 设备
- 设备分组
- 物模型
- 告警配置
- 告警记录
- 设备消息
## 3. Ops 主数据与过程数据
- 工单主记录
- 工单业务日志
- 工单事件
- 队列记录
- 执行人状态
- 统计结果

View File

@@ -0,0 +1,20 @@
# 🚢 部署运行与排障视角
运维文档当前最应该做的是建立排障视角,而不是堆命令。
## 1. 当前可见运行线索
- `docker-compose.core.yml`
- `docker/`
- `Jenkinsfile`
- 网关与主服务独立配置
## 2. 排障第一刀
先判断问题属于哪一层:
- 网关入口层
- 主服务装配层
- IoT 规则与设备层
- Ops 状态与执行层

View File

@@ -0,0 +1,50 @@
# 01-不同项目的基本规范
本规范旨在统一定义各端仓库的代码结构与开发底线,降低跨域协作的认知负担。不求死板教条,但求模块清晰、风格统一。
## 1. 后端 (`aiot-platform-cloud`)
### 1.1 分层与目录组织原则
后端遵循领域驱动DDD或经典分层架构强制模块化
- **`Controller` 层**:仅做参数校验与路由转发,严禁包含复杂业务逻辑。
- **`Service` 层**核心业务逻辑承载地。Ops 与 IoT 逻辑必须隔离在不同的包/模块下,严禁交叉污染。
- **`Mapper / DAO` 层**:仅负责数据库交互,复杂 SQL 必须有注释说明意图。
- *(具体包结构与命名约定,后续结合代码脚手架进一步补齐)*
### 1.2 开发底线规范
- **日志规约**:关键业务节点(如接单、设备状态变更、支付)必须打 `INFO` 日志,且日志必须携带关键主键(如 `orderId`, `deviceId`)。报错捕获必须打印完整堆栈及上下文参数。
- **异常处理**:禁止向前端抛出原生 SQL 异常或 NullPointerException。所有异常应转化为统一的 `Result<T>` 格式,附带明确的业务错误码。
## 2. 前端 (`yudao-ui-admin-vben`)
### 2.1 目录与模块组织原则
- **`views/`**:按业务模块划分(如 `views/ops/cleaning`, `views/iot/device`),严禁把所有页面平铺。
- **`components/`**:只存放跨业务复用的 Dumb 组件;业务相关的特化组件放在对应的 `views/` 目录下。
- **`api/`**:接口调用隔离层,按后端 Controller 分类封装,严禁在页面组件中直接写 `axios.get`
- *(基于 Vben 的具体状态管理 Pinia 划分,后续结合代码脚手架补齐)*
### 2.2 开发底线规范
- **类型安全**TypeScript 必须严格定义 API 的 Req/Res 接口,尽量减少 `any` 的使用。
- **权限控制**:页面入口和关键操作按钮必须接入统一的 RBAC 指令(如 `v-hasPermi`)。
## 3. 移动端 (`aiot-uniapp`)
### 3.1 目录与模块组织原则
- **分包策略**考虑到小程序体积限制必须从一开始就规划分包如主包仅含登录和工作台首页Ops 和 IoT 业务分别做独立分包)。
- **`pages/` vs `components/`**:页面级文件放在 `pages`;页面内拆分的 UI 片段放在 `components`
- *(样式穿透与跨端兼容性处理规范,后续结合代码实践补齐)*
### 3.2 开发底线规范
- **状态同步**:移动端网络环境复杂,核心提交操作(如工单完工)必须做防抖处理与 Loading 状态遮罩。
- **离线与缓存**:对字典数据和基础用户权限做好本地缓存,减少非必要的网络请求。
---
## 4. 变更必须同步的文档范围 (非常重要)
代码不是孤岛。当你修改了核心逻辑,如果只提交代码不改文档,就是在给团队挖坑。触发以下变更时,**必须强制同步修改本仓库的对应文档**
1. **新增/修改/废弃接口**:必须同步更新 Swagger 注解或 API 文档平台,确保前端能拿到最新契约。
2. **核心业务状态机变更**(如工单增加了一个“申诉中”状态):必须同步更新 `02-Ops领域` 或相关业务目录下的 Markdown 状态图和说明。
3. **新增外部依赖或中间件**(如引入了 ElasticSearch必须同步更新 `06-平台支撑/` 中的环境搭建指南和 `README.md` 的架构依赖说明。
4. **表结构重大重构**:必须在团队群内通报,并更新相关的实体关系说明文档。

View File

@@ -0,0 +1,30 @@
# 🧪 需求开发与文档回补流程
这篇文档只定义一个实用流程:需求来了以后,开发和文档怎么同步推进。
## 1. 先定位业务域
- system
- infra
- iot
- ops
## 2. 再定位是否影响状态流
如果需求涉及:
- 工单
- 派单
- 设备规则
- 联动触发
那就必须先确认状态流和事件流。
## 3. 开发后需要回补的文档
- 模块变更:后端模块地图
- 状态流变更Ops 生命周期文档
- 调度变更:派单与队列文档
- 规则变更IoT 规则文档
- 联动变更IoT 与 Ops 联动文档

View File

@@ -0,0 +1,23 @@
# ✍️ 项目编码与文档规范
这里只记录当前最值得长期保持一致的约定。
## 1. 后端
- 模块边界优先于临时方便
- 领域逻辑不直接写进 Controller
- 共性技术能力优先沉淀到 `framework`
- 条线差异优先放对应 `*-biz`
## 2. 前端与移动端
- 页面层与共享层分离
- 类型与 API 封装同步演进
- 页面按业务域组织而不是随意堆叠
## 3. 文档
- 目录级 README 不作为正文
- 先写边界,再写实现
- 先写事实,再写建议

View File

@@ -0,0 +1,14 @@
# ❓ 开发者常见问题
## 为什么后端文档最详细?
因为当前项目复杂度主要集中在后端,尤其是 `Ops + IoT`
## 为什么去掉目录级 README
因为目录级 README 更适合导航,不适合作为正文替代品。正文应直接落成正式章节。
## 为什么文档仓库和代码仓库分离?
为了让跨仓库知识能集中沉淀,也避免文档被代码噪音淹没。

View File

@@ -0,0 +1,22 @@
# 📖 核心术语
## AIOT
当前项目同时覆盖设备域、现场运营域、管理后台和移动执行端。
## Ops
现场运营与任务执行域,核心关注工单、派单、执行人状态、队列和统计。
## IoT
设备域核心关注设备、物模型、设备消息、规则、告警、OTA 和场景动作。
## 工单
Ops 中的核心业务对象,表示一项待执行或执行中的现场任务。
## 状态机
对工单生命周期的统一约束机制。

View File

@@ -1,121 +1,52 @@
# AIOT 项目文档
# AIoT 开发者文档中心 (Developer Documentation)
欢迎来到 AIOT 项目的完整文档中心!本文档涵盖了整个项目的架构、开发、部署和运维指南。
## 📌 文档中心定位
这是 AIoT 项目的**唯一官方技术知识库**。这里的文档不写长篇大论的废话,只提供能够真正指导研发团队(包含 AI Agent完成代码编写、系统联调、排障和协作的硬核指南。它是团队的技术契约与协作基线。
## 📋 项目概述
## 🚀 当前项目阶段
**项目当前正处于「Ops 迭代与 IoT 冲刺」交汇期:**
- **一阶段 Ops 为核心**:保洁、安保等工单业务的底层基础建设已完成,目前处于持续迭代和业务深化阶段。
- **下一阶段重心**:研发重心正全面转向 **IoT物联网领域** 的设备接入、物模型管理与控制链路打通。
AIOT人工智能物联网是一个全栈项目包含
- **后端服务** — 核心业务逻辑和 API
- **Web 前端** — 管理后台和数据展示
- **移动应用** — iOS/Android 原生应用
- **设备接入** — 物联网设备管理和通信
## 📦 三大主仓
所有业务开发均围绕以下三个核心 Git 仓库展开:
1. **后端主仓**`aiot-platform-cloud`
2. **Web前端主仓**`yudao-ui-admin-vben`
3. **移动端主仓**`aiot-uniapp`
## 🚀 快速开始
## 🗺️ 按角色推荐阅读路径
> 无论你是人类开发者还是 AI Agent请根据你的角色选择对应的阅读入口。详细的阅读地图请查阅[00-阅读地图](./00-导航与总览/00-阅读地图.md)
新开发者请从这里开始:
- **新人 (Newbie)**:先看本 README ➔ [02-项目当前状态](./00-导航与总览/02-项目当前状态.md) ➔ [03-代码仓与协作边界](./00-导航与总览/03-代码仓与协作边界.md) ➔ 本地环境搭建
- **后端 (Backend)**[03-代码仓边界](./00-导航与总览/03-代码仓与协作边界.md) ➔ [后端协作规范](./07-协作规范/01-不同项目的基本规范.md) ➔ `02-Ops领域` / `03-IoT领域` 的具体业务方案
- **前端/移动端 (FE/Mobile)**[前端/移动端规范](./07-协作规范/01-不同项目的基本规范.md) ➔ API 对接规范 ➔ UI/组件库规范
- **测试 (QA)**[02-项目当前状态](./00-导航与总览/02-项目当前状态.md) ➔ 核心业务流程图 (01/02目录) ➔ 部署与联调说明
- **运维 (Ops)**[03-代码仓边界](./00-导航与总览/03-代码仓与协作边界.md) ➔ [06-平台支撑](./06-平台支撑/) ➔ CI/CD与中间件配置
- **产品 (PM)**:业务状态 ➔ [01-业务与架构](./01-业务与架构/) 对应的领域设计
- **Agent (AI 助手)**:通读 `00-导航与总览` ➔ [不同项目的基本规范](./07-协作规范/01-不同项目的基本规范.md) ➔ 检索相关业务目录下的 `.md`
1. **[项目概述](01-getting-started/01-project-overview.md)** — 了解项目目标和范围
2. **[技术栈](01-getting-started/02-tech-stack.md)** — 查看使用的技术
3. **[环境配置](01-getting-started/03-environment-setup.md)** — 配置本地开发环境
4. **[快速开始](01-getting-started/04-quick-start.md)** — 5分钟快速上手
## ⭐ 当前优先阅读清单
针对当前项目阶段,以下文档的优先级最高,请在开发前务必对齐:
1. [00-导航与总览/03-代码仓与协作边界.md](./00-导航与总览/03-代码仓与协作边界.md) - 弄清你的代码该提交到哪、遇到 bug 去哪个仓排查。
2. [07-协作规范/01-不同项目的基本规范.md](./07-协作规范/01-不同项目的基本规范.md) - 开发红线与基本目录结构。
3. `02-Ops领域``03-IoT领域` 中你目前负责的具体模块设计。
## 📚 文档导航
### 🏗️ 架构和设计
- **[系统架构](02-architecture/01-system-architecture.md)** — 整体系统设计
- **[数据流设计](02-architecture/02-data-flow.md)** — 数据如何流动
- **[API 设计](02-architecture/04-api-design.md)** — REST 和 WebSocket API 规范
- **[数据库设计](02-architecture/05-database-schema.md)** — 数据模型
### 🔧 后端开发
- **[后端环境配置](03-backend/01-setup.md)**
- **[项目结构](03-backend/02-project-structure.md)**
- **[API 文档](07-api-docs/openapi.yaml)**
- **[认证和授权](03-backend/05-authentication.md)**
- **[测试指南](03-backend/09-testing.md)**
- **[部署流程](03-backend/10-deployment.md)**
### 🎨 前端开发
- **[前端环境配置](04-frontend/01-setup.md)**
- **[项目结构](04-frontend/02-project-structure.md)**
- **[组件库使用](04-frontend/03-components-guide.md)**
- **[状态管理](04-frontend/04-state-management.md)**
- **[性能优化](04-frontend/08-performance.md)**
- **[UI 设计规范](04-frontend/12-ui-guidelines.md)**
### 📱 移动端开发
- **[移动端环境配置](05-mobile/01-setup.md)**
- **[应用架构](05-mobile/03-app-architecture.md)**
- **[屏幕导航](05-mobile/04-screen-guide.md)**
- **[API 集成](05-mobile/06-api-integration.md)**
- **[原生功能](05-mobile/07-native-features.md)**
- **[App 发布](05-mobile/12-build-deploy.md)**
### 🔌 设备和物联网
- **[设备类型](06-device/01-device-types.md)**
- **[连接配置](06-device/02-connection-setup.md)**
- **[固件更新](06-device/03-firmware-update.md)**
- **[数据传输协议](06-device/04-data-transmission.md)**
### 🛠️ DevOps 和运维
- **[CI/CD 流程](09-devops/01-ci-cd.md)**
- **[Docker 配置](09-devops/02-docker-setup.md)**
- **[监控告警](09-devops/04-monitoring.md)**
- **[灾难恢复](09-devops/07-disaster-recovery.md)**
### 📖 规范和指南
- **[代码风格指南](10-standards/01-code-style.md)**
- **[Git 工作流](10-standards/03-git-workflow.md)**
- **[编码规范](10-standards/02-naming-conventions.md)**
- **[常见任务](11-guides/01-common-tasks.md)**
- **[调试指南](11-guides/02-debugging.md)**
### ❓ FAQ 和支持
- **[常见问题](13-faq/general.md)**
- **[词汇表](14-glossary/terms.md)**
## 📖 核心文档
- **[ARCHITECTURE.md](ARCHITECTURE.md)** — 系统架构详细说明
- **[CONTRIBUTING.md](CONTRIBUTING.md)** — 贡献指南
- **[DEVELOPMENT.md](DEVELOPMENT.md)** — 开发工作流
- **[DEPLOYMENT.md](DEPLOYMENT.md)** — 部署和上线
## 🔍 快速查找
按角色查找你需要的文档:
| 角色 | 推荐阅读 |
|-----|---------|
| 新团队成员 | 快速开始 → 项目概述 → 你的端环境配置 |
| 后端开发 | 后端设置 → API 文档 → 认证指南 |
| 前端开发 | 前端设置 → 组件库 → UI 规范 |
| 移动开发 | 移动设置 → 应用架构 → 发布流程 |
| 设备工程 | 设备类型 → 连接配置 → 数据传输 |
| DevOps | CI/CD → Docker → 监控 → 灾难恢复 |
| 项目经理 | 项目概述 → 系统架构 → 技术栈 |
## 🔗 相关链接
- GitHub 仓库:`待填充`
- Issue 追踪:`待填充`
- CI/CD Dashboard`待填充`
- API 文档(实时):`待填充`
## 📝 最后更新
- 最后更新时间:{{ now }}
- 文档版本1.0.0
- 项目版本:见 `VERSION` 文件
## ❓ 有问题?
- 查看 [FAQ](13-faq/general.md)
- 提交 Issue 或 Pull Request
- 联系项目维护者
## 🛡️ 文档维护原则 (Truth Source)
在信息发生冲突时,请遵循以下可信度倒排原则(前面的优先级最高):
1. **代码 (Code)**:代码是最终的真相。
2. **项目负责人确认 (Tech Lead)**:重大歧义直接找 Lead 确认并立即更新文档。
3. **数据库/配置 (DB/Config)**:线上实际运行的表结构和 Nacos 配置。
4. **旧文档 (Old Docs)**:未及时更新的文档仅作参考。如果你发现文档已过期,**你就有责任顺手更新它**。
---
**贡献者请阅读:** [CONTRIBUTING.md](CONTRIBUTING.md)
**代码审查流程:** [代码审查指南](10-standards/05-code-review.md)
### 🗂️ 全局目录总览
- `00-导航与总览/`:新手上路、项目状态、协作边界(入口)
- `01-业务与架构/`:全局架构设计
- `02-Ops领域/`:工单、保洁、安保核心文档
- `03-IoT领域/`:设备接入、物模型与数据流
- `04-前端开发/`Web 管理端开发专项
- `05-移动端开发/`:小程序/App 开发专项
- `06-平台支撑/`:中间件与 DevOps 基础设施
- `07-协作规范/`:开发、测试、发布的流程与规约
- `08-附录/`:术语表与历史存档

View File

@@ -0,0 +1,15 @@
# 🖼️ 资源说明
这个目录用于存放:
- 架构图
- 流程图
- 时序图
- 页面截图
建议分别放入:
- `images/architecture`
- `images/diagrams`
- `images/screenshots`

View File

@@ -1,190 +0,0 @@
# AIOT 系统架构
本文档描述 AIOT 项目的整体系统架构、组件设计和数据流。
## 🏗️ 高层架构
```
┌─────────────────────────────────────────────────────────────┐
│ 用户端 │
├──────────────┬──────────────────────┬──────────────────────┤
│ Web 前端 │ 移动应用App │ 设备硬件/固件 │
│ (React) │ (React Native) │ (IoT Devices) │
└──────┬───────┴──────────┬───────────┴──────────┬────────────┘
│ │ │
│ HTTPS/WSS │ HTTP/MQTT │
│ │ │
┌──────▼──────────────────▼──────────────────────▼────────────┐
│ API 网关 / 负载均衡 │
└──────┬──────────────────────────────────────────────────────┘
┌──────▼──────────────────────────────────────────────────────┐
│ 后端服务Microservices
├──────────────┬──────────────────┬──────────────────────────┤
│ 身份验证 │ 用户管理 │ 设备管理 │
│ (Auth) │ (User Service) │ (Device Service) │
├──────────────┼──────────────────┼──────────────────────────┤
│ 数据处理 │ 实时通信 │ 任务调度 │
│ (Analytics) │ (WebSocket) │ (Job Queue) │
├──────────────┼──────────────────┼──────────────────────────┤
│ AI 模型 │ 文件存储 │ 日志系统 │
│ (ML Models) │ (File Storage) │ (Logging) │
└──────┬───────┴────────┬─────────┴──────────────┬───────────┘
│ │ │
┌──────▼────────────────▼────────────────────────▼───────────┐
│ 数据层 │
├──────────────┬──────────────────┬──────────────────────────┤
│ PostgreSQL │ Redis Cache │ Time Series DB │
│ (主数据) │ (会话/缓存) │ (时间序列数据) │
├──────────────┼──────────────────┼──────────────────────────┤
│ S3/OSS │ Message Queue │ Search Engine │
│ (文件存储) │ (异步消息) │ (Elasticsearch) │
└──────────────┴──────────────────┴──────────────────────────┘
│ │ │
┌──────▼────────────────▼────────────────────────▼───────────┐
│ 基础设施 │
├──────────────┬──────────────────┬──────────────────────────┤
│ Kubernetes │ 监控/告警 │ CI/CD Pipeline │
│ (容器编排) │ (Prometheus) │ (GitHub Actions) │
└──────────────┴──────────────────┴──────────────────────────┘
```
## 📦 组件概览
### 前端层
- **Web 前端 (React)**
- 基于 React + Next.js
- 状态管理Redux / Context API
- UI 框架Material-UI 或 Ant Design
- 实时通信WebSocket
- **移动应用 (React Native)**
- 跨平台iOS 和 Android
- 状态管理Redux 或 Zustand
- 原生功能集成:地理定位、推送通知等
- 离线支持SQLite + Redux Persist
### API 层
- **HTTP REST API**
- 基于 Node.js/Express 或 Python/FastAPI
- RESTful 设计规范
- 速率限制和认证
- **WebSocket实时通信**
- 实时数据推送
- 设备状态更新
- 用户通知
- **MQTT设备通信**
- 轻量级物联网协议
- 发布-订阅模式
- QoS 支持
### 业务逻辑层
- **认证服务**
- JWT Token 管理
- OAuth2 集成(可选)
- 权限控制
- **设备管理服务**
- 设备注册和发现
- 固件更新管理
- 设备状态监控
- **数据处理服务**
- 数据聚合和清理
- 分析和统计
- AI 模型推理
- **任务调度服务**
- 定时任务执行
- 异步任务处理
- 重试机制
### 数据层
- **关系型数据库**
- PostgreSQL用户、设备、配置等
- 数据一致性保证
- ACID 事务支持
- **缓存层**
- Redis会话、缓存
- 性能优化
- 实时计数器
- **时间序列数据库**
- InfluxDB 或 TimescaleDB
- 设备数据存储
- 高效查询
- **消息队列**
- RabbitMQ 或 Kafka
- 异步处理
- 解耦服务
### 基础设施
- **容器编排**
- Kubernetes
- Docker 镜像
- 自动扩展
- **监控和告警**
- Prometheus + Grafana
- 日志管理ELK Stack
- 性能追踪Jaeger
- **CI/CD**
- GitHub Actions / GitLab CI
- 自动化测试
- 自动部署
## 🔄 数据流
详见:[数据流设计](02-architecture/02-data-flow.md)
## 🔐 安全架构
详见:[安全架构](02-architecture/06-security-design.md)
## 📈 扩展性设计
详见:[可扩展性规划](02-architecture/07-scalability-plan.md)
## 🔌 通信协议
### HTTP/REST
- 客户端 ↔ 服务器通信
- 标准 HTTP 方法GET, POST, PUT, DELETE
- JSON 请求/响应
### WebSocket
- 实时双向通信
- 服务器主动推送
- 心跳机制保活
### MQTT
- 设备 ↔ 服务器通信
- 发布-订阅模式
- 三个 QoS 等级
## 🎯 关键设计原则
1. **微服务架构** — 服务独立部署和扩展
2. **异步处理** — 耗时操作异步化
3. **缓存优先** — 减少数据库查询
4. **实时驱动** — WebSocket/消息队列驱动
5. **可观测性** — 完整的日志、监控和追踪
## 📋 版本历史
| 版本 | 日期 | 变更 |
|-----|------|------|
| 1.0 | 2024-01-01 | 初始架构设计 |
---
详细的各部分架构说明请查看:
- [系统架构](02-architecture/01-system-architecture.md)
- [数据流设计](02-architecture/02-data-flow.md)
- [设备协议](02-architecture/03-device-protocol.md)
- [API 设计](02-architecture/04-api-design.md)

View File

@@ -1,235 +0,0 @@
# 贡献指南
感谢您对 AIOT 项目的兴趣!本指南将帮助您有效地为项目做出贡献。
## 🚀 开始贡献
### 第一步:设置开发环境
```bash
# 克隆仓库
git clone https://github.com/your-org/aiot.git
cd aiot
# 按照你的端的指南配置环境
# 后端docs/03-backend/01-setup.md
# 前端docs/04-frontend/01-setup.md
# 移动docs/05-mobile/01-setup.md
```
### 第二步:阅读编码规范
- [代码风格指南](10-standards/01-code-style.md)
- [命名规范](10-standards/02-naming-conventions.md)
- [Git 工作流](10-standards/03-git-workflow.md)
- [Commit 信息规范](10-standards/04-commit-messages.md)
### 第三步:创建 Feature 分支
```bash
git checkout -b feature/your-feature-name
```
### 第四步:编写代码和测试
- 遵循编码规范
- 添加单元测试
- 确保测试通过
### 第五步:提交 Pull Request
详见:[代码审查流程](10-standards/05-code-review.md)
## 📋 贡献类型
### 🐛 Bug 修复
1. 创建 Issue 描述 Bug
2. Fork 仓库
3. 创建修复分支:`git checkout -b fix/issue-number`
4. 提交 PR引用 Issue
### ✨ 新功能
1. 讨论功能设计(创建 Discussion 或 Issue
2. Fork 仓库
3. 创建功能分支:`git checkout -b feature/feature-name`
4. 提交 PR 描述功能和测试
### 📖 文档改进
1. 编辑相关 Markdown 文件
2. 提交 PR
3. 使用 Preview 功能检查格式
### 🎨 UI/UX 改进
1. 在 Issue 中提出建议(包括设计稿)
2. 讨论和反馈
3. 实现并提交 PR
## 📝 Commit 信息规范
遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范:
```
<type>(<scope>): <subject>
<body>
<footer>
```
### 类型type
- `feat` — 新功能
- `fix` — 错误修复
- `docs` — 文档改进
- `style` — 代码风格(不影响功能)
- `refactor` — 代码重构
- `perf` — 性能优化
- `test` — 测试相关
- `chore` — 构建、依赖等
### 范围scope
- `backend` — 后端
- `frontend` — 前端
- `mobile` — 移动端
- `device` — 设备相关
- `docs` — 文档
- `infra` — 基础设施
### 例子
```
feat(backend): add device real-time status updates via WebSocket
- Implement WebSocket server for real-time device status
- Add subscription management for device changes
- Add reconnection logic with exponential backoff
Fixes #123
```
## ✅ Pull Request 检查清单
在提交 PR 前,请确保:
- [ ] 代码遵循项目编码规范
- [ ] 添加了必要的测试
- [ ] 所有测试通过
- [ ] 更新了相关文档
- [ ] Commit 信息清晰明了
- [ ] 没有 merge 冲突
- [ ] 代码审查无重大问题
## 🔍 代码审查
### 审查标准
- 代码质量和可维护性
- 测试覆盖率
- 性能影响
- 安全考虑
- API 设计一致性
### 审查流程
1. 至少一位维护者审查
2. 全部对话解决
3. 至少一个 Approve
4. CI/CD 通过
5. 合并到主分支
详见:[代码审查指南](10-standards/05-code-review.md)
## 🧪 测试要求
### 单元测试
- 所有新功能必须有单元测试
- 目标覆盖率80%+
- 测试应该是独立的和快速的
### 集成测试
- 跨服务交互必须有集成测试
- 数据库操作需要测试
### 端到端测试E2E
- 关键用户流程必须有 E2E 测试
- 使用 Selenium/Cypress前端或 Appium移动
### 性能测试
- 关键路径的性能基准
- 监控性能回归
详见各端的测试指南:
- [后端测试](03-backend/09-testing.md)
- [前端测试](04-frontend/10-testing.md)
- [移动测试](05-mobile/11-testing.md)
## 📚 文档要求
### 代码注释
- 复杂逻辑需要注释
- 函数应该有 JSDoc/docstring
- 解释 *为什么*,不是 *什么*
### API 文档
- 新端点需要 OpenAPI/Swagger 文档
- 包括请求/响应示例
### README
- 新功能应该在 README 中提及
- 更新相关文档
### 更新日志
- 在 CHANGELOG.md 中记录重要变更
- 按版本组织
## 🚨 安全考虑
提交包含以下内容的 PR 时,请特别小心:
- [ ] 用户输入验证
- [ ] SQL 注入防护
- [ ] 跨站脚本XSS防护
- [ ] 跨站请求伪造CSRF防护
- [ ] 认证和授权检查
- [ ] 敏感数据加密
详见:[安全检查清单](11-guides/04-security-checklist.md)
## 💬 沟通和讨论
### GitHub Discussions
- 功能建议
- 架构讨论
- 最佳实践分享
### Issues
- Bug 报告
- 功能请求
- 任务跟踪
### 其他沟通
- 项目 Slack 频道
- 定期团队会议
## 🏆 贡献者荣誉
我们感谢所有贡献者!在以下地方获得认可:
- CONTRIBUTORS.md 文件
- GitHub Contributors 页面
- 项目网站
## ❓ 有问题?
- 查看 [FAQ](../13-faq/general.md)
- 提交 GitHub Issue
- 联系项目维护者
- 加入项目社区
## 📖 更多资源
- [开发指南](DEVELOPMENT.md)
- [Git 工作流详解](10-standards/03-git-workflow.md)
- [架构文档](ARCHITECTURE.md)
- [各端开发指南](01-getting-started/)
---
**感谢您的贡献!** 🎉
我们期待看到您的代码、想法和改进!