project-structure.md 2.2 KB

项目架构规范

技术栈

  • 前端: React + TypeScript + Tailwind CSS
  • 后端: Node.js + Express + TypeScript
  • 数据库: SQLite (开发) / PostgreSQL (生产)
  • 状态管理: Zustand
  • API 风格: RESTful + OpenAPI

目录结构

ajy/
├── apps/
│   ├── web/              # React 前端应用
│   │   ├── src/
│   │   │   ├── components/   # UI 组件
│   │   │   ├── pages/        # 页面
│   │   │   ├── hooks/        # 自定义 hooks
│   │   │   ├── stores/       # Zustand stores
│   │   │   └── utils/        # 工具函数
│   │   └── package.json
│   │
│   └── api/              # Express 后端 API
│       ├── src/
│       │   ├── routes/       # API 路由
│       │   ├── controllers/  # 控制器
│       │   ├── services/     # 业务逻辑
│       │   ├── models/       # 数据模型
│       │   ├── middleware/   # 中间件
│       │   └── utils/        # 工具函数
│       └── package.json
│
├── packages/
│   └── shared/           # 共享类型和工具
│       └── src/
│           └── types/
│
├── openspec/             # OpenSpec 规范目录
│   ├── specs/            # 当前规范
│   └── changes/          # 变更提案
│
├── docs/                 # 文档
│   └── 艾灸椅功能定义-最新.xlsx
│
└── AGENTS.md             # AI 代理指南

命名约定

文件命名

  • React 组件: PascalCase.tsx (e.g., MoxibustionPanel.tsx)
  • 工具函数: camelCase.ts (e.g., formatTime.ts)
  • 常量文件: SCREAMING_SNAKE_CASE.ts (e.g., API_ENDPOINTS.ts)
  • 测试文件: *.test.ts*.spec.ts

代码风格

  • 缩进: 2 空格
  • 行尾: LF (Unix 风格)
  • 引号: 单引号
  • 分号: 必须
  • 最大行宽: 100 字符

依赖管理

  • 使用 pnpm workspace 管理 monorepo
  • 共享包放在 packages/ 目录
  • 应用依赖明确版本号,不使用 ^~

构建与部署

# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建
pnpm build

# 测试
pnpm test

# 代码检查
pnpm lint