Files
yanting/report-notebooklm-app/docs/HANDOFF.md
T

3.3 KiB

App Handoff

This is a handoff snapshot, not the product SSOT.

Product SSOT: mall-docs report-notebooklm docs, snapshot date: 2026-06-03.

Current State

The App is a runnable Phase 1 Flutter shell connected to the backend public seed API. It is not production-ready yet.

Implemented:

  • Five bottom tabs: 推荐, 研报, 机构, 听单, 我的.
  • API client configured by RNB_API_BASE.
  • API-backed recommended feed, report list, institution list, institution detail, listen list, report detail, and module detail.
  • Report detail module renderer registry.
  • Inline module rendering and card-plus-page module preview/detail flow.
  • Local mini-player UI and player controls.
  • Login, favorite, outbound, and playback placeholders that make blocked Phase 1 flows visible without pretending they are complete.
  • Android platform scaffold and debug/release build compatibility.

Not implemented:

  • Auth and real login state.
  • Server-synced favorites, reading history, saved listens, and playback progress.
  • Real audio stream from /audio/{audio_id}/stream.
  • Outbound event write before external navigation.
  • Production API domain.
  • Release signing.
  • Final app icon, final brand visuals, privacy copy, and store metadata.

Important Product Decisions Reflected in App

  • User-facing product name is 研听.
  • Technical identifiers stay report-notebooklm / rnb.
  • Phase 1 has no download feature for report interpretation content, audio packages, or PDFs.
  • Source access is through source/compliance or outbound surfaces, not in-product downloads.
  • Guest users can browse public content and listen; login is only required for synchronized personal state.
  • App must not call NotebookLM or any LLM to generate report content.

Source Tree Map

Path Purpose
lib/main.dart App entry point and API data source construction.
lib/app.dart Material app and theme hookup.
lib/data/api/ Backend API client.
lib/data/models/ Typed response models.
lib/features/shell_page.dart Bottom-tab shell and mini-player state.
lib/features/feed/ Recommended feed.
lib/features/reports/ Report list.
lib/features/institutions/ Institution list and detail.
lib/features/listen/ Listen list.
lib/features/profile/ Guest/login placeholder and personal-state entry points.
lib/features/detail/ Report detail.
lib/features/detail/modules/ Module renderer registry and module detail page.
lib/widgets/ Reusable UI components.
lib/theme/ Design tokens and Flutter theme.
android/ Android platform scaffold.
test/ Widget tests.

Suggested Handoff Order

  1. Read docs/PROJECT_BRIEF.md.
  2. Run the backend seed API from report-notebooklm-api/.
  3. Read docs/API_CONTRACT_NOTES.md.
  4. Run flutter analyze and flutter test.
  5. Run the App against the backend with RNB_API_BASE.
  6. Choose the next App/API integration item from the open gaps.

Next App Work

  • Wire real auth once backend auth exists.
  • Replace favorite/history/saved-listen placeholders with API-backed state.
  • Use backend audio stream endpoint for actual playback URL.
  • Persist playback progress for logged-in users.
  • Write outbound event before external navigation.
  • Add production API config and release signing.
  • Finalize app icon, privacy wording, store copy, and risk-disclaimer surfaces.