# project-manager **Repository Path**: yu-caiyi/project-manager ## Basic Information - **Project Name**: project-manager - **Description**: prd:https://bcn6tttre0hu.feishu.cn/docx/Juukdua0fo55Txx7EzPcSkKsnff - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Project Manager 本地项目管理工具,通过浏览器管理 Web 项目的启停和状态监控。 ## 功能特性 - 项目启停控制(启动、停止、重启) - 实时状态监控(运行中/已停止) - 实时日志查看(stdout/stderr) - 端口占用检测与进程查杀 - 批量操作支持 - 明暗主题切换 - WebSocket 实时推送 - 跨平台支持(Windows/macOS/Linux) ## 技术栈 - **后端**:Express + WebSocket + Node.js - **前端**:React 18 + Vite 5 - **数据存储**:JSON 文件(无数据库依赖) ## 快速开始 ### 安装依赖 ```bash npm install ``` ### 开发模式 同时启动前端和后端: ```bash npm run dev ``` - 前端:http://localhost:5173 - 后端:http://localhost:3999 ### 仅启动后端 ```bash npm run server # 指定端口 node server/index.js --port 4000 ``` ### 仅启动前端 ```bash npm run client ``` ### 构建生产版本 ```bash npm run build ``` ## 项目结构 ``` projects-manage/ ├── server/ # 后端服务 │ ├── index.js # 主入口 │ ├── routes/ # API 路由 │ │ ├── projects.js # 项目 CRUD、启停控制 │ │ └── ports.js # 端口检测与进程查杀 │ ├── services/ # 业务逻辑 │ │ ├── projectManager.js # 项目数据管理 │ │ └── processManager.js # 进程管理 │ └── data/ # 数据存储 │ ├── projects.json # 项目配置 │ └── logs/ # 项目日志 ├── client/ # 前端应用 │ ├── src/ │ │ ├── App.jsx # 主组件 │ │ ├── components/ # UI 组件 │ │ └── services/ # API 和 WebSocket │ └── vite.config.js # Vite 配置 └── tests/ # 测试文件 ``` ## 测试 ### 后端 API 测试 ```bash npm test ``` ### UI 测试(Playwright) ```bash # 需要先启动 dev 服务器 npm run dev npx playwright test ``` ### 运行单个测试 ```bash # 后端测试 npx jest --config jest.config.js tests/api.test.js -t "测试名称" # UI 测试 npx playwright test -g "测试名称" ``` ## API 接口 ### 项目管理 - `GET /api/projects` - 获取所有项目 - `GET /api/projects/:id` - 获取单个项目 - `POST /api/projects` - 创建项目 - `PUT /api/projects/:id` - 更新项目 - `DELETE /api/projects/:id` - 删除项目 ### 项目控制 - `POST /api/projects/:id/start` - 启动项目 - `POST /api/projects/:id/stop` - 停止项目 - `POST /api/projects/:id/restart` - 重启项目 ### 批量操作 - `POST /api/projects/batch/start` - 批量启动 - `POST /api/projects/batch/stop` - 批量停止 ### 日志管理 - `GET /api/projects/:id/logs` - 获取项目日志 - `DELETE /api/projects/:id/logs` - 清空项目日志 ### 端口管理 - `GET /api/ports/:port/check` - 检查端口占用 - `POST /api/ports/:port/kill` - 杀掉端口进程 ## WebSocket 连接地址:`ws://localhost:3999/ws` ### 消息类型 - `status` - 项目状态变更 - `log` - 实时日志推送 ## 数据持久化 - 项目配置:`server/data/projects.json` - 项目日志:`server/data/logs/{projectId}.json` - 日志上限:每个项目 1000 行 ## 许可证 MIT