50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
# Phase 2 — Onboarding Persistence & Dashboard
|
|
|
|
## Goals
|
|
- Persist analysis results in Convex instead of localStorage.
|
|
- Connect onboarding to project + data source records.
|
|
- Build a functional dashboard that renders saved analysis.
|
|
|
|
## Scope
|
|
- Update onboarding flow to create or select a project.
|
|
- Save analysis results to Convex and store IDs.
|
|
- Render dashboard from Convex queries with empty/loading states.
|
|
|
|
## Detailed Tasks
|
|
1. **Onboarding persistence**
|
|
- When analysis completes:
|
|
- Ensure a default project exists (create if missing).
|
|
- Create a `dataSources` entry for the URL or manual input.
|
|
- Insert a new `analyses` record linked to project + data source.
|
|
- Stop using localStorage as the source of truth (can keep as cache if needed).
|
|
- Store analysisId in router state or query param if useful.
|
|
|
|
2. **Manual input integration**
|
|
- Same persistence path as URL analysis.
|
|
- Mark data source type + metadata to indicate manual origin.
|
|
|
|
3. **Dashboard implementation**
|
|
- Fetch latest analysis for selected project.
|
|
- Render:
|
|
- Product name + tagline + description.
|
|
- Summary cards (features, keywords, personas, competitors, use cases).
|
|
- Top features list + top problems solved.
|
|
- Add empty state if no analysis exists.
|
|
|
|
4. **Project selection behavior**
|
|
- When project changes in sidebar, dashboard should re-query and update.
|
|
|
|
## Dependencies
|
|
- Requires Phase 1 schema and layout decisions.
|
|
|
|
## Acceptance Criteria
|
|
- Onboarding persists analysis to Convex.
|
|
- Dashboard displays real data from Convex.
|
|
- Refreshing the page keeps data intact.
|
|
|
|
## Risks
|
|
- Larger analysis objects may need pagination/partial display.
|
|
|
|
## Notes
|
|
- Keep UI fast by showing a small, curated subset of analysis data.
|