Files
opsxsql/PROJECT_EVALUATION.md
T
loganandClaude Opus 4.7 439155c92e Initial commit: SQL audit platform v0.1.0
FastAPI backend with auth, user, instance, ticket, query, dashboard APIs.
React + TypeScript frontend with mock data UI (10 pages).
SQLite + async SQLAlchemy, JWT auth, role-based access control.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 11:11:57 +08:00

131 lines
5.4 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.
# Web-Lite 数据审核平台 - 项目评估
> 评估日期: 2025-05-22
> 评估版本: v0.1.0-dev
---
## 一、项目概况
| 项目 | 说明 |
|------|------|
| 项目名 | Web-Lite 数据审核平台 (sql-platform) |
| 定位 | SQL 审核与工单管理平台(对标 Yearning/Archery) |
| 路径 | ~/devops/sql-platform |
| 前端 | React 19 + TS + Vite 7 + Tailwind + shadcn/ui |
| 后端 | FastAPI + SQLAlchemy 2 async + SQLite |
| 状态 | **开发初期** — 后端骨架完成,前端 UI 大量完成但依赖 mock |
---
## 二、功能完成度
### 后端 API (完成度: 60%)
| 模块 | 端点数 | 状态 | 说明 |
|------|--------|------|------|
| 认证 auth | 3 | ✅ 完成 | login/me/logout,JWT+bcrypt |
| 用户 users | 5 | ✅ 完成 | CRUD,admin 权限控制 |
| 数据源 instances | 7 | ✅ 完成 | CRUD+测试连接+列库+列表 |
| 工单 tickets | 6 | ✅ 完成 | 列表+创建+详情+审核+执行+统计 |
| 查询 query | 1 | ✅ 完成 | 仅 MySQL,SQL 注入防护(关键词级) |
| 仪表盘 dashboard | 1 | ✅ 完成 | 统计聚合 |
| **审核规则** | 0 | ❌ 缺失 | 无后端 API |
| **工作流** | 0 | ❌ 缺失 | 无后端 API |
| **数据权限** | 0 | ❌ 缺失 | 无后端 API |
| **公告管理** | 0 | ❌ 缺失 | 无后端 API |
| **自动任务** | 0 | ❌ 缺失 | 无后端 API |
### 前端页面 (完成度: 45%)
| 页面 | 路由 | 状态 | 数据来源 |
|------|------|------|---------|
| 登录 | /login | ✅ 完成 | mock |
| 仪表盘 | /dashboard | ✅ 完成 | mock |
| 工单管理 | /tickets | ✅ 完成 | mock |
| 查询审计 | /queries | ✅ 完成 | mock |
| 数据源管理 | /mysql, /postgres, /redis, /mongo | ✅ 完成 | mock |
| 用户管理 | /users | ✅ 完成 | mock |
| 角色管理 | /roles | 🔶 UI 骨架 | mock |
| 数据权限 | /data-permission | 🔶 UI 骨架 | mock |
| 审核规则 | /audit-rules | 🔶 UI 骨架 | mock |
| 工作流 | /workflow | 🔶 UI 骨架 | mock |
| 自动任务 | /auto-task | 🔶 UI 骨架 | mock |
| 公告管理 | /announcement | 🔶 UI 骨架 | mock |
| 平台配置 | /config-platform | 🔶 UI 骨架 | mock |
### API 层 (完成度: 70%)
| 文件 | 状态 | 说明 |
|------|------|------|
| api/request.ts | ✅ 完成 | axios 封装 + token 拦截 |
| api/auth.ts | ✅ 完成 | login/logout/me |
| api/user.ts | ✅ 完成 | CRUD |
| api/instance.ts | ✅ 完成 | CRUD+测试+列库+列表 |
| api/ticket.ts | ✅ 完成 | 列表+创建+审核+执行+统计 |
| api/query.ts | ✅ 完成 | 查询执行 |
| api/dashboard.ts | ✅ 完成 | 统计 |
---
## 三、代码质量评估
### ✅ 优点
1. **架构清晰** — 后端分层 (models → schemas → services → endpoints),前端分层 (api → hooks → pages)
2. **现代技术栈** — FastAPI async、React 19、TypeScript 严格模式
3. **安全基础到位** — JWT + bcrypt + 角色权限 + CORS + SQL 关键词过滤
4. **UI 统一美观** — shadcn/ui + dark/light 主题 + CSS 变量体系完善
5. **API 层完整** — 前端 API 模块和后端端点一一对应
### ⚠️ 问题
| # | 级别 | 问题 | 影响 | 建议 |
|---|------|------|------|------|
| 1 | **严重** | 前端全部使用 mock 数据,页面未调真实 API | 产品不可用 | v0.2.0 第一优先 |
| 2 | **严重** | Vite 无 proxy 配置,前端无法请求后端 | 开发阻塞 | vite.config.ts 加 proxy |
| 3 | **严重** | Instance.password 明文存储 | 安全漏洞 | AES 加密存储 |
| 4 | **高** | SQL 注入防护仅关键词匹配 | 绕过风险 | SQL AST 解析 |
| 5 | **高** | 无测试代码(0 个测试) | 回归风险 | pytest + vitest |
| 6 | **高** | 无 git commit(空仓库) | 版本风险 | 立即初始提交 |
| 7 | **中** | 只支持 MySQL 查询 | 功能限制 | 按需扩展 PG |
| 8 | **中** | 前端 mock.ts 文件过大 | 维护困难 | 按模块拆分 |
| 9 | **低** | package.json name 为 "my-app" | 不专业 | 改为 sql-platform |
| 10 | **低** | backend venv 提交到 git | 仓库膨胀 | .gitignore 排除 |
---
## 四、风险评估
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|---------|
| 前后端对接工作量被低估 | 高 | 高 | 逐页面替换 mock,优先核心页面 |
| SQL 审核引擎开发复杂 | 中 | 高 | 先做规则配置 CRUD,引擎迭代 |
| SQLite 并发瓶颈 | 低 | 中 | v0.2.0 支持 MySQL |
| 前端状态管理缺失 | 中 | 低 | 目前页面内 useState 够用,后续按需引入 |
---
## 五、项目评分
| 维度 | 评分(1-10) | 说明 |
|------|-----------|------|
| 架构设计 | **8** | 前后端分层清晰,RESTful API 规范 |
| 代码质量 | **6** | 结构好但缺乏测试和类型严格性 |
| 功能完成度 | **4** | 核心骨架在,但前后端未打通 |
| 安全性 | **5** | 基础安全到位,密码明文存储是大问题 |
| 可维护性 | **7** | 目录结构规范,命名清晰 |
| UI/UX | **8** | 精致的双主题 UI,shadcn 组件运用好 |
| 生产就绪度 | **2** | mock 数据、无测试、无部署配置 |
| **综合** | **5.7** | 基础不错,距可用还有一定距离 |
---
## 六、下一步行动 (Top 5)
1. 🔴 **初始化 git** — 提交所有代码作为 v0.1.0 基线
2. 🔴 **Vite proxy** — 配置开发环境 API 代理
3. 🔴 **Dashboard 对接 API** — 替换 mock → 真实 API
4. 🔴 **Instance 密码加密** — AES 加密存储
5. 🟡 **编写第一个测试** — pytest 后端认证模块