docs: add data source flow guide and localize handoff READMEs

- Add docs/DATA_SOURCE_FLOW.md: end-to-end source -> NotebookLM ->
  storage -> App flow, source list with publish frequency, institution
  intro status, ingestion artifact structure, and known cadence gaps
- Link the new doc from README and PROJECT_OVERVIEW indexes
- Localize top-level and subproject READMEs to Chinese for handoff
  (pre-existing working-tree changes)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 13:30:53 +09:00
parent 556f366894
commit 6c72b7d048
5 changed files with 386 additions and 115 deletions
+60 -59
View File
@@ -1,78 +1,79 @@
# Yanting / report-notebooklm
# 研听 / report-notebooklm
`研听` is a Phase 1 app and backend for turning global institutional research reports into structured Chinese reading and listening experiences.
`研听` 是一个第一阶段(Phase 1)的应用和后端,用来把全球机构研报转化成结构化的中文阅读与收听体验。
This repository is prepared as a single Gitea handoff repository for product and engineering teams.
这个仓库被整理成单个 Gitea 交接仓库,供产品和工程团队接手使用。
## What Is In This Repository
## 仓库里有什么
| Area | Path | Description |
| 区域 | 路径 | 说明 |
|---|---|---|
| Backend API | `report-notebooklm-api/` | FastAPI service, MySQL models, Alembic migration, seed importer, public read API. |
| Flutter App | `report-notebooklm-app/` | Flutter client with five main tabs, report detail modules, Android/web scaffolds. |
| Repo docs | `docs/` | Project-level overview, decisions, development history, and handoff guidance. |
| Backend docs | `report-notebooklm-api/docs/` | API/data/content-pipeline/runbook details. |
| App docs | `report-notebooklm-app/docs/` | App runbook, project map, and API consumption notes. |
| 后端 API | `report-notebooklm-api/` | FastAPI 服务、MySQL 模型、Alembic 迁移、种子数据导入、对外只读 API |
| Flutter 应用 | `report-notebooklm-app/` | Flutter 客户端,包含五个主标签页、研报详情模块、Android/Web 脚手架。 |
| 仓库文档 | `docs/` | 项目级概览、决策记录、开发历程和交接指南。 |
| 后端文档 | `report-notebooklm-api/docs/` | API、数据、内容流水线、运维手册的细节。 |
| 应用文档 | `report-notebooklm-app/docs/` | 应用运维手册、项目地图、API 调用说明。 |
## Product Snapshot
## 产品速览
`研听` helps Chinese users understand global institutional research reports across macro, precious metals, commodities, energy, central banks, and cross-asset topics.
`研听` 帮助中文用户读懂全球机构研报,覆盖宏观、贵金属、大宗商品、能源、央行、跨资产等主题。
Phase 1 focuses on:
第一阶段聚焦在:
- 推荐: curated/latest report interpretations.
- 研报: report list and basic filtering.
- 机构: institution list and institution detail.
- 听单: reports that have audio.
- 我的: guest/login state and shallow personal-state entries.
- 推荐:精选 / 最新的研报解读。
- 研报:研报列表和基础筛选。
- 机构:机构列表和机构详情。
- 听单:带音频的研报。
- 我的:游客 / 登录状态,以及浅层的个人状态入口。
Phase 1 explicitly does not include comments, UGC, paid unlocks, membership, ads, trading signals, investment advice, or report-interpretation downloads.
第一阶段明确**不包含**:评论、UGC、付费解锁、会员、广告、交易信号、投资建议、研报解读下载。
## Read First
## 先读这些
For human readers:
给人类读者:
1. `docs/PROJECT_OVERVIEW.md`
2. `docs/DECISIONS.md`
3. `docs/DEVELOPMENT_HISTORY.md`
4. `report-notebooklm-api/docs/HANDOFF.md`
5. `report-notebooklm-app/docs/HANDOFF.md`
3. `docs/DATA_SOURCE_FLOW.md`
4. `docs/DEVELOPMENT_HISTORY.md`
5. `report-notebooklm-api/docs/HANDOFF.md`
6. `report-notebooklm-app/docs/HANDOFF.md`
For agents:
给 AI agent
1. `AGENTS.md`
2. `docs/DECISIONS.md`
3. Target subsystem README and runbook.
3. 对应子系统的 README 和运维手册。
## Current Implementation Status
## 当前实现状态
Backend implemented:
后端已实现:
- FastAPI app under `/api/report-notebooklm/v1`.
- SQLAlchemy model layer for Phase 1 tables.
- Alembic initial migration.
- Seed import script.
- Public read endpoints for health, feed, reports, report modules, institutions, and listen list.
- Tests for seed and public API behavior.
- 挂在 `/api/report-notebooklm/v1` 下的 FastAPI 应用。
- 第一阶段数据表的 SQLAlchemy 模型层。
- Alembic 初始迁移。
- 种子数据导入脚本。
- 健康检查、信息流、研报、研报模块、机构、听单的对外只读接口。
- 针对种子数据和对外 API 行为的测试。
App implemented:
应用已实现:
- Five bottom tabs: 推荐, 研报, 机构, 听单, 我的.
- API-backed list/detail views using `RNB_API_BASE`.
- Report detail module renderer registry.
- Local placeholders for login, favorites, outbound confirmation, and playback progress.
- Android and web build scaffolds.
- 五个底部标签页:推荐、研报、机构、听单、我的
- 基于 `RNB_API_BASE` 的列表 / 详情视图。
- 研报详情的模块渲染器注册表。
- 登录、收藏、外链跳转确认、播放进度的本地占位实现。
- Android 和 Web 构建脚手架。
Not production-ready yet:
尚未达到生产可用:
- Auth and personal state.
- Real audio stream signing.
- Outbound event writing.
- Internal content management API.
- Production object storage and cache invalidation.
- Production API domain, release signing, final app icon, and store metadata.
- 鉴权和个人状态。
- 真实的音频流签名。
- 外链事件写入。
- 内部内容管理 API
- 生产环境对象存储和缓存失效。
- 生产 API 域名、发布签名、最终应用图标、应用商店元信息。
## Backend Quick Start
## 后端快速上手
```bash
cd report-notebooklm-api
@@ -80,13 +81,13 @@ python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
# edit .env for your MySQL and Redis
# 按你的 MySQL Redis 编辑 .env
alembic upgrade head
python scripts/import_seed_content.py
uvicorn app.main:app --reload --host <bind-host> --port <port>
```
Smoke checks:
冒烟检查:
```bash
API_BASE_URL=http://<api-host>:<port>/api/report-notebooklm/v1
@@ -95,7 +96,7 @@ curl "$API_BASE_URL/feed/recommended"
curl "$API_BASE_URL/reports/rep_ssga_gold"
```
## App Quick Start
## 应用快速上手
```bash
cd report-notebooklm-app
@@ -104,15 +105,15 @@ flutter test
flutter run -d chrome --dart-define=RNB_API_BASE=<api-base-url>
```
Android emulator:
Android 模拟器:
```bash
flutter run -d <emulator-id> --dart-define=RNB_API_BASE=<emulator-api-base-url>
```
## Verification
## 验证
Backend:
后端:
```bash
cd report-notebooklm-api
@@ -120,7 +121,7 @@ source .venv/bin/activate
pytest -q
```
App:
应用:
```bash
cd report-notebooklm-app
@@ -130,10 +131,10 @@ flutter build web --dart-define=RNB_API_BASE=<api-base-url>
flutter build apk --debug --dart-define=RNB_API_BASE=<emulator-api-base-url>
```
## Documentation Boundary
## 文档边界
This repository contains a code handoff snapshot. It does not replace the product source of truth.
这个仓库是一份代码交接快照,不能替代产品的唯一真源(SSOT)。
Product SSOT: mall-docs report-notebooklm docs, snapshot date: 2026-06-03.
产品 SSOTmall-docs 里的 report-notebooklm 文档,快照日期:2026-06-03
Local-only notes, private paths, raw session pointers, and personal agent workflow belong in ignored `docs.jimme.local/` and `AGENTS.local.md`.
仅限本机的笔记、私有路径、原始会话指针、个人 agent 工作流,都应放在被忽略的 `docs.jimme.local/` `AGENTS.local.md` 里。