开发指南项目结构
项目结构
Monorepo 目录组织和各模块职责说明
本项目采用 Turborepo + pnpm workspace 的 monorepo 结构。
多端架构
| 端 | 仓库 | 说明 |
|---|---|---|
| 手机端 + 桌面端 Web | 01mvp/mono | 同一套 Next.js 响应式页面,通过断点适配移动端和桌面端 |
| 微信小程序端 | 01mvp/mini-community | 通过 WebView 承载社区页面,作为小程序壳层接入 |
小程序接入提示
微信小程序 WebView 接入通常需要企业主体资质,并在小程序后台完成合法业务域名配置。
顶层目录
mono/
├── apps/
│ ├── mono-web/ # Next.js 主应用
│ └── timemark/ # AI 时间记录应用
├── packages/ # 按领域拆分的共享工作区包
│ ├── ai/ # AI / LLM 集成
│ ├── asr/ # 语音识别
│ ├── auth/ # 认证与权限
│ ├── cache/ # 缓存能力
│ ├── content-moderation/ # 内容审核
│ ├── storage/ # 文件存储
│ ├── ui/ # shadcn/ui 原子组件
│ ├── ui-shared/ # 跨应用共享业务组件
│ ├── utils/ # 通用工具函数
│ └── ... # 其他领域包
├── docs/ # 仓库内部工作记录和阶段性文档
├── openspec/ # 功能规格和变更提案
└── tools/ # 仓库工具脚本对外的项目文档站不在根目录 docs/,而是在 apps/mono-web/content/docs/,由 Fumadocs 渲染。
apps/mono-web 应用结构
路由分组 (src/app/)
src/app/
├── (app)/ # 需要认证的应用页面
│ └── auth/ # 登录、注册等认证页面
├── (main)/ # 主站页面
│ ├── (account)/ # 账户相关(设置、贡献、活动管理)
│ └── (public)/ # 公开页面(首页、成员、项目、活动)
├── api/ # API 路由入口
└── layout.tsx # 根布局业务模块 (src/modules/)
src/modules/
├── account/ # 账户功能
│ ├── admin/ # 超级管理员
│ ├── auth/ # 认证相关组件
│ ├── contributions/ # 贡献管理
│ ├── events/ # 活动管理
│ ├── organizations/ # 组织管理
│ ├── profile/ # 个人资料
│ └── settings/ # 账户设置
├── public/ # 公开页面模块
│ ├── blog/ # 博客
│ ├── events/ # 活动展示
│ ├── home/ # 首页
│ ├── organizations/ # 组织展示
│ ├── profile/ # 公开个人主页
│ └── projects/ # 项目展示
├── analytics/ # 数据分析
├── i18n/ # 国际化配置
├── shared/ # 共享组件和工具
└── tools/ # 工具模块领域功能 (src/features/)
src/features/
├── events/ # 活动核心逻辑
├── event-submissions/ # 活动报名
├── events-token/ # Events Token API
├── functional-roles/ # 功能角色
├── hackathon/ # 黑客松功能
├── notifications/ # 通知系统
├── permissions/ # 权限管理
└── profile/ # 用户资料服务端 (src/server/)
src/server/
├── app.ts # Hono 应用入口,挂载所有路由
├── index.ts # 服务端导出
├── middleware/ # 中间件(CORS、错误处理、限流)
├── lib/ # 服务端工具函数
└── routes/ # 40+ API 路由模块内容目录 (content/)
content/
├── docs/ # 文档 (MDX)
│ ├── getting-started/ # 快速开始
│ ├── guide/ # 开发与部署指南
│ ├── packages/ # workspace 包文档
│ └── ... # 其他文档分类
├── legal/ # 法律文档
└── posts/ # 博客文章packages 各包职责
| 包名 | 路径 | 职责 |
|---|---|---|
auth | packages/auth/ | Better Auth 相关能力、权限与邀请逻辑 |
ai | packages/ai/ | LLM 调用封装与结构化生成能力 |
asr | packages/asr/ | 语音识别客户端与流式协议封装 |
cache | packages/cache/ | 内存缓存、Next.js 缓存集成与缓存监控 |
content-moderation | packages/content-moderation/ | 内容审核服务封装 |
storage | packages/storage/ | 上传 URL、公共资源地址与水印处理工具 |
ui | packages/ui/ | 纯 shadcn/ui 原子组件 |
ui-shared | packages/ui-shared/ | 跨应用共享业务组件 |
utils | packages/utils/ | 通用工具函数 |
validators | packages/validators/ | 共享校验 schema 与验证工具 |