Files
Pre_Seg_Server/工程分析/项目整体分析.md

6.3 KiB
Raw Blame History

项目整体分析 — 语义分割系统Seg_Server

分析时间: 2026-04-28-22-55-15
本文档面向代码编纂工作流,提供项目全景视图,用于快速理解项目结构和当前状态。


一、项目基本信息

属性
项目名称 react-examplepackage.json name
业务名称 语义分割系统Semantic Segmentation System
部署目标 Google AI Studio / Cloud Run
应用链接 https://ai.studio/apps/2707f0e1-d453-4594-a618-fba53cb937c4
业务文档 语义分割系统构建方案.docx(未解析)
代码仓库 http://192.168.31.5:5002/admin/Seg_Server.git

二、技术栈

层级 技术选型 版本
前端框架 React + TypeScript React 19, TS 5.8
构建工具 Vite v6
样式方案 TailwindCSS + 自定义深色主题 v4
状态管理 React useState无外部状态库 -
路由 无路由库,基于 React 状态切换 -
Canvas 渲染 Konva + react-konva -
图标库 lucide-react -
动画 motion -
AI SDK @google/genaiGemini API -
后端 Express v4
运行时 Node.js ES Modules "type": "module"

三、目录结构

Seg_Server/
├── server.ts                    # Express 服务端入口(开发服务器 + 生产静态文件服务)
├── index.html                   # SPA HTML 入口
├── vite.config.ts               # Vite 构建配置(含 DISABLE_HMR 逻辑)
├── tsconfig.json                # TypeScript 配置
├── package.json                 # 依赖与脚本
├── .env.example                 # 环境变量模板
├── metadata.json                # AI Studio 元数据(目前为空)
├── AGENTS.md                    # AI 助手项目指南
├── 语义分割系统构建方案.docx      # 业务方案文档
├── src/
│   ├── main.tsx                 # React 应用挂载点StrictMode
│   ├── App.tsx                  # 根组件:模块路由 + 登录鉴权
│   ├── index.css                # TailwindCSS 导入 + 自定义工具类
│   ├── lib/
│   │   └── utils.ts             # cn() 工具函数clsx + tailwind-merge
│   └── components/
│       ├── auth/
│       │   └── Login.tsx        # 登录页admin / 123456
│       ├── layout/
│       │   └── Sidebar.tsx      # 左侧导航栏w-16引用 /Logo.png缺失
│       ├── dashboard/
│       │   └── Dashboard.tsx    # 总体概况仪表盘
│       ├── projects/
│       │   └── ProjectLibrary.tsx  # 项目库列表
│       ├── workspace/
│       │   ├── VideoWorkspace.tsx  # 核心分割工作区布局32 行)
│       │   ├── CanvasArea.tsx      # Konva 画布(缩放/平移/选点140 行)
│       │   ├── ToolsPalette.tsx    # 左侧工具栏
│       │   ├── OntologyInspector.tsx  # 右侧本体/属性检查面板
│       │   └── FrameTimeline.tsx   # 底部时间轴
│       ├── ai/
│       │   └── AISegmentation.tsx  # AI 智能分割引擎界面
│       └── templates/
│           └── TemplateRegistry.tsx  # 模板库管理

四、模块与路由

App.tsxactiveModule 状态控制当前显示模块:

模块标识 组件 功能
dashboard Dashboard.tsx 总体概况仪表盘
projects ProjectLibrary.tsx 项目库列表
ai AISegmentation.tsx AI 智能分割引擎
workspace VideoWorkspace.tsx 核心分割工作区(默认进入)
templates TemplateRegistry.tsx 模板库管理

未登录时全局拦截,显示 Login 组件。


五、后端 API

server.ts 提供以下端点(内存数据存储,无数据库):

方法 端点 说明
POST /api/login 认证,固定用户名 admin / 密码 123456
GET /api/projects 返回项目列表
GET /api/templates 返回模板列表

六、已知问题与风险

问题 影响 状态
Sidebar.tsx 引用 /Logo.png,文件不存在 运行时 404 待修复
硬编码登录凭据admin/123456 安全风险 已知,需替换
使用 fake JWT token 无实际签名验证 已知
内存数据存储 服务重启数据丢失 设计如此
未配置 CORS / Helmet 安全头缺失 待评估
无测试框架 无自动化测试 待引入

七、构建与部署

可用命令

npm install    # 安装依赖
npm run dev    # 开发模式Express + Vite 中间件,端口 3000
npm run build  # 生产构建(输出到 dist/
npm run preview  # 预览生产构建
npm start      # 生产模式启动(需先 build
npm run lint   # 类型检查
npm run clean  # 清理构建产物

环境变量

GEMINI_API_KEY    # Gemini AI API 密钥
APP_URL           # 应用托管 URL
DISABLE_HMR       # 设为 true 关闭 HMRAI Studio 环境)

八、关键依赖

生产依赖

  • react, react-dom
  • @google/genai
  • express
  • konva, react-konva
  • use-image
  • lucide-react
  • motion
  • clsx, tailwind-merge
  • tailwindcss

开发依赖

  • vite
  • @vitejs/plugin-react
  • typescript
  • @types/react, @types/react-dom, @types/express, @types/node

九、代码风格要点

  1. 深色主题: 全局背景 #0a0a0a#111#0d0d0d#151515#1e1e1e
  2. 强调色: 青色 cyan-400/cyan-500 用于激活状态
  3. 工具类优先: TailwindCSS 工具类,cn() 合并条件类名
  4. 中文界面: 所有 UI 文本必须使用中文
  5. 函数组件: 全部使用函数组件 + Hooks无类组件
  6. PascalCase: 组件文件名(如 AISegmentation.tsx
  7. 路径别名: @/* 映射项目根目录

十、历史变更记录

时间 变更内容 关联文档
2026-04-28-22-55-15 建立代码编纂工作流 代码编纂工作流.md

本文件由 AI 助手根据项目实际内容生成。当项目结构或技术栈发生重大变化时,应同步更新本文档。