Fundamental_Analysis/docs/已完成任务/tasks.md

76 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 任务清单 - 基本面选股系统 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`,补充项目介绍、本地启动方法和部署指南。