Consolidate roadmap into product tracks
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# App Architecture Boundaries
|
||||
|
||||
Libre Study should remain one app with platform adapters, not a set of separate apps.
|
||||
|
||||
## Shared Core
|
||||
|
||||
The UI should talk to stable app-level contracts:
|
||||
|
||||
- resource catalog queries
|
||||
- translation and page loading
|
||||
- search
|
||||
- Strong's lookup
|
||||
- notes/commentary/dictionary/map/audio lookup
|
||||
- session state
|
||||
- user workspace persistence
|
||||
- import/export
|
||||
- authentication where a platform supports it
|
||||
|
||||
Primary files today:
|
||||
|
||||
- `src/studyDataClient.ts`: resource/query interface.
|
||||
- `src/studyClient.ts`: browser and Tauri resource adapters.
|
||||
- `src/workspace.ts`: workspace, auth, session, settings, and timeline persistence contracts.
|
||||
- `src/sessionPortability.ts`: session export/import and one-way Nextcloud export.
|
||||
|
||||
## Resource Data Boundary
|
||||
|
||||
LibreBible owns public resources:
|
||||
|
||||
- translations
|
||||
- Strong's links
|
||||
- lexicons
|
||||
- footnotes and study notes
|
||||
- commentaries
|
||||
- dictionaries
|
||||
- places, routes, maps, and media
|
||||
- audio metadata and packages
|
||||
- license and attribution metadata
|
||||
|
||||
Libre Study consumes those packages. It should not become the canonical source for public Bible resources.
|
||||
|
||||
## User Data Boundary
|
||||
|
||||
Libre Study owns user workspace data:
|
||||
|
||||
- sessions
|
||||
- notes
|
||||
- timeline events
|
||||
- view settings
|
||||
- resource toggles
|
||||
- tags and future highlights
|
||||
- saved searches
|
||||
- exports
|
||||
- future collaboration state
|
||||
|
||||
User data should never be mixed into public LibreBible packages.
|
||||
|
||||
## Adapter Lanes
|
||||
|
||||
### HotView / Browser
|
||||
|
||||
Current lead lane. Uses Vite, local package reads, browser storage, and the private Tailscale/local intranet dev URL.
|
||||
|
||||
Normal URL:
|
||||
|
||||
```text
|
||||
http://desktop:5174/
|
||||
```
|
||||
|
||||
Vite HMR should use the detected Tailscale IPv4 address when available. `VITE_HMR_HOST` remains the override for other private addresses.
|
||||
|
||||
### Hosted Web
|
||||
|
||||
Parked until explicitly resumed. It may use login, remote persistence, private hosted resource URLs, and later collaboration services. Hosted deployment is not part of the normal HotView loop.
|
||||
|
||||
### Tauri Desktop
|
||||
|
||||
Future hardening lane. It should remain account-optional and offline-capable. Desktop storage can use SQLite and local package installation/update management.
|
||||
|
||||
### PWA / Mobile
|
||||
|
||||
Future lane. Evaluate responsive web and PWA behavior before considering mobile Tauri or native shells.
|
||||
|
||||
## Current Rule
|
||||
|
||||
When adding new features, first decide which shared contract owns the behavior. Only then wire platform-specific adapter details. This keeps browser, hosted web, desktop, and future mobile from drifting into separate products.
|
||||
@@ -0,0 +1,119 @@
|
||||
# Product Tracks
|
||||
|
||||
Phase 8 converts the completed foundation phases into durable product tracks. Future implementation phases should choose one track and define a narrow, finishable milestone inside it.
|
||||
|
||||
## Study Experience
|
||||
|
||||
Purpose: make the app feel like a serious Bible study workspace.
|
||||
|
||||
Current foundation:
|
||||
|
||||
- Page-first reader.
|
||||
- Study margin.
|
||||
- Session-aware resource toggles.
|
||||
- Strong's links and definitions.
|
||||
- Notes drawer.
|
||||
- Timeline.
|
||||
- Search.
|
||||
- Maps and audio controls where resources exist.
|
||||
|
||||
Good next milestones:
|
||||
|
||||
- Cross-reference UX after a LibreBible package exists.
|
||||
- Better search result navigation and saved searches.
|
||||
- Highlights and richer note clipping.
|
||||
- Sermon/study document workflows.
|
||||
- Responsive layout and accessibility pass.
|
||||
|
||||
## Resource Ecosystem
|
||||
|
||||
Purpose: keep public Bible/study resources reusable, attributed, and separate from user data.
|
||||
|
||||
Current foundation:
|
||||
|
||||
- LibreBible packages are consumed from `W:\libre-bible-data\packages\json`.
|
||||
- App-level query contracts hide the backing storage surface.
|
||||
- Existing resources include KJV, NET, Strong's, notes, commentary, dictionaries, places/routes, and KJV audio metadata.
|
||||
|
||||
Good next milestones:
|
||||
|
||||
- Cross-reference package.
|
||||
- Additional commentaries and dictionaries.
|
||||
- Atlas images/media.
|
||||
- Licensed pronunciation audio.
|
||||
- Package install/update metadata.
|
||||
- Offline package management for desktop.
|
||||
|
||||
## Persistence And Sync
|
||||
|
||||
Purpose: preserve study work across sessions and platforms without making any one backend mandatory.
|
||||
|
||||
Current foundation:
|
||||
|
||||
- Versioned local workspace snapshot.
|
||||
- Structured session notes.
|
||||
- Session timeline.
|
||||
- JSON import/export.
|
||||
- Markdown, HTML, and CSV export.
|
||||
- Optional one-way Nextcloud WebDAV export.
|
||||
- Hosted workspace client boundary exists but is not the active development lane.
|
||||
|
||||
Good next milestones:
|
||||
|
||||
- Import validation and conflict handling.
|
||||
- Better workspace migration tests.
|
||||
- Explicit backup/restore workflow.
|
||||
- Hosted single-user persistence after deployment is explicitly resumed.
|
||||
- Only consider sync after one-way export/import is reliable.
|
||||
|
||||
## Platform Adapters
|
||||
|
||||
Purpose: keep one app core while allowing platform-specific storage, packaging, and runtime behavior.
|
||||
|
||||
Current foundation:
|
||||
|
||||
- Browser/HotView adapter is the active lead lane.
|
||||
- Hosted web adapter exists for login/workspace API but is parked.
|
||||
- Tauri adapter exists with Rust/SQLite work but is not feature-parity with browser resources.
|
||||
- HotView runs on private Tailscale/local intranet at `http://desktop:5174/`.
|
||||
|
||||
Good next milestones:
|
||||
|
||||
- Keep browser adapter clean and fast.
|
||||
- Resume hosted web only through an explicit release/deploy pass.
|
||||
- Harden Tauri once the study model is stable.
|
||||
- Evaluate PWA/mobile after responsive web is proven.
|
||||
|
||||
## Public Responsibility
|
||||
|
||||
Purpose: prepare for responsible public use before public accounts or public hosted access.
|
||||
|
||||
Current foundation:
|
||||
|
||||
- Public resource/user workspace ownership split is documented.
|
||||
- License attribution appears in resource surfaces.
|
||||
- Public release is intentionally not the current active loop.
|
||||
|
||||
Good next milestones:
|
||||
|
||||
- License and attribution pages.
|
||||
- Privacy and terms pages.
|
||||
- Backups and monitoring.
|
||||
- Password reset and account lifecycle.
|
||||
- Abuse/rate-limit controls before public signup.
|
||||
|
||||
## Collaboration
|
||||
|
||||
Purpose: support shared Bible study without turning the app into a social network.
|
||||
|
||||
Current foundation:
|
||||
|
||||
- Sessions and exports can already carry study context.
|
||||
- Timeline events already record study actions.
|
||||
|
||||
Good next milestones:
|
||||
|
||||
- Shareable read-only session exports or links.
|
||||
- Shared sessions with explicit owners and participants.
|
||||
- Collaborative notes before whiteboards.
|
||||
- Conflict-safe document model only after single-user persistence works.
|
||||
@@ -90,3 +90,10 @@ Consolidation should turn the completed Phase 1-7 foundation into durable produc
|
||||
- Collaboration.
|
||||
|
||||
The goal is to preserve the platform-agnostic architecture before adding more features.
|
||||
|
||||
## Phase 8 Result
|
||||
|
||||
Phase 8 completed the consolidation pass. The roadmap now keeps completed foundation phases as an archive and organizes future work by product tracks. The supporting references are:
|
||||
|
||||
- [Product Tracks](product-tracks.md)
|
||||
- [App Architecture Boundaries](app-architecture-boundaries.md)
|
||||
|
||||
Reference in New Issue
Block a user