chore: prepare yanting monorepo handoff
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user