docs: remove technical stack and project structure sections from README
- Remove "🛠️ 技术栈" section including frontend, backend, and data storage technology tables - Remove "📁 项目结构" section with detailed project directory structure - Remove "🎯 使用指南" section including system configuration, instant analysis, project management, audit tasks, report export, and build/deployment instructions - Remove backend environment variables documentation and configuration tables - Remove "🙏 致谢" (acknowledgments) section with technology and AI platform credits - Simplify README by focusing on core content and removing detailed technical documentation that can be maintained separately
This commit is contained in:
parent
2b73ca1af4
commit
14dec67b22
265
README.md
265
README.md
|
|
@ -395,234 +395,6 @@ XCodeReviewer 支持 10+ 主流 LLM 平台,可根据需求自由选择:
|
||||||
- **权限控制**:基于角色的访问控制
|
- **权限控制**:基于角色的访问控制
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## 🛠️ 技术栈
|
|
||||||
|
|
||||||
### 前端技术栈
|
|
||||||
|
|
||||||
| 分类 | 技术 | 说明 |
|
|
||||||
| :--- | :--- | :--- |
|
|
||||||
| **前端框架** | `React 18` `TypeScript` `Vite` | 现代化前端开发栈,支持热重载和类型安全 |
|
|
||||||
| **UI 组件** | `Tailwind CSS` `Radix UI` `Lucide React` | 响应式设计,无障碍访问,丰富的图标库 |
|
|
||||||
| **数据可视化** | `Recharts` | 专业的图表库,支持多种图表类型 |
|
|
||||||
| **路由管理** | `React Router v6` | 单页应用路由解决方案 |
|
|
||||||
| **状态管理** | `React Hooks` `Sonner` | 轻量级状态管理和通知系统 |
|
|
||||||
| **HTTP 客户端** | `Axios` `Ky` | 现代化的 HTTP 请求库 |
|
|
||||||
| **代码质量** | `Biome` `Ast-grep` `TypeScript` | 代码格式化、静态分析和类型检查 |
|
|
||||||
| **构建工具** | `Vite` `PostCSS` `Autoprefixer` | 快速的构建工具和 CSS 处理 |
|
|
||||||
|
|
||||||
### 后端技术栈
|
|
||||||
|
|
||||||
| 分类 | 技术 | 说明 |
|
|
||||||
| :--- | :--- | :--- |
|
|
||||||
| **Web 框架** | `FastAPI` | 高性能异步 Python Web 框架 |
|
|
||||||
| **数据库** | `PostgreSQL` `SQLAlchemy` `Alembic` | 关系型数据库 + ORM + 数据库迁移 |
|
|
||||||
| **认证授权** | `python-jose` `passlib` `bcrypt` | JWT Token 认证和密码加密 |
|
|
||||||
| **LLM 集成** | `LiteLLM` | 统一的 LLM API 适配层,支持 10+ 平台 |
|
|
||||||
| **HTTP 客户端** | `httpx` | 异步 HTTP 客户端 |
|
|
||||||
| **数据验证** | `Pydantic` | 数据验证和序列化 |
|
|
||||||
|
|
||||||
### 数据存储
|
|
||||||
|
|
||||||
| 分类 | 技术 | 说明 |
|
|
||||||
| :--- | :--- | :--- |
|
|
||||||
| **前端本地存储** | `IndexedDB` | 浏览器本地数据库,开箱即用 |
|
|
||||||
| **云端数据库** | `Supabase` | 可选的云端数据同步 |
|
|
||||||
| **后端数据库** | `PostgreSQL` | 生产环境推荐的关系型数据库 |
|
|
||||||
|
|
||||||
## 📁 项目结构
|
|
||||||
|
|
||||||
```
|
|
||||||
XCodeReviewer/
|
|
||||||
├── frontend/ # 前端项目
|
|
||||||
│ ├── src/
|
|
||||||
│ │ ├── app/ # 应用配置和路由
|
|
||||||
│ │ │ ├── App.tsx # 主应用组件
|
|
||||||
│ │ │ ├── main.tsx # 应用入口点
|
|
||||||
│ │ │ ├── routes.tsx # 路由配置
|
|
||||||
│ │ │ └── ProtectedRoute.tsx # 路由守卫
|
|
||||||
│ │ ├── components/ # React 组件
|
|
||||||
│ │ │ ├── layout/ # 布局组件 (Sidebar, PageMeta)
|
|
||||||
│ │ │ ├── ui/ # UI 组件库 (基于 Radix UI)
|
|
||||||
│ │ │ ├── system/ # 系统配置组件
|
|
||||||
│ │ │ ├── database/ # 数据库管理组件
|
|
||||||
│ │ │ ├── audit/ # 审计任务组件
|
|
||||||
│ │ │ ├── analysis/ # 分析进度组件
|
|
||||||
│ │ │ ├── reports/ # 报告导出组件
|
|
||||||
│ │ │ └── debug/ # 调试组件
|
|
||||||
│ │ ├── pages/ # 页面组件
|
|
||||||
│ │ │ ├── Dashboard.tsx # 仪表盘
|
|
||||||
│ │ │ ├── Projects.tsx # 项目管理
|
|
||||||
│ │ │ ├── InstantAnalysis.tsx # 即时分析
|
|
||||||
│ │ │ ├── AuditTasks.tsx # 审计任务
|
|
||||||
│ │ │ ├── AdminDashboard.tsx # 系统管理
|
|
||||||
│ │ │ ├── Login.tsx # 登录页面
|
|
||||||
│ │ │ ├── Register.tsx # 注册页面
|
|
||||||
│ │ │ └── Account.tsx # 账户管理
|
|
||||||
│ │ ├── features/ # 功能模块
|
|
||||||
│ │ │ ├── analysis/ # 代码分析服务
|
|
||||||
│ │ │ ├── projects/ # 项目扫描服务
|
|
||||||
│ │ │ └── reports/ # 报告生成服务
|
|
||||||
│ │ ├── shared/ # 共享工具
|
|
||||||
│ │ │ ├── api/ # API 客户端
|
|
||||||
│ │ │ ├── config/ # 配置文件
|
|
||||||
│ │ │ ├── context/ # React Context
|
|
||||||
│ │ │ ├── hooks/ # 自定义 Hooks
|
|
||||||
│ │ │ ├── i18n/ # 国际化
|
|
||||||
│ │ │ ├── types/ # TypeScript 类型
|
|
||||||
│ │ │ └── utils/ # 工具函数
|
|
||||||
│ │ └── assets/ # 静态资源
|
|
||||||
│ └── public/ # 公共资源
|
|
||||||
│
|
|
||||||
├── backend/ # 后端项目
|
|
||||||
│ ├── app/
|
|
||||||
│ │ ├── api/ # API 路由
|
|
||||||
│ │ │ └── v1/
|
|
||||||
│ │ │ └── endpoints/ # API 端点
|
|
||||||
│ │ │ ├── auth.py # 认证接口
|
|
||||||
│ │ │ ├── users.py # 用户管理
|
|
||||||
│ │ │ ├── projects.py # 项目管理
|
|
||||||
│ │ │ ├── tasks.py # 任务管理
|
|
||||||
│ │ │ ├── scan.py # 代码扫描
|
|
||||||
│ │ │ ├── config.py # 配置管理
|
|
||||||
│ │ │ └── database.py # 数据库操作
|
|
||||||
│ │ ├── core/ # 核心模块
|
|
||||||
│ │ │ ├── config.py # 配置管理
|
|
||||||
│ │ │ ├── security.py # 安全认证
|
|
||||||
│ │ │ └── encryption.py # 加密工具
|
|
||||||
│ │ ├── db/ # 数据库
|
|
||||||
│ │ │ ├── base.py # 数据库基类
|
|
||||||
│ │ │ └── session.py # 数据库会话
|
|
||||||
│ │ ├── models/ # 数据模型
|
|
||||||
│ │ │ ├── user.py # 用户模型
|
|
||||||
│ │ │ ├── project.py # 项目模型
|
|
||||||
│ │ │ ├── audit.py # 审计模型
|
|
||||||
│ │ │ └── analysis.py # 分析模型
|
|
||||||
│ │ ├── schemas/ # Pydantic 模式
|
|
||||||
│ │ │ ├── user.py # 用户模式
|
|
||||||
│ │ │ └── token.py # Token 模式
|
|
||||||
│ │ ├── services/ # 业务服务
|
|
||||||
│ │ │ ├── llm/ # LLM 服务
|
|
||||||
│ │ │ │ ├── factory.py # LLM 工厂
|
|
||||||
│ │ │ │ ├── service.py # LLM 服务
|
|
||||||
│ │ │ │ ├── base_adapter.py # 基础适配器
|
|
||||||
│ │ │ │ └── adapters/ # 平台适配器
|
|
||||||
│ │ │ │ ├── litellm_adapter.py # LiteLLM 统一适配
|
|
||||||
│ │ │ │ ├── baidu_adapter.py # 百度适配器
|
|
||||||
│ │ │ │ ├── minimax_adapter.py # MiniMax 适配器
|
|
||||||
│ │ │ │ └── doubao_adapter.py # 豆包适配器
|
|
||||||
│ │ │ ├── scanner.py # 代码扫描服务
|
|
||||||
│ │ │ └── zip_storage.py # ZIP 文件存储
|
|
||||||
│ │ └── main.py # 应用入口
|
|
||||||
│ ├── alembic/ # 数据库迁移
|
|
||||||
│ └── uploads/ # 上传文件存储
|
|
||||||
│
|
|
||||||
├── supabase/ # Supabase 配置
|
|
||||||
│ └── migrations/ # 数据库迁移文件
|
|
||||||
├── docker-compose.yml # Docker Compose 配置(开发环境)
|
|
||||||
├── Dockerfile # 前端生产环境 Docker 镜像
|
|
||||||
├── nginx.conf # Nginx 配置(生产环境)
|
|
||||||
└── scripts/ # 构建和设置脚本
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🎯 使用指南
|
|
||||||
|
|
||||||
### 系统配置(首次使用必看)
|
|
||||||
|
|
||||||
访问 `/admin` 系统管理页面,在"系统配置"标签页中配置:
|
|
||||||
|
|
||||||
#### 1. **配置 LLM 提供商**
|
|
||||||
- 选择您要使用的 LLM 平台(Gemini、OpenAI、Claude 等)
|
|
||||||
- 填入 API Key(支持通用 Key 或平台专用 Key)
|
|
||||||
- 可选:配置模型名称、API 基础 URL(用于中转站)
|
|
||||||
|
|
||||||
#### 2. **配置 API 中转站**(如果使用)
|
|
||||||
- 在"API 基础 URL"中填入中转站地址(如 `https://your-proxy.com/v1`)
|
|
||||||
- 填入中转站提供的 API Key
|
|
||||||
- 保存配置
|
|
||||||
|
|
||||||
#### 3. **调整分析参数**(可选)
|
|
||||||
- 最大分析文件数、并发请求数、请求间隔
|
|
||||||
- 输出语言(中文/英文)
|
|
||||||
|
|
||||||
**配置完成后点击"保存所有更改"并刷新页面即可使用。**
|
|
||||||
|
|
||||||
### 即时代码分析
|
|
||||||
1. 访问 `/instant-analysis` 页面
|
|
||||||
2. 选择编程语言(支持 10+ 种语言)
|
|
||||||
3. 粘贴代码或上传文件
|
|
||||||
4. 点击"开始分析"获得 AI 分析结果
|
|
||||||
5. 查看详细的问题报告和修复建议
|
|
||||||
|
|
||||||
### 项目管理
|
|
||||||
1. 访问 `/projects` 页面
|
|
||||||
2. 点击"新建项目"创建项目
|
|
||||||
3. 配置仓库 URL 和扫描参数
|
|
||||||
4. 启动代码审计任务
|
|
||||||
5. 查看审计结果和问题统计
|
|
||||||
|
|
||||||
### 审计任务
|
|
||||||
1. 在项目详情页创建审计任务
|
|
||||||
2. 选择扫描分支和排除模式
|
|
||||||
3. 配置分析深度和范围
|
|
||||||
4. 监控任务执行状态
|
|
||||||
5. 查看详细的问题报告
|
|
||||||
|
|
||||||
### 审计报告导出
|
|
||||||
1. 在任务详情页点击"导出报告"按钮
|
|
||||||
2. 选择导出格式:
|
|
||||||
- **JSON 格式**:结构化数据,适合程序处理和集成
|
|
||||||
- **PDF 格式**:专业报告,适合打印和分享(通过浏览器打印功能)
|
|
||||||
3. JSON 报告包含完整的任务信息、问题详情和统计数据
|
|
||||||
4. PDF 报告提供美观的可视化展示,支持中文显示
|
|
||||||
|
|
||||||
### 构建和部署
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 前端开发模式
|
|
||||||
cd frontend && pnpm dev
|
|
||||||
|
|
||||||
# 前端构建生产版本
|
|
||||||
cd frontend && pnpm build
|
|
||||||
|
|
||||||
# 后端开发模式
|
|
||||||
cd backend && uvicorn app.main:app --reload
|
|
||||||
|
|
||||||
# 代码检查
|
|
||||||
cd frontend && pnpm lint
|
|
||||||
```
|
|
||||||
|
|
||||||
### 后端环境变量说明
|
|
||||||
|
|
||||||
#### 核心配置
|
|
||||||
| 变量名 | 必需 | 默认值 | 说明 |
|
|
||||||
|--------|------|--------|------|
|
|
||||||
| `POSTGRES_SERVER` | ✅ | `localhost` | PostgreSQL 服务器地址 |
|
|
||||||
| `POSTGRES_USER` | ✅ | `postgres` | 数据库用户名 |
|
|
||||||
| `POSTGRES_PASSWORD` | ✅ | `postgres` | 数据库密码 |
|
|
||||||
| `POSTGRES_DB` | ✅ | `xcodereviewer` | 数据库名称 |
|
|
||||||
| `SECRET_KEY` | ✅ | - | JWT 密钥(生产环境必须修改) |
|
|
||||||
|
|
||||||
#### LLM 配置
|
|
||||||
| 变量名 | 必需 | 默认值 | 说明 |
|
|
||||||
|--------|------|--------|------|
|
|
||||||
| `LLM_PROVIDER` | ✅ | `openai` | LLM 提供商 |
|
|
||||||
| `LLM_API_KEY` | ✅ | - | API Key |
|
|
||||||
| `LLM_MODEL` | ❌ | 自动 | 模型名称 |
|
|
||||||
| `LLM_BASE_URL` | ❌ | - | API 中转站地址 |
|
|
||||||
| `LLM_TIMEOUT` | ❌ | `150` | 请求超时(秒) |
|
|
||||||
| `LLM_TEMPERATURE` | ❌ | `0.1` | 温度参数 |
|
|
||||||
| `LLM_MAX_TOKENS` | ❌ | `4096` | 最大输出 Token |
|
|
||||||
|
|
||||||
#### 仓库扫描配置
|
|
||||||
| 变量名 | 默认值 | 说明 |
|
|
||||||
|--------|--------|------|
|
|
||||||
| `GITHUB_TOKEN` | - | GitHub Personal Access Token |
|
|
||||||
| `GITLAB_TOKEN` | - | GitLab Personal Access Token |
|
|
||||||
| `MAX_ANALYZE_FILES` | `50` | 单次最大分析文件数 |
|
|
||||||
| `MAX_FILE_SIZE_BYTES` | `204800` | 单文件最大大小(字节) |
|
|
||||||
| `LLM_CONCURRENCY` | `3` | LLM 并发请求数 |
|
|
||||||
| `LLM_GAP_MS` | `2000` | 请求间隔(毫秒) |
|
|
||||||
|
|
||||||
## 🤝 贡献指南
|
## 🤝 贡献指南
|
||||||
|
|
||||||
我们热烈欢迎所有形式的贡献!无论是提交 issue、创建 PR,还是改进文档,您的每一次贡献对我们都至关重要。请联系我们了解详细信息。
|
我们热烈欢迎所有形式的贡献!无论是提交 issue、创建 PR,还是改进文档,您的每一次贡献对我们都至关重要。请联系我们了解详细信息。
|
||||||
|
|
@ -635,43 +407,6 @@ cd frontend && pnpm lint
|
||||||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||||||
5. 创建一个 **Pull Request**
|
5. 创建一个 **Pull Request**
|
||||||
|
|
||||||
## 🙏 致谢
|
|
||||||
|
|
||||||
### 核心技术支持
|
|
||||||
- **[React](https://reactjs.org/)** & **[Vite](https://vitejs.dev/)**: 提供现代化的前端开发体验
|
|
||||||
- **[FastAPI](https://fastapi.tiangolo.com/)**: 高性能 Python Web 框架
|
|
||||||
- **[TypeScript](https://www.typescriptlang.org/)**: 提供类型安全保障
|
|
||||||
- **[Tailwind CSS](https://tailwindcss.com/)**: 提供现代化的 CSS 框架
|
|
||||||
- **[Radix UI](https://www.radix-ui.com/)**: 提供无障碍的 UI 组件库
|
|
||||||
- **[LiteLLM](https://github.com/BerriAI/litellm)**: 统一的 LLM API 适配层
|
|
||||||
|
|
||||||
### AI 平台支持
|
|
||||||
- **[Google Gemini AI](https://ai.google.dev/)**: 提供强大的 AI 分析能力
|
|
||||||
- **[OpenAI](https://openai.com/)**: GPT系列模型支持
|
|
||||||
- **[Anthropic Claude](https://www.anthropic.com/)**: Claude模型支持
|
|
||||||
- **[DeepSeek](https://www.deepseek.com/)**: 国产AI大模型支持
|
|
||||||
- **[阿里云通义千问](https://tongyi.aliyun.com/)**: 企业级AI服务
|
|
||||||
- **[智谱AI](https://www.zhipuai.cn/)**: GLM系列模型
|
|
||||||
- **[Moonshot AI](https://www.moonshot.cn/)**: Kimi模型支持
|
|
||||||
- **[Ollama](https://ollama.com/)**: 本地模型部署方案
|
|
||||||
|
|
||||||
### 数据存储
|
|
||||||
- **[PostgreSQL](https://www.postgresql.org/)**: 强大的关系型数据库
|
|
||||||
- **[Supabase](https://supabase.com/)**: 提供便捷的后端即服务支持
|
|
||||||
- **[IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)**: 浏览器本地存储方案
|
|
||||||
|
|
||||||
### 功能组件
|
|
||||||
- **[Recharts](https://recharts.org/)**: 提供专业的图表组件
|
|
||||||
- **[Lucide Icons](https://lucide.dev/)**: 提供精美的图标库
|
|
||||||
- **[Sonner](https://sonner.emilkowal.ski/)**: 提供优雅的通知组件
|
|
||||||
- **[fflate](https://github.com/101arrowz/fflate)**: ZIP文件处理
|
|
||||||
|
|
||||||
### 特别感谢
|
|
||||||
- 感谢所有为本项目提交 Issue 和 Pull Request 的贡献者
|
|
||||||
- 感谢所有 Star 本项目的开发者
|
|
||||||
- 感谢开源社区的无私分享精神
|
|
||||||
- 以及所有本项目所使用的开源软件的作者们!
|
|
||||||
|
|
||||||
## 👥 贡献者
|
## 👥 贡献者
|
||||||
|
|
||||||
感谢以下优秀的贡献者们,他们让 XCodeReviewer 更强大!
|
感谢以下优秀的贡献者们,他们让 XCodeReviewer 更强大!
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue