- 新增统一项目列表Redis键和迁移工具 - 实现GET /api/projects端点获取项目列表 - 实现POST /api/projects/migrate端点支持数据迁移 - 更新前端ProjectSelector组件使用真实项目数据 - 扩展projectStore状态管理 - 更新相关文档和OpenSpec规范 - 添加测试用例验证新功能
2.8 KiB
2.8 KiB
Project Context
Purpose
BLS Project Console是一个前后端分离的Node.js项目,用于从Redis队列读取日志记录并展示在控制台界面中,同时提供发送控制台指令到Redis队列的功能,以便其他程序读取和执行。
Tech Stack
- 前端: Vue 3.x, Vue Router, Axios, CSS3
- 后端: Node.js, Express, Redis客户端, CORS
- 构建工具: Vite
- 开发工具: ESLint, Prettier, nodemon
Project Conventions
Code Style
- JavaScript: 使用ES模块语法(import/export)
- Vue: 使用Composition API
- 命名规范:
- 文件名: 小驼峰命名(如: logView.vue)
- 组件名: 大驼峰命名(如: LogView)
- 变量名: 小驼峰命名
- 常量名: 大写蛇形命名(如: REDIS_QUEUE_NAME)
- 代码格式化: 使用Prettier自动格式化
- 代码质量: 使用ESLint进行静态代码检查
Architecture Patterns
- 前后端分离: 前端和后端独立部署,通过RESTful API通信
- MVC架构: 后端使用Model-View-Controller模式
- 组件化开发: 前端采用Vue组件化开发
- 分层设计:
- 前端: 视图层、路由层、服务层
- 后端: 路由层、服务层、数据访问层
Testing Strategy
- 单元测试: 对核心功能模块进行单元测试
- 集成测试: 测试API接口和Redis交互
- 端到端测试: 测试完整的用户流程
- 测试框架: Jest (后端), Vitest (前端)
Git Workflow
- 分支策略: Git Flow
- main: 生产分支
- develop: 开发分支
- feature/: 功能分支
- hotfix/: 热修复分支
- 提交规范: 使用Conventional Commits
- feat: 新功能
- fix: 修复bug
- docs: 文档变更
- style: 代码格式变更
- refactor: 代码重构
- test: 测试相关变更
- chore: 构建或依赖更新
Domain Context
- Redis队列: 用于存储日志记录和控制台指令的消息队列
- 日志记录: 其他程序写入Redis队列的日志信息,包含时间戳、日志级别和消息内容
- 控制台指令: 从控制台发送到Redis队列的命令,供其他程序读取和执行
- 实时更新: 控制台需要实时从Redis队列获取新的日志记录
Important Constraints
- 性能要求: 控制台需要能够处理大量日志记录的实时更新
- 可靠性: Redis连接需要具备重连机制,确保系统稳定运行
- 安全性: API接口需要适当的访问控制
- 可扩展性: 系统设计应支持未来功能扩展
- 开发约束: 一旦遇到 lint/build/tooling 失败(例如 ESLint 配置错误),必须优先修复并恢复可用的开发工作流,再继续功能开发
External Dependencies
- Redis: 用于存储日志记录和控制台指令的消息队列服务
- 版本: 6.x+
- 连接方式: Redis客户端(redis@^4.6.10)
- 主要用途: 日志队列和指令队列