78 lines
2.6 KiB
Markdown
78 lines
2.6 KiB
Markdown
# report-notebooklm-app
|
|
|
|
Flutter client for the report-notebooklm Phase 1 app shell.
|
|
|
|
The backend API lives in `../report-notebooklm-api/` in the same monorepo. API/data/content-pipeline details are documented there; this directory focuses on App handoff, UI state, build commands, and integration notes.
|
|
|
|
## Read First
|
|
|
|
- [docs/HANDOFF.md](docs/HANDOFF.md): current App state, implemented screens, placeholders, and next work.
|
|
- [docs/PROJECT_BRIEF.md](docs/PROJECT_BRIEF.md): product and Phase 1 scope snapshot.
|
|
- [docs/APP_RUNBOOK.md](docs/APP_RUNBOOK.md): Flutter version, local run, web build, Android debug build, and verification.
|
|
- [docs/API_CONTRACT_NOTES.md](docs/API_CONTRACT_NOTES.md): endpoints and fields consumed by the App.
|
|
- [docs/PROJECT_MAP.md](docs/PROJECT_MAP.md): source tree map.
|
|
|
|
## Product Boundary
|
|
|
|
This repo contains App code and an engineering handoff snapshot. It is not the product source of truth.
|
|
|
|
Product SSOT: mall-docs report-notebooklm docs. Snapshot date: 2026-06-03.
|
|
|
|
Use `report-notebooklm` and `rnb` for technical identifiers. The user-facing product name is `研听`.
|
|
|
|
## Requirements
|
|
|
|
- Flutter 3.44.1 / Dart 3.12.1 or compatible newer versions.
|
|
- A running backend that serves `/api/report-notebooklm/v1`.
|
|
- For Android builds: Android SDK, accepted licenses, and an emulator or device.
|
|
|
|
## API Base URL
|
|
|
|
The App intentionally has no built-in live API default. Pass the backend base URL explicitly:
|
|
|
|
```bash
|
|
flutter run -d chrome --dart-define=RNB_API_BASE=<api-base-url>
|
|
```
|
|
|
|
Android emulator:
|
|
|
|
```bash
|
|
flutter run -d <emulator-id> --dart-define=RNB_API_BASE=<emulator-api-base-url>
|
|
```
|
|
|
|
Same-network Android device:
|
|
|
|
```bash
|
|
flutter run -d <device-id> --dart-define=RNB_API_BASE=http://<host-lan-ip>:<port>/api/report-notebooklm/v1
|
|
```
|
|
|
|
Only use cleartext HTTP for debug builds. Release builds must use HTTPS.
|
|
|
|
## Verify
|
|
|
|
```bash
|
|
flutter analyze
|
|
flutter test
|
|
flutter build web --dart-define=RNB_API_BASE=<api-base-url>
|
|
flutter build apk --debug --dart-define=RNB_API_BASE=<emulator-api-base-url>
|
|
```
|
|
|
|
## Current App Scope
|
|
|
|
Implemented:
|
|
|
|
- Five bottom tabs: 推荐, 研报, 机构, 听单, 我的.
|
|
- API-backed feed, report list, institution list, listen list, institution detail, and report detail.
|
|
- Module renderer registry for inline and card-plus-page modules.
|
|
- Product display name `研听`.
|
|
- Local UI placeholders for login, favorite, outbound confirmation, and playback progress.
|
|
|
|
Not implemented yet:
|
|
|
|
- Real auth.
|
|
- Real favorite/history/saved-listen sync.
|
|
- Real playable audio stream.
|
|
- Real outbound event write.
|
|
- Production API domain.
|
|
- Release signing, final icon, and final store metadata.
|