# 任务清单 - 基本面选股系统 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,为上层业务逻辑提供基础。 - **T2.1 [Backend/DB]**: 根据设计文档,使用SQLAlchemy ORM定义`Report`, `AnalysisModule`, `ProgressTracking`, `SystemConfig`四个核心数据模型。 - **T2.2 [Backend/DB]**: 创建第一个Alembic迁移脚本,在数据库中生成上述四张表。 - **T2.3 [Backend]**: 实现`ConfigManager`服务,完成从`config.json`加载配置并与数据库配置合并的逻辑。 - **T2.4 [Backend/API]**: 创建Pydantic Schema,用于配置接口的请求和响应 (`ConfigResponse`, `ConfigUpdateRequest`, `ConfigTestRequest`, `ConfigTestResponse`)。 - **T2.5 [Backend/API]**: 实现`/api/config`的`GET`和`PUT`端点,用于读取和更新系统配置。 - **T2.6 [Backend/API]**: 实现`/api/config/test`的`POST`端点,用于验证数据库连接等配置的有效性。 ## Phase 3: 前端基础与配置页面 (P1) 此阶段完成前端项目的基本设置,并开发出第一个功能页面——系统配置管理。 - **T3.1 [Frontend]**: 集成并配置UI组件库 (Shadcn/UI)。 - **T3.2 [Frontend]**: 设置前端路由,创建`/`, `/report/[symbol]`, 和 `/config`等页面骨架。 - **T3.3 [Frontend]**: 引入状态管理库 (Zustand) 和数据请求库 (SWR/React-Query)。 - **T3.4 [Frontend/UI]**: 开发`ConfigPage`组件,包含用于数据库、Gemini API和数据源配置的表单。 - **T3.5 [Frontend/API]**: 编写API客户端函数,用于调用后端的`/api/config`系列接口。 - **T3.6 [Frontend/Feature]**: 将API客户端与`ConfigPage`组件集成,实现前端对系统配置的读取、更新和测试功能。 ## Phase 4: 核心功能 - 报告生成与进度追踪 (P1) 此阶段是项目的核心,重点开发后端的报告生成流程和前端的实时进度展示。 - **T4.1 [Backend/Service]**: 实现`DataSourceManager`,封装对Tushare和Yahoo Finance的数据获取逻辑。 - **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`,补充项目介绍、本地启动方法和部署指南。