# uctoo **Repository Path**: uctoo/uctoo ## Basic Information - **Project Name**: uctoo - **Description**: UCToo是一套AI驱动的全栈应用开发基础设施。采用开源、通用、厂商中立的技术选型。内置众多开发者效率工具,可快速进行全栈应用的开发和运营,适合作为CMS、APP、小程序等产品的起始项目。V3.0版支持多端一致的ORM模型及API代码生成。已支持鸿蒙原生应用等最新技术体系。 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 479 - **Forks**: 176 - **Created**: 2014-09-23 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: lowcode **Tags**: TypeScript, ArkTS, UMI ## README # UCToo Web Admin UCToo Web Admin 是 UCToo v4 管理后台的 PC 前端项目,基于 Vue 3 + TypeScript + OpenTiny Vue 构建。采用 UMI 全栈模型同构架构设计,实现了前后端数据模型同构、状态管理同构、API 调用同构。 ## 项目简介 本项目采用monorepo项目结构,使用pnpm进行包管理,包含以下主要部分: - 前端应用 (web-admin/web) - 后端服务 (web-admin/nestJs) - 核心组件库和工具包 (packages目录) 系统提供了CMS内容管理、用户权限管理、AI智能体应用等多个功能模块,适用于各类企业级应用场景。 ## AI驱动的全栈开发框架最佳实践 1. **统一技术栈原则**:优先采用可支持一致技术栈实现全平台应用开发的编程语言,便于应用统一的编程规范和降低AI学习成本。 2. **Monorepo架构优化**:采用monorepo组织工程的代码管理方案,便于AI IDE及大模型全面获取工程信息,实现更精准的代码生成。 3. **CLI友好设计**:开发框架功能均可通过CLI命令行工具实现,便于与AI IDE及大模型的集成和互操作,支持自动化工作流。 4. **AI Native原则**:原生智能化、天生全场景、高性能、强安全,符合AI Native的发展趋势,内置AI增强功能。 5. **模型同构规范**:遵循UMI全栈模型同构规范,为确定性代码生成和AI辅助代码生成提供良好基础设施。 6. **AI生态集成**:支持MCP、AgentSkills、WebMCP等AI生态主流协议和开发范式,确保与主流AI工具链的兼容性。 ``` markdown added by TRAE+SeepSeek R1 7. 建立AI代码生成质量评估体系,通过单元测试覆盖率(≥85%)和SonarQube静态扫描保障代码质量 8. 实现CI/CD全流程AI辅助,使用AI生成测试用例并自动执行流水线(如GitHub Actions/Jenkins) 9. 内置MLOps基础设施,支持模型版本管理(MLflow)和AI服务监控(Prometheus+Grafana) 10. 强化AI安全规范,遵循OWASP AI安全指南,实施RBAC权限控制和数据脱敏处理 11. 构建知识图谱驱动的开发文档体系,实现API文档与代码实时同步(Swagger/Redoc) 12. 采用微服务化AI能力部署,通过Service Mesh(Istio)实现AI服务动态编排 13. 建立多维度可观测体系,集成日志分析(ELK)、链路追踪(Jaeger)和异常检测(AIops) 14. 实施用户体验量化管理,通过AB测试平台(Optimizely)和埋点分析(Mixpanel)持续优化 15. 构建开发者社区生态,建立RFC提案机制和Contribution GPT代码审查助手 补充实践着重于: - AI代码生成的质量保障体系 - 智能化运维监控能力 - 开发者体验持续优化机制 - 安全合规的AI服务部署 - 开放协同的社区生态建设 ``` ``` markdown added by CodeBuddy+GPT-5 7. 人机协同开发流程 以“人设目标、AI产草稿、人做评审与合并”为主线,定义每次迭代的验收标准和回滚策略。 复杂任务拆小步,给AI明确上下文、边界条件与评估口径,避免一次性超大变更。 统一的代码与提示工程规范 8. 统一编码规范、提交规范(Commitlint)、分支策略、目录结构;在仓库中提供“提示词模板与负样例库”,约束AI生成风格与安全边界。 为常见任务(CRUD、表单校验、权限门禁、接口封装)提供可复用Prompt Snippet。 9. 可测试的AI产出 单测/集成测试/契约测试覆盖AI生成模块,优先对数据模型、API契约、权限与幂等性做测试。 引入快照测试防回归,针对AI易变区域(UI渲染、文案、多语言)设置基线。 10. 强化安全与合规 对AI生成代码做SAST/DAST/依赖漏洞扫描;引入Secrets扫描与生成阶段密钥屏蔽。 后端默认零信任:鉴权在网关/中间件层,最小权限访问;对AI调用外部包做来源校验与许可证合规检查。 11. 数据与隐私治理 敏感数据最小化出境:提示词脱敏与分级;训练或微调使用脱敏样本。 设计“数据可追溯”链路:从需求-提示-生成-上线全链路留痕,满足审计与复现。 12. 观测与可解释性 接入日志、指标、分布式追踪;对AI相关关键路径做埋点(提示长度、模型版本、延迟、错误率)。 对生成结果提供“决策依据”或“来源链接”,便于人工复核与故障排查。 13. 依赖与模型版本治理 明确模型与依赖的版本矩阵;设灰度/金丝雀发布策略,允许按项目/环境快速切换模型。 给AI工具链(代码生成器、Lint、格式化器)也做版本锁定与变更日志。 14. 领域模型优先与契约驱动 先固化Domain Model与API契约,再驱动AI生成实现与前后端类型;用OpenAPI/JSON Schema/Protobuf做单一事实源。 通过代码生成器在多端同步类型,减少手写与漂移。 15. Prompt 即基础设施 将高价值Prompt抽象为“可测试、可发布、可版本化”的资源(如以文件/配置管理),支持回滚与A/B。 为关键Prompt建立性能基准与质量门槛(正确率、覆盖率、延迟)。 16. 人工评审与自动质量闸 在CI中设质量闸:静态检查、测试覆盖、Bundle大小、性能阈值、可访问性分数。 关键变更(安全、支付、数据导出)必须双人评审;AI建议仅作参考,不可越权合并。 17. 开发者体验与脚手架 提供一键初始化脚手架:内置目录规范、环境变量模板、示例Prompt、测试与CI配置。 常见业务基元(列表-详情、搜索-分页、表单-校验、权限-菜单)沉淀为可复用蓝图供AI调用。 18. 渐进式引入与风险控制 从低风险区域开始引入AI(文档、测试、样式、重复性脚本),逐步扩展到核心业务。 为AI生成变更设置隔离分支与特性开关;关键路径保留人工Fallback。 19. 性能与成本优化 在前端采用增量编译、按需加载、边缘缓存;在后端引入连接池、批处理、幂等重试。 对AI调用做缓存与去重;统一计费与用量监控,设超额预警与熔断策略。 20. 多环境一致性与基础设施即代码 Dev/Staging/Prod 配置分离且可追溯;用IaC(如Terraform)管理云资源与权限。 数据库迁移(如Prisma/Knex/Flyway)与Seed数据自动化,确保环境可复现。 ``` ``` markdown added by Qoder 新增的9条最佳实践: 提示词工程化 - 内置结构化提示词模板,提高AI代码生成准确度 代码即文档 - 自描述的代码结构,便于AI理解和维护 渐进式AI增强 - 支持平滑过渡到AI辅助开发 智能依赖管理 - 自动优化依赖关系,减少冲突 上下文感知生成 - 基于项目上下文生成一致性代码 多模态支持 - 支持多种输入形式的AI交互 持续学习机制 - 建立项目级别的AI优化反馈循环 安全第一原则 - 内置安全代码模式和漏洞检测 可解释性设计 - AI生成代码包含决策路径,便于理解和维护 这15条最佳实践涵盖了: 技术架构层面:统一技术栈、Monorepo、CLI友好设计 AI集成层面:AI Native、生态集成、提示词工程 开发体验层面:渐进式增强、上下文感知、多模态支持 质量保障层面:持续学习、安全优先、可解释性 维护性层面:代码即文档、智能依赖管理 ``` ## 技术栈 - **前端框架**: Vue 3.5+ + TypeScript - **UI组件库**: OpenTiny Vue 3.28+ - **状态管理**: Pinia 2.1.7 + Pinia ORM 1.10.2 - **HTTP 客户端**: Axios 1.7.9 - **构建工具**: Vite / Webpack / Rspack / Farm - **路由**: Vue Router 4.4.5 - **国际化**: Vue I18n 11.0.0 - **AI 集成**: @opencangjie/skills SDK + WebMCP SDK - **包管理器**: pnpm > **注:** web-admin 目录中的 nestJs 后端服务仅用于 start-installer.bat 快捷安装过程,实际支撑 web 端业务的服务器端 API 均由 agentskills-runtime 提供。 ## 项目结构 ``` uctoo-admin/ ├── apps/ │ ├── web-admin/ # Web管理后台 │ │ ├── nestJs/ # NestJS 后端服务 │ │ ├── web/ # Vue 前端项目 │ │ │ └── node_modules/@opencangjie/skills/dist/runtime/win-x64/release # Agent Skills Runtime 发布包(通过SDK安装) │ │ └── start-installer.bat # 一键安装启动脚本 │ ├── agentskills-runtime/ # Agent Skills 运行时 (开发环境) │ ├── miniapp/ # 小程序端 ├── scripts/ # 脚本 ├── .gitignore ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml └── README.md ``` ### 目录说明 - **apps/web-admin/web/node_modules/@opencangjie/skills/dist/runtime/win-x64/release**:Agent Skills Runtime JavaScript SDK 安装的运行时发布包,包含编译后的可执行文件和依赖,用于生产环境运行。 - **apps/agentskills-runtime**:Agent Skills 运行时的开发环境,包含源代码和开发配置。 ## 安装使用 ### 方式一:一键安装(推荐) Windows 用户可直接运行安装脚本: ```bash # 克隆项目 git clone https://gitee.com/uctoo/uctoo.git cd uctoo/apps/web-admin # 运行安装助手 start-installer.bat ``` 安装助手会自动: 1. 检查 Node.js 环境 2. 安装前后端依赖 3. 启动后端服务(端口 3000) 4. 启动前端服务(端口 3031) 5. 打开浏览器进入安装向导 ### 方式二:手动安装 #### 环境要求 - Node.js >= 14.0.0 - pnpm 或 npm #### 安装步骤 1. **安装后端依赖** ```bash cd apps/web-admin/nestJs pnpm install ``` 2. **安装前端依赖** ```bash cd apps/web-admin/web pnpm install ``` 3. **配置环境变量** 复制 `.env.example` 为 `.env`,并根据实际情况修改: ```env # 应用上下文 VITE_CONTEXT=/vue-pro/ # API 基础路径 VITE_BASE_API=/api # 后端服务地址 VITE_SERVER_HOST=https://javatoarktsapi.uctoo.com VITE_BACKEND_URL=https://javatoarktsapi.uctoo.com # 构建输出目录 VITE_OUT_DIR=../dist ``` 4. **启动后端服务** ```bash cd apps/web-admin/nestJs pnpm run start:dev ``` 5. **启动前端服务** ```bash cd apps/web-admin/web pnpm run dev ``` 6. **访问应用** 打开浏览器访问 http://localhost:3031 ## 核心特性 ### 1. UMI 全栈模型同构 数据模型定义在 `apps/web-admin/web/src/store/models/uctoo/` 目录下,每个模型同时定义数据结构和 API 调用方法: ```typescript // src/store/models/uctoo/uctoo_user.ts import { Model } from 'pinia-orm'; import { useAxiosRepo } from '@pinia-orm/axios'; export class uctoo_user extends Model { static override entity = 'uctoo_user' @Uid() declare id: string @Str('') declare email: string @Str('') declare name: string // ... 其他字段 static override config = { axiosApi: { actions: { // 列表查询 getUctooUserList(page: number, pageSize: number, searchParams?: any) { return useAxiosRepo(uctoo_user).api().get( `/api/v1/uctoo/uctoo_user/${pageSize}/${page}`, { params: searchParams, dataKey: 'uctoo_users' // 分页数据键名 } ) }, // 单条查询 getUctooUser(id: string) { return useAxiosRepo(uctoo_user).api().get(`/api/v1/uctoo/uctoo_user/${id}`) }, // 新增 addUctooUser(data: any) { return useAxiosRepo(uctoo_user).api().post('/api/v1/uctoo/uctoo_user/add', data) }, // 编辑 editUctooUser(data: any) { return useAxiosRepo(uctoo_user).api().post('/api/v1/uctoo/uctoo_user/edit', data) }, // 删除 deleteUctooUser(data: any) { return useAxiosRepo(uctoo_user).api().post('/api/v1/uctoo/uctoo_user/del', data) }, // 登录 login(data: { email?: string; username?: string; password: string }) { return useAxiosRepo(uctoo_user).api().post('/api/v1/uctoo/uctoo_user/signin', data) } } } } } ``` ### 2. 同构状态管理使用示例 ```vue ``` ### 3. AI 智能体集成 项目内置 AgentSkills Runtime JavaScript SDK,支持 AI 智能体功能: - 自然语言数据库查询 - AI 辅助表单填写 - 智能数据分析 ## 开发规范 ### UMI 同构模型开发规范 1. **模型定义位置**:所有数据模型定义在 `src/store/models/uctoo/` 目录 2. **模型命名**:使用小写下划线命名,如 `uctoo_user`、`sys_config` 3. **API 方法命名**:采用 `动作+模型名` 格式,如 `getUctooUserList`、`addUctooUser` 4. **dataKey 配置**: - 分页接口:使用实体复数形式,如 `uctoo_users`、`uctoo_roles` - 非分页接口:使用 `data` 5. **Human-Code Preservation**:自定义代码写在 `//#region Human-Code Preservation` 区域内,避免被生成器覆盖 ### 页面开发规范 1. **使用组合式 API**:`