一个基于React的数据流管理平台,提供Node和Pipeline的可视化管理功能。
- 登录页面(测试账号:admin/admin)
- 用户会话管理
- Node列表展示
- Node创建和编辑
- 支持多种Node类型(输入、处理、输出)
- Node搜索和筛选
- Pipeline列表展示
- 可视化DAG编辑器
- Pipeline创建、编辑和查看
- Pipeline运行控制(启动、停止)
- 实时运行状态监控
- Pipeline运行历史记录
- 详细的执行日志
- 运行统计数据
- 历史记录筛选和搜索
- 完整的开发环境配置
- 代码质量检查(ESLint + Prettier)
- 自动化测试框架
- Docker容器化支持
- CI/CD流水线配置
- VS Code开发配置
- Makefile自动化脚本
- 环境变量配置
- Git工作流支持
- 依赖管理和版本控制
- 文档和贡献指南
- 前端框架: React 18
- 路由管理: React Router v6
- UI组件库: Ant Design v5
- DAG可视化: ReactFlow v11
- 状态管理: React Hooks
- 样式: CSS + Ant Design
- 构建工具: Create React App
src/
├── pages/ # 页面组件
│ ├── Login.js # 登录页面
│ ├── NodeList.js # Node列表页面
│ ├── NodeCreate.js # Node创建/编辑页面
│ ├── PipelineList.js # Pipeline列表页面
│ ├── PipelineCreate.js # Pipeline创建/编辑页面(含DAG编辑器)
│ └── PipelineHistory.js # Pipeline运行历史页面
├── components/ # 通用组件
│ └── ParamMappingConfig.js # 参数映射配置组件
├── utils/ # 工具函数
│ ├── constants.js # 常量定义
│ ├── helpers.js # 通用工具函数
│ ├── api.js # API请求工具
│ └── __tests__/ # 测试文件
├── App.js # 主应用组件
├── index.js # 应用入口
└── index.css # 全局样式
- Node.js >= 16.0.0
- npm >= 8.0.0
- Git
# 克隆项目
git clone <repository-url>
cd dataflow-platform
# 使用Makefile快速设置(推荐)
make setup
# 或者手动安装
npm install
# 启动开发服务器
make start
# 或者
npm start
# 构建生产版本
make build
# 或者
npm run build应用将在 http://localhost:3000 启动
# 查看所有可用命令
make help
# 开发相关
make start # 启动开发服务器
make build # 构建生产版本
make test # 运行测试
make lint # 代码检查
make format # 代码格式化
# Docker相关
make docker:build # 构建Docker镜像
make docker:run # 运行Docker容器
# Git相关
make git-init # 初始化Git仓库
make git-commit # 提交更改- 访问应用首页
- 使用测试账号登录:
- 用户名:admin
- 密码:admin
- 查看Node列表:在侧边栏点击"Node列表"
- 创建Node:点击"创建Node"按钮,填写Node信息
- 编辑Node:在列表中点击"编辑"按钮
- 删除Node:在列表中点击"删除"按钮
- 查看Pipeline列表:在侧边栏点击"Pipeline列表"
- 创建Pipeline:
- 点击"创建Pipeline"按钮
- 填写Pipeline基本信息
- 在DAG编辑器中添加和连接节点
- 保存Pipeline
- 编辑Pipeline:在列表中点击"编辑"按钮
- 运行Pipeline:在列表中点击"运行"按钮
- 停止Pipeline:在列表中点击"停止"按钮
- 添加节点:点击右上角"添加节点"按钮,选择节点类型
- 连接节点:拖拽节点的连接点来创建连接
- 移动节点:直接拖拽节点来调整位置
- 配置节点:点击节点打开配置面板
- 删除节点:在配置面板中点击"删除节点"
- 查看历史:在侧边栏点击"运行历史"
- 筛选记录:使用搜索框、状态筛选器和时间范围筛选
- 查看详情:点击"详情"按钮查看运行详细信息
- 重新运行:点击"重跑"按钮重新执行Pipeline
- 下载日志:点击"日志"按钮下载执行日志
- 主应用组件,包含路由配置和布局
- 管理用户登录状态
- 提供侧边栏导航
- 用户登录界面
- 简单的用户名密码验证
- Node的列表展示和创建编辑功能
- 支持搜索、筛选、分页
- Pipeline列表展示
- 运行状态监控
- Pipeline操作(运行、停止、编辑、删除)
- Pipeline创建和编辑
- 集成ReactFlow的DAG可视化编辑器
- 支持节点添加、连接、配置
- 运行历史记录展示
- 统计数据展示
- 历史记录筛选和操作
当前版本使用模拟数据,实际部署时需要:
- 替换API调用逻辑
- 集成真实的后端服务
- 添加错误处理和加载状态
可以考虑添加的功能:
- 用户权限管理
- Pipeline模板功能
- 更丰富的Node类型
- 实时监控面板
- 数据血缘分析
- 调度配置功能
项目使用ESLint和Prettier来保证代码质量:
# 检查代码规范
make lint
# 或者
npm run lint
# 自动修复代码格式
npm run lint:fix
# 格式化代码
make format
# 或者
npm run format
# 运行完整验证
npm run validate# 运行测试
make test
# 或者
npm test
# 运行测试并生成覆盖率报告
npm run test:coverage
# CI模式运行测试
npm run test:ci# 构建Docker镜像
make docker:build
# 运行Docker容器
make docker:run
# 使用docker-compose(开发环境)
npm run docker:dev
# 使用docker-compose(生产环境)
npm run docker:prodsrc/pages/: 页面组件,每个页面对应一个路由src/components/: 可复用的UI组件src/utils/: 工具函数和常量定义constants.js: 应用常量helpers.js: 通用工具函数api.js: API请求封装__tests__/: 测试文件
src/App.js: 主应用组件,包含路由配置src/index.js: 应用入口文件public/: 静态资源文件.vscode/: VS Code编辑器配置.github/: GitHub Actions CI/CD配置docker/: Docker相关配置文件
make build
# 或者
npm run build构建完成后,build 目录包含了可以部署到Web服务器的静态文件。
# 构建Docker镜像
docker build -t dataflow-frontend .
# 运行容器
docker run -p 3000:80 dataflow-frontend
# 使用docker-compose
docker-compose up -d将build目录上传到任何静态文件服务器,如Nginx、Apache等。
- Vercel: 连接GitHub仓库自动部署
- Netlify: 拖拽build目录或连接Git仓库
- AWS S3: 上传到S3并配置CloudFront
- 阿里云OSS: 上传到OSS并配置CDN
项目已配置GitHub Actions,推送到main分支会自动触发部署流程。
复制.env.example为.env并根据实际环境配置:
cp .env.example .env
# 编辑.env文件欢迎提交Issue和Pull Request来改进项目!请阅读贡献指南了解详细信息。
- Fork项目
- 克隆到本地:
git clone https://github.com/YOUR_USERNAME/dataflow-platform.git - 安装依赖:
make install - 创建功能分支:
git checkout -b feature/amazing-feature - 进行开发并测试:
make validate - 提交更改:
git commit -m 'feat: add amazing feature' - 推送分支:
git push origin feature/amazing-feature - 创建Pull Request
使用Conventional Commits规范:
feat: 新功能fix: 修复bugdocs: 文档更新style: 代码格式调整refactor: 代码重构test: 测试相关chore: 构建过程或辅助工具的变动
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
如果这个项目对您有帮助,请给我们一个⭐️!
如果您遇到问题或有建议,请:
- 查看FAQ(待完善)
- 提交Issue
- 参与讨论
- 发送邮件至:your.email@example.com