3.3 KiB
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
- Read
docs/PROJECT_BRIEF.md. - Run the backend seed API from
report-notebooklm-api/. - Read
docs/API_CONTRACT_NOTES.md. - Run
flutter analyzeandflutter test. - Run the App against the backend with
RNB_API_BASE. - 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.