# 2. High Level Architecture ## 2.1 Technical Summary shadcn全栈管理后台启动模板采用现代化的Jamstack架构风格,结合React前端和Hono后端框架。前端基于Vite构建工具和Tailwind CSS样式方案,后端使用TypeORM进行数据库操作和MySQL作为主数据库。架构采用单体部署方式,通过清晰的代码分离结构确保前后端开发一致性。该架构通过RESTful API规范、OpenAPI文档生成和类型安全的客户端集成,实现了PRD中要求的完整用户认证、权限管理和生产就绪状态。 ## 2.2 Platform and Infrastructure Choice 基于PRD要求和开发环境配置,采用多八多云端开发容器环境作为部署平台: **平台选择:多八多云端容器环境** - **前端部署:** 同一容器内的Node.js服务 - **后端部署:** 同一容器内的Node.js服务 - **数据库:** MySQL 8.0.36(容器内,默认数据库d8dai) - **缓存:** Redis 7(容器内) - **文件存储:** MinIO(容器内) - **连接方式:** 所有服务使用默认参数连接,正式环境参数相同 ## 2.3 Repository Structure **结构:** Monorepo结构 **Monorepo工具:** Turborepo **包组织策略:** - apps/admin - 管理后台React应用(基于shadcn/ui) - apps/web - 面向用户的Web端React应用 - apps/api - 后端Hono API - packages/shared - 共享类型和工具 - packages/ui - 共享UI组件库 - packages/config - 共享配置(ESLint、TypeScript等) ## 2.4 High Level Architecture Diagram ```mermaid graph TB User[用户] --> Web[Web前端
React + Vite] User --> Mobile[移动端
响应式设计] Web --> API[API网关
Hono框架] Mobile --> API API --> Auth[认证服务
JWT + bcrypt] API --> UserService[用户服务] API --> DataService[数据服务] Auth --> DB[(MySQL数据库)] UserService --> DB DataService --> DB API --> Cache[Redis缓存] API --> Storage[MinIO存储] API --> External[外部服务
OpenAI等] ``` ## 2.5 Architectural Patterns **Jamstack架构:** 静态站点生成与无服务器API结合 - *理由:* 为内容密集型应用提供最佳性能和可扩展性 **组件化UI:** 基于TypeScript的可复用React组件 - *理由:* 在大型代码库中保持可维护性和类型安全 **仓库模式:** 抽象数据访问逻辑 - *理由:* 支持测试和未来数据库迁移的灵活性 **API网关模式:** 所有API调用的单一入口点 - *理由:* 集中化认证、速率限制和监控