Krishnakumar-Naik/AI-Software-Architect
GitHub: Krishnakumar-Naik/AI-Software-Architect
AI Software Architect 是一个基于 Gemini 的代码库架构分析与可视化平台,通过交互式知识图谱和五维健康度评分帮助开发者理解、评估和改进软件架构质量。
Stars: 1 | Forks: 0
# AI Software Architect - 全代码库可视化与审计平台
AI Software Architect 是一个交互式的代码库解析、架构可视化和文档化平台。它可以映射目录结构,检测 MVC 分层违规,生成 PDF 文档套件,并允许您与一个基于上下文的 Gemini 助手就代码设计进行交流。
## 🌟 核心功能
1. 📂 **多语言代码库导入**:通过 ZIP 上传、远程 GitHub Clone URL 或原始代码粘贴的方式导入代码库(支持 Java、JavaScript、TypeScript、Python)。
2. 📊 **交互式知识图谱**:美观且响应迅速的力导向图(基于 Cytoscape.js),用于追踪类依赖关系、服务调用和 API 路由。
3. 🩺 **五要素架构健康度评分**:满分 100 分的动态评分系统,检查以下内容:
- *循环依赖*(基于 DFS 的循环检查器)
- *MVC 分层违规*(例如:repository 直接访问 controller)
- *耦合密度*(每个类的连接数)
- *包均衡度*(主导的包模块)
- *Endpoint 复杂度*(每个 controller 的平均路由路径数)
4. 🤖 **基于上下文的 AI 架构师助手**:流式输出自定义代码重构建议、安全评估以及模拟系统设计面试筛选问题。
5. 🔓 **展示模式与公开分享**:生成唯一的分享链接(`/share/{projectId}`),方便招聘人员查看或用于技术作品集,实现无需注册的可视化图谱探索。
6. 📄 **PDF 文档与报告导出**:将架构概览、技术摘要、API 路由规范和技术债务日志打包,生成专业的 PDF 导出文件。
## 🛠️ 技术栈
- **后端**:Java 21、Spring Boot 3、Spring AI (Gemini Flash)、Spring Security (HttpOnly 安全 JWT Cookie)、Flyway 数据库迁移、Hibernate JPA、MySQL。
- **前端**:React、TypeScript、Tailwind CSS、Shadcn UI、Cytoscape.js、TanStack React Query。
- **DevOps**:Docker、Vercel、Railway。
## ⚙️ 本地安装与设置
### 前置条件
- **Java 21** & **Node.js 22**
- **MySQL Server**(运行在 `localhost:3306`,数据库名为 `ai_software_architect`)
- **Gemini API Key**(从 Google AI Studio 获取)
### 环境设置
1. 在根目录下将 `.env.example` 复制一份并命名为 `.env`:
cp .env.example .env
2. 设置您的自定义凭证,包括您的 `GEMINI_API_KEY`:
GEMINI_API_KEY=your_gemini_key_here
DB_PASSWORD=your_mysql_password
JWT_SECRET=your_secure_random_base64_string
### 1. 本地运行(开发模式)
#### 运行后端:
```
cd backend
$env:JAVA_HOME="C:\Program Files\Java\jdk-22" # Set your JDK path
.\mvnw.cmd spring-boot:run
```
#### 运行前端:
```
cd frontend
npm install
npm run dev
```
- 本地客户端门户访问地址:`http://localhost:5173`
## 🐳 Docker 部署设置
### 1. 开发环境
以开发配置启动 MySQL、后端和前端容器:
```
docker compose up -d --build
```
### 2. 生产环境
使用生产环境配置文件和 schema 校验来容器化各项服务:
```
docker compose -f docker-compose.prod.yml up -d --build
```
- **React 前端 (Nginx)**:`http://localhost` (80 端口)
- **Spring API 服务器**:`http://localhost:8080`
## 🚀 云端部署指南
### 后端:Railway 部署
Railway 会自动检测 Maven 配置。
1. 将您的代码库连接到 Railway,并添加一个新的 MySQL 数据库服务。
2. 关联 Java 后端服务,并在 Railway 环境仪表板中配置以下变量:
- `SPRING_PROFILES_ACTIVE` = `prod`
- `DB_HOST` = `${{MYSQL_HOST}}`
- `DB_PORT` = `${{MYSQL_PORT}}`
- `DB_NAME` = `${{MYSQL_DATABASE}}`
- `DB_USER` = `${{MYSQL_USER}}`
- `DB_PASSWORD` = `${{MYSQL_PASSWORD}}`
- `GEMINI_API_KEY` = `your_gemini_key`
- `JWT_SECRET` = `your_random_base64`
- `JWT_COOKIE_SECURE` = `true`
3. 暴露 Railway 服务域名。
### 前端:Vercel 部署
Vercel 是部署静态 SPA React 应用的绝佳选择。
1. 连接您的 GitHub 代码库,并将 Root Directory 设置为 `frontend`。
2. 配置环境变量:
- `VITE_API_BASE_URL` = `https://your-backend-railway-url.railway.app`
3. 部署!`vercel.json` 中的 SPA 重定向配置可确保嵌套的 React 路由(如 `/share/:id`)顺利编译。
## 🔎 验证与 API Endpoints
- **系统健康监控**:`http://localhost:8080/actuator/health`
- **Swagger REST 文档**:`http://localhost:8080/swagger-ui/index.html`
- **展示演示门户(无需身份验证)**:`http://localhost/demo`
标签:AI辅助编程, React, Spring Boot, Syscalls, 代码质量分析, 域名枚举, 技术债评估, 架构可视化, 请求拦截, 错误基检测, 静态代码分析