5.7 KiB
Roadmap Plan (Starting at V6.0)
This roadmap starts at V6.0 and tracks forward-looking work only.
V6.0 - Hosting Migration
Objective: move from local-only operation to secure, stable remote hosting.
Detailed plan: v6_0_hosting_migration_plan.md
Scope
- Containerize app runtime for production deployment.
- Run PostgreSQL in Docker and migrate from SQLite.
- Add Cloudflare Tunnel exposure with Access protection.
- Add operational safeguards (health checks, restart policies, backups).
Deliverables
- Production-ready
docker-composedeployment for app + database + tunnel. - Environment-based configuration for DB, uploads, prompts, and logging.
- Verified data migration path into PostgreSQL.
- Runbook updates for deploy, rollback, and backup/restore.
Exit Criteria
/healthzreports healthy app and worker in deployed environment.- One end-to-end document -> source -> job workflow succeeds remotely.
- Backup and restore procedure is tested.
V6.1 - Testing and Refinement
[Potential app refinements:
-
Create a single “Maintenance Jobs” UI backed by your existing async worker pattern, not direct shell execution from the page.
- Add a
maintenance_runtable (id,job_type,status,started_at,finished_at,triggered_by,summary,log_path,error_detail). - In the UI, add two buttons: Run Backup and Run Storage Reconciliation; clicking creates a run row and enqueues worker execution.
- Worker executes the existing scripts/commands, captures stdout/stderr to a timestamped log file, updates run status/summary.
- UI shows a run history grid with live status, duration, summary, and “View Log”/“Download Log”.
- Add optional schedule controls (daily/weekly) that create queued runs through the same path so manual and scheduled runs behave identically.
- Add a
-
Consider a difference Sources for Document page
- Presenting the list of Document sources is not very useful.
- Consider presenting a thumbnail gallery instead. I think this would make it easier to select the single source file the user is looking for.
- This idea may be useful in other areas as well.
-
People detail page -> LINKED DOCUMENTS:
- How to handle long list of identically named documents (e.g., "Hig postcard to Zenna")? The table shown is not useful, but there isn't enough real estate in the column to add something like the document date, I don't think.
-
Start reviewing what the UI looks like on a smart phone. How do those cards arrange themselves on a phone?
]
V6.2 - Reporting Features
[ More thoughts on additional features:
- Ability to search within a document to find potential users to add to the People table.
- Ability to search within a document to find dates to associate with people (e.g., John Smith was born on July 7, 1899; or "In February 1942, Martha and I drove to Wisconsin", "We took a vacation to Alaska in the summer of 1987", etc ]
Objective: improve research value with person-centric outputs.
Scope
- Person timeline views using document dates and linked records.
- AI-assisted biography/family-history generation from curated sources.
- Exportable report views (human-readable, print-oriented).
Deliverables
- Timeline UI and service queries with clear ordering/filters.
- Prompted narrative generation workflow using existing evidence-safe patterns.
- Saved/printable report presentation for review and sharing.
Exit Criteria
- Timelines are reproducible from persisted records.
- Narrative generation is traceable to source records and prompts.
- Reports can be reviewed without modifying archival source data.
V6.3 - Access Control and Multi-User Readiness
[ More thoughts on user accounts:
- Create a generic "view only" user that does not have the rights to alter any of the data
- Limit user accounts access to data by Tag. I have distant family members that I would want to share the transcribed data with, but they would only be interested in a subset of it. For example my Cochran cousins would have no interest in Lancaster documents, so limit the Cochra Clan cousins to view-only access to documents tagged "cochran clan" ]
Objective: prepare for managed collaboration beyond single-user operation.
Scope
- Introduce application-level authentication.
- Add role-based authorization (admin/editor/contributor/viewer).
- Add audit visibility for user-attributed write actions.
Deliverables
- User identity model and login/session flow.
- Route/page/service authorization enforcement.
- Audit metadata for sensitive create/update/delete workflows.
Exit Criteria
- Unauthorized operations are blocked consistently across UI/API.
- Role policies are enforced by deterministic tests.
- User-attributed changes are visible for audit/review.
V7 or later - Scalability and Multi-Tenant Direction (Optional)
Objective: keep architecture ready for broader deployment footprints.
Scope
- Evaluate per-tenant or per-user data partitioning strategy.
- Formalize connection/runtime strategy for tenant-aware DB selection.
- Expand operational telemetry for throughput and cost monitoring.
Deliverables
- Decision document for tenancy model and migration strategy.
- Prototype-safe runtime boundary for selecting data targets.
- Monitoring baseline for queue depth, job latency, and provider cost trends.
Exit Criteria
- Selected tenancy strategy is documented and testable.
- Operational metrics support capacity planning.
Planning Notes
- Keep architecture, schema, and UI contracts synchronized in
docs/as each version lands. - Prefer explicit schema migration over runtime compatibility write paths.
- Preserve evidence/provenance guarantees when adding new AI-powered features.