Files
chengshishouce/city-manual/docs/ARCHITECTURE.md
maoshen 81632c1b35 docs: 添加项目文档和 AgentSkills
- 添加架构文档 (ARCHITECTURE.md)
- 添加 API 文档 (API.md)
- 添加文档索引 (docs/README.md)
- 添加部署技能 (skills/city-manual-deploy/SKILL.md)
- 添加测试技能 (skills/city-manual-test/SKILL.md)
- 添加内容管理技能 (skills/city-manual-content/SKILL.md)
2026-04-12 13:36:21 +00:00

279 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 城市手册 - 系统架构文档
## 1. 系统概述
城市手册是一个地方志兼本地生活服务平台,采用前后端分离架构。
## 2. 技术架构
### 2.1 整体架构
```
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ 用户浏览器 │ ──→ │ Nginx │ ──→ │ React │
│ │ ←── │ 反向代理 │ ←── │ 前端应用 │
└─────────────┘ └──────────────┘ └─────────────┘
┌──────────────┐
│ Django │
│ 后端 API │
└──────────────┘
┌──────────────┐
│ PostgreSQL │
│ 数据库 │
└──────────────┘
```
### 2.2 技术栈
**前端:**
- React 18
- MobX状态管理
- styled-componentsCSS-in-JS
- React Router路由
**后端:**
- Django 4.2
- Django REST Framework
- JWT 认证
- GraphQL (Graphene)
- PostgreSQL
**部署:**
- Docker & Docker Compose
- Nginx反向代理
- GunicornWSGI 服务器)
## 3. 目录结构
```
city-manual/
├── frontend/ # React 前端
│ ├── src/
│ │ ├── components/ # React 组件
│ │ ├── stores/ # MobX 状态管理
│ │ ├── services/ # API 服务
│ │ ├── styles/ # 全局样式
│ │ └── utils/ # 工具函数
│ └── public/
├── backend/ # Django 后端
│ ├── config/ # 项目配置
│ ├── apps/
│ │ ├── users/ # 用户管理
│ │ ├── regions/ # 版块管理
│ │ ├── articles/ # 内容管理
│ │ ├── services/ # 特色服务
│ │ └── interactions/ # 互动功能
│ └── static/ # 静态文件
├── docs/ # 项目文档
├── skills/ # AgentSkills
└── scripts/ # 部署脚本
```
## 4. 核心模块
### 4.1 用户模块 (users)
**功能:**
- 用户注册/登录
- JWT 认证
- 个人中心
- 角色管理(普通用户/版主/管理员)
**数据表:**
- `users_user` - 用户表
### 4.2 版块模块 (regions)
**功能:**
- 省→市→县→乡镇→村 五级层级管理
- 版块 CRUD
- 版主申请
**数据表:**
- `regions_region` - 版块表
- `regions_moderatorapplication` - 版主申请表
- `regions_moderatorpermission` - 版主权限表
### 4.3 内容模块 (articles)
**功能:**
- 文章管理
- 内容审核(版主初审 + AI 审核)
- 发布流程
**数据表:**
- `articles_article` - 文章表
### 4.4 特色服务模块 (services)
**功能:**
- 特色服务管理(衣食住行娱乐旅游文化)
- 服务审核
- 服务展示
**数据表:**
- `services_featuredservice` - 特色服务表
### 4.5 互动模块 (interactions)
**功能:**
- 评论
- 评分
- 点赞
- 收藏
**数据表:**
- `interactions_comment` - 评论表
- `interactions_rating` - 评分表
- `interactions_like` - 点赞表
- `interactions_favorite` - 收藏表
## 5. API 设计
### 5.1 REST API
| 端点 | 方法 | 说明 |
|------|------|------|
| `/api/users/` | GET, POST | 用户管理 |
| `/api/users/me/` | GET, PUT, PATCH | 当前用户 |
| `/api/auth/token/` | POST | 登录 |
| `/api/auth/token/refresh/` | POST | 刷新令牌 |
| `/api/regions/` | GET, POST | 版块管理 |
| `/api/articles/` | GET, POST | 文章管理 |
| `/api/services/` | GET, POST | 特色服务 |
| `/api/comments/` | GET, POST | 评论 |
| `/api/ratings/` | GET, POST | 评分 |
| `/api/likes/` | GET, POST | 点赞 |
| `/api/favorites/` | GET, POST | 收藏 |
### 5.2 GraphQL API
端点:`/graphql/`
**Query 类型:**
- `user(id: ID!)` - 获取用户
- `region(id: ID!)` - 获取版块
- `article(id: ID!)` - 获取文章
- `featuredService(id: ID!)` - 获取特色服务
**Mutation 类型:**
- `createArticle(input: ArticleInput!)` - 创建文章
- `updateArticle(id: ID!, input: ArticleInput!)` - 更新文章
- `deleteArticle(id: ID!)` - 删除文章
## 6. 审核流程
### 6.1 内容审核
```
用户提交 → 版主初审 → AI 审核 → 发布
↓ ↓
拒绝 拒绝
```
### 6.2 版主申请
```
用户申请 → 征集支持 → 管理员审核 → 授予权限
支持不足(自动取消)
```
## 7. 权限控制
### 7.1 角色权限
| 角色 | 权限 |
|------|------|
| 普通用户 | 浏览、评论、评分、点赞、收藏、申请版主 |
| 版主 | 管辖范围内内容初审、申请创建版块 |
| 管理员 | 全局管理、版主审核、权限管理 |
### 7.2 版主审核权限
版主只能审核其管辖范围内的内容:
- 省级版主 → 全省内容
- 市级版主 → 全市内容
- 县级版主 → 全县内容
- 以此类推
## 8. 部署架构
### 8.1 生产环境
```
用户 → Nginx (80/443) → Gunicorn (8000) → Django
PostgreSQL (5432)
```
### 8.2 Docker 服务
- `web` - Django 后端
- `frontend` - React 前端Nginx
- `db` - PostgreSQL
- `redis` - 缓存(可选)
## 9. 安全考虑
### 9.1 认证安全
- JWT 令牌认证
- 令牌有效期控制
- 刷新令牌机制
### 9.2 数据安全
- 密码加密存储PBKDF2
- SQL 注入防护Django ORM
- XSS 防护
### 9.3 访问控制
- CORS 配置
- 权限验证
- 速率限制
## 10. 性能优化
### 10.1 数据库优化
- 索引设计
- 查询优化
- 连接池
### 10.2 缓存策略
- Redis 缓存
- 页面缓存
- API 响应缓存
### 10.3 前端优化
- 代码分割
- 懒加载
- 资源压缩
## 11. 监控和日志
### 11.1 应用监控
- 错误追踪
- 性能监控
- 用户行为分析
### 11.2 日志管理
- Django 日志
- Nginx 日志
- 系统日志
## 12. 扩展性设计
### 12.1 水平扩展
- 无状态服务设计
- 数据库读写分离
- 负载均衡
### 12.2 功能扩展
- 插件化设计
- API 版本控制
- 微服务拆分预留