# wbr-web-hook-project **Repository Path**: work_project_item/wbr-web-hook-project ## Basic Information - **Project Name**: wbr-web-hook-project - **Description**: 测试临时通知 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 通知中心 & 会议 & 图片中间件服务 一个本地中间件服务,提供消息通知管理、即时通讯会议、图片资源管理功能。 第三方应用可直接通过 HTTP API 写入数据,无需认证。 ## 服务管理 ### 快速启动 如果您在 Git Bash 或 Linux 环境下,可以使用一键脚本: ```bash # 前台运行(查看实时日志) bash ./start.sh # 后台运行(服务会在后台持续工作) bash ./start.sh -d ``` ### 停止服务 如果您使用了上述脚本启动服务,请使用配套脚本停止: ```bash # 停止所有相关进程并清理 PID 文件 bash ./stop.sh ``` ### 日志查看 在后台模式 (`-d`) 下启动时,日志将保存在以下文件: * 后端日志:`backend/backend.log` * 前端日志:`frontend/frontend.log` ## 手动启动 ### 后端(端口 10002) ```bash cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python main.py ``` ### 前端(端口 10001) ```bash cd frontend npm install PORT=10001 npm start ``` ## 访问地址 | 服务 | 地址 | |------|------| | 前端界面 | http://localhost:10001 | | 后端 API | http://localhost:10002 | | API 文档 | http://localhost:10002/docs | ## API 接口 ### 消息管理(中间件) | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/messages` | 查询消息列表(支持 `owner_id`, `msg_type` 过滤) | | POST | `/api/messages` | 创建消息(类型: email/agent/ticket,内容支持 Markdown) | | GET | `/api/messages/{id}` | 获取消息详情 | | PUT | `/api/messages/{id}` | 更新消息 | | DELETE | `/api/messages/{id}` | 删除消息 | **创建消息示例:** ```bash curl -X POST http://localhost:10002/api/messages \ -H "Content-Type: application/json" \ -d '{ "msg_type": "email", "sender_name": "系统通知", "sender_id": "system", "owner_id": "<用户ID>", "title": "部署完成", "content": "## 部署成功\n\n服务 **api-gateway** 已上线。" }' ``` ### 图片管理(中间件) | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/images` | 列出图片(支持 `q` 搜索, `tag` 过滤) | | POST | `/api/images/upload` | 上传图片(multipart/form-data) | | POST | `/api/images/scan` | 扫描 uploads 目录,自动入库新文件 | | GET | `/api/images/{id}` | 获取图片详情 | | PUT | `/api/images/{id}` | 更新标题/描述/标签 | | DELETE | `/api/images/{id}` | 删除图片 | | GET | `/api/images/search/{keyword}` | 快捷搜索 | **上传图片示例:** ```bash curl -X POST http://localhost:10002/api/images/upload \ -F "file=@my_image.png" \ -F "title=产品截图" \ -F "description=首页设计稿 v2" \ -F "tags=UI,设计,首页" ``` **直接放文件到目录再扫描:** ```bash cp *.png backend/uploads/ curl -X POST http://localhost:10002/api/images/scan ``` ### 会议系统 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/meetings` | 会议列表 | | POST | `/api/meetings` | 创建会议 | | PUT | `/api/meetings/{id}/close` | 结束会议 | | WebSocket | `/ws/meeting/{id}?user_id=X&username=Y` | 加入会议聊天 | ### 用户管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/users` | 用户列表 | | POST | `/api/users` | 创建用户 | ## 目录结构 ``` webhook/ ├── backend/ │ ├── main.py # FastAPI 主服务 │ ├── models.py # 数据模型 │ ├── schemas.py # Pydantic 序列化 │ ├── database.py # SQLite 连接 │ ├── uploads/ # 图片存储目录 │ ├── requirements.txt │ └── venv/ ├── frontend/ │ ├── src/ │ │ ├── App.js │ │ ├── api.js │ │ └── pages/ │ │ ├── MessagesPage.js # 消息管理 │ │ ├── MeetingsPage.js # 会议大厅 │ │ ├── ChatRoom.js # 聊天室 │ │ └── ImagesPage.js # 图片管理 │ └── package.json ├── start.sh # 启动脚本 (支持 -d) ├── stop.sh # 停止脚本 └── README.md ```