# Taskly - 项目管理工具(SaaS版)
## 项目概述
- **项目类型**:Web应用 - SaaS项目管理工具
- **主要功能**:团队项目管理、任务追踪、时间跟踪、文档管理、团队协作、客户管理、财务管理、报告分析
- **技术栈**:
- 后端:PHP 8.2+, Laravel 12, MySQL
- 前端:React + Inertia.js + Tailwind CSS + TypeScript
- 其他:Redis, Pusher, OpenAI API, 多种支付网关
## 模块结构
```
main-file/
├── app/
│ ├── Console/Commands/ # Artisan命令
│ │ ├── AssignDefaultPlanToUsers.php
│ │ ├── EnableCookieBanner.php
│ │ └── SyncNotificationTemplates.php
│ ├── Events/ # 事件类
│ │ ├── BudgetCreated.php
│ │ ├── BugAssigned.php
│ │ ├── ContractCreated.php
│ │ ├── ExpenseCreated.php
│ │ ├── InvoiceCreated.php
│ │ ├── MilestoneCreated.php
│ │ ├── ProjectCreated.php
│ │ ├── TaskAssigned.php
│ │ ├── TaskCreated.php
│ │ └── ...
│ ├── Exports/ # 数据导出
│ ├── Helpers/
│ │ └── helper.php # 辅助函数
│ ├── Http/
│ │ ├── Controllers/ # 控制器
│ │ │ ├── Auth/ # 认证控制器
│ │ │ ├── LandingPage/ # 落地页控制器
│ │ │ ├── Settings/ # 设置控制器
│ │ │ └── ... # 业务控制器
│ │ ├── Middleware/ # 中间件
│ │ └── Requests/ # 表单请求
│ ├── Imports/ # 数据导入
│ ├── Libraries/ # 自定义库
│ ├── Listeners/ # 事件监听器
│ ├── Mail/ # 邮件类
│ ├── Models/ # 数据模型
│ ├── Observers/ # 模型观察者
│ ├── PathGenerators/ # 路径生成器
│ ├── Policies/ # 授权策略
│ ├── Providers/ # 服务提供者
│ ├── Services/ # 服务层
│ └── Traits/ # Trait类
├── bootstrap/
├── config/ # 配置文件
├── database/
│ ├── migrations/ # 数据库迁移
│ └── seeders/ # 数据填充
├── public/ # 公共资源
├── resources/
│ ├── css/ # CSS资源
│ ├── js/ # React组件
│ │ ├── Components/ # 通用组件
│ │ ├──Layouts/ # 布局组件
│ │ └── Pages/ # 页面组件
│ └── views/ # Blade视图
├── routes/ # 路由定义
├── storage/ # 存储目录
└── tests/ # 测试文件
```
## 核心业务逻辑
### 1. 项目管理流程
**项目生命周期:**
```
项目创建 → 团队组建 → 任务分解 → 进度跟踪 → 里程碑达成 → 项目完成
```
**主要功能:**
- 项目创建与配置
- 项目模板
- 项目分类
- 项目成员管理
- 项目权限控制
- 项目时间线
- 项目甘特图
- 项目看板(Kanban)
### 2. 任务管理流程
**任务生命周期:**
```
任务创建 → 分配执行人 → 设置截止日期 → 任务执行 → 进度更新 → 任务完成
```
**主要功能:**
- 任务创建与编辑
- 任务分配
- 任务优先级
- 任务标签
- 任务依赖
- 子任务
- 任务评论
- 任务附件
- 任务时间跟踪
- 任务提醒
### 3. 团队协作功能
- **实时聊天**:团队成员实时沟通
- **文件共享**:项目文档管理
- **评论系统**:任务/项目评论
- **活动日志**:操作记录追踪
- **通知系统**:邮件/应用内通知
- **日历集成**:Google Calendar/Zoom集成
### 4. 客户管理(CRM)
- 客户信息管理
- 客户项目关联
- 客户沟通记录
- 客户合同管理
- 客户发票管理
### 5. 财务管理
- **预算管理**:
- 项目预算设置
- 预算跟踪
- 预算预警
- **费用管理**:
- 费用记录
- 费用审批流程
- 费用报销
- **发票管理**:
- 发票创建
- 发票发送
- 付款追踪
- 发票模板
- **订阅管理**:
- SaaS订阅计划
- 付款处理
- 订阅升级/降级
### 6. Bug/Issue追踪
- Bug报告
- Bug分类
- Bug优先级
- Bug状态跟踪
- Bug分配
- Bug解决流程
### 7. 报告与分析
- 项目进度报告
- 团队绩效报告
- 时间跟踪报告
- 财务报告
- 自定义报告
- 数据导出
### 8. SaaS多租户架构
- **工作区(Workspace)**:每个客户独立的工作空间
- **计划与定价**:
- 免费计划
- 基础计划
- 专业计划
- 企业计划
- **用户限制**:根据计划限制用户数
- **功能限制**:根据计划开放功能
- **白标功能**:支持自定义品牌
## 核心代码分析
### 关键模型关系
```php
// 用户模型关系
User -> Workspace (工作区)
User -> Project (项目)
User -> Task (任务)
User -> Invoice (发票)
// 项目模型关系
Project -> Workspace (所属工作区)
Project -> ProjectMember (项目成员)
Project -> Task (任务)
Project -> Milestone (里程碑)
Project -> ProjectBudget (预算)
Project -> ProjectExpense (费用)
Project -> Contract (合同)
// 任务模型关系
... (content truncated)