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, 代码质量分析, 域名枚举, 技术债评估, 架构可视化, 请求拦截, 错误基检测, 静态代码分析