# 任务清单 - 基本面选股系统 MVP

本文档基于《设计文档》，将项目开发分解为一系列可执行的任务，以便于跟踪进度和分配工作。

## Phase 1: 项目基础设置与环境搭建 (P0)

此阶段的目标是搭建前后端开发环境，并完成数据库的初始化设置。

- **T1.1 [DevOps]**: 初始化Git仓库，并建立`main`和`develop`分支策略。
- **T1.2 [Backend]**: 创建Python虚拟环境，并初始化FastAPI项目结构 (`/backend`)。
- **T1.3 [Frontend]**: 使用Next.js和TypeScript初始化前端项目 (`/frontend`)。
- **T1.4 [DevOps/DB]**: 编写`docker-compose.yml`文件，用于一键启动PostgreSQL数据库服务和后端API服务。
- **T1.5 [Backend/DB]**: 在后端项目中集成Alembic，用于数据库版本迁移管理。

## Phase 2: 后端核心模型与配置 (P0)

此阶段专注于实现数据库模型和系统配置API，为上层业务逻辑提供基础。

- [x] **T2.1 [Backend/DB]**: 根据设计文档，使用SQLAlchemy ORM定义`Report`, `AnalysisModule`, `ProgressTracking`, `SystemConfig`四个核心数据模型。 **[完成 - 2025-10-21]**
- [x] **T2.2 [Backend/DB]**: 创建第一个Alembic迁移脚本，在数据库中生成上述四张表。 **[完成 - 2025-10-21]**
- [x] **T2.3 [Backend]**: 实现`ConfigManager`服务，完成从`config.json`加载配置并与数据库配置合并的逻辑。 **[完成 - 2025-10-21]**
- [x] **T2.4 [Backend/API]**: 创建Pydantic Schema，用于配置接口的请求和响应 (`ConfigResponse`, `ConfigUpdateRequest`, `ConfigTestRequest`, `ConfigTestResponse`)。
- [x] **T2.5 [Backend/API]**: 实现`/api/config`的`GET`和`PUT`端点，用于读取和更新系统配置。
- [x] **T2.6 [Backend/API]**: 实现`/api/config/test`的`POST`端点，用于验证数据库连接等配置的有效性。

## Phase 3: 前端基础与配置页面 (P1)

此阶段完成前端项目的基本设置，并开发出第一个功能页面——系统配置管理。
**[完成 - 2025-10-21]**

- [x] **T3.1 [Frontend]**: 集成并配置UI组件库 (Shadcn/UI)。
- [x] **T3.2 [Frontend]**: 设置前端路由，创建`/`, `/report/[symbol]`, 和 `/config`等页面骨架。
- [x] **T3.3 [Frontend]**: 引入状态管理库 (Zustand) 和数据请求库 (SWR/React-Query)。
- [x] **T3.4 [Frontend/UI]**: 开发`ConfigPage`组件，包含用于数据库、Gemini API和数据源配置的表单。
- [x] **T3.5 [Frontend/API]**: 编写API客户端函数，用于调用后端的`/api/config`系列接口。
- [x] **T3.6 [Frontend/Feature]**: 将API客户端与`ConfigPage`组件集成，实现前端对系统配置的读取、更新和测试功能。

## Phase 4: 核心功能 - 报告生成与进度追踪 (P1)

此阶段是项目的核心，重点开发后端的报告生成流程和前端的实时进度展示。

- [x] **T4.1 [Backend/Service]**: 实现`DataSourceManager`，封装对Tushare和Yahoo Finance的数据获取逻辑。
- [x] **T4.2 [Backend/Service]**: 实现`AIService`，封装对Google Gemini API的调用逻辑，包括Token使用统计。
- **T4.3 [Backend/Service]**: 实现`ProgressTracker`服务，提供`initialize`, `start_step`, `complete_step`, `get_progress`等方法，并与数据库交互。
- **T4.4 [Backend/Service]**: 定义`AnalysisModule`的基类/接口，并初步实现一到两个模块（如`FinancialDataModule`）作为示例。
- **T4.5 [Backend/Service]**: 实现核心的`ReportGenerator`服务，编排数据获取、各分析模块调用、进度更新的完整流程。
- **T4.6 [Backend/API]**: 实现`/api/reports`的`POST`端点，用于创建报告记录并通过`BackgroundTasks`启动异步生成任务。
- **T4.7 [Backend/API]**: 实现`/api/progress/stream/{report_id}`的SSE端点，用于向前端实时推送进度更新。
- **T4.8 [Frontend/UI]**: 开发`ProgressTracker`组件，用于展示报告生成的步骤列表、实时状态、耗时和错误信息。
- **T4.9 [Frontend/Feature]**: 在报告页面集成`ProgressTracker`组件，并实现连接到SSE端点的逻辑。

## Phase 5: 核心功能 - 报告查询与展示 (P2)

此阶段专注于将生成的报告数据在前端进行展示。

- **T5.1 [Backend/API]**: 实现`/api/reports/{report_id}`的`GET`端点，用于获取完整的报告及其所有分析模块。
- **T5.2 [Backend/API]**: 实现`/api/reports`的`GET`端点，用于获取报告列表，支持分页和状态筛选。
- **T5.3 [Frontend/UI]**: 开发`StockInputForm`组件，并放置在首页，用于提交股票代码和市场。
- **T5.4 [Frontend/Feature]**: 实现首页表单的提交逻辑，调用`/api/reports`接口并根据响应导航到报告页面。
- **T5.5 [Frontend/UI]**: 开发`ReportPage`，作为展示报告的容器页面。
- **T5.6 [Frontend/UI]**: 开发`ModuleNavigator`组件（侧边栏或Tabs），用于在不同分析模块间切换。
- **T5.7 [Frontend/UI]**: 开发`ModuleViewer`组件，能够根据JSONB数据动态渲染文本、列表、表格等不同形式的内容。
- **T5.8 [Frontend/Feature]**: 在`ReportPage`中集成`ModuleNavigator`和`ModuleViewer`，实现从后端获取报告数据并完整展示的功能。

## Phase 6: 完善、测试与部署 (P3)

此阶段进行功能完善、端到端测试和部署准备。

- **T6.1 [Backend]**: 完善所有`AnalysisModule`的具体实现。
- **T6.2 [Backend/Test]**: 为核心服务和API端点编写单元测试和集成测试 (Pytest)。
- **T6.3 [Frontend/Test]**: 为关键组件和页面逻辑编写单元测试 (Jest/React Testing Library)。
- **T6.4 [General]**: 全面审查和增强错误处理逻辑，确保用户体验友好。
- **T6.5 [General]**: 进行端到端的手动测试，确保整个流程（从输入代码到查看报告）顺畅无误。
- **T6.6 [DevOps]**: 编写生产环境的Dockerfile和部署脚本。
- **T6.7 [Docs]**: 更新`README.md`，补充项目介绍、本地启动方法和部署指南。
