120 lines
5.9 KiB
Markdown
120 lines
5.9 KiB
Markdown
# PRD: AI Journaling → LinkedIn Posts (Mobile-first MVP)
|
||
|
||
Version: 2025-10-07
|
||
Author: Business Analyst (Mary)
|
||
|
||
## Purpose
|
||
Provide a clear product requirements document for an AI-driven mobile-first journaling app that helps professionals capture text and voice entries, transcribe audio, and convert entries into LinkedIn-ready posts using OpenAI. The product is privacy-first (local-first default), integrates with Whisper for transcription and LinkedIn for publishing, and is designed to be built by a single operator with $5k for API/infra costs over a 3-month MVP timeline.
|
||
|
||
## Scope
|
||
MVP includes:
|
||
- Local-first journaling (text), tags, search, offline support
|
||
- Audio recording and Whisper transcription (basic pipeline)
|
||
- OpenAI-driven post generation with 3 tone presets (professional, thought‑leadership, casual)
|
||
- Draft editor with redaction/anonymize toggle
|
||
- LinkedIn OAuth + publish endpoint; fallback share flow for demos
|
||
- Basic analytics: entries, conversions, publish counts
|
||
- Privacy & retention settings (default: 90 days) and consent logs
|
||
|
||
Out of scope (MVP):
|
||
- Full cloud sync by default (opt-in only)
|
||
- Advanced analytics/engagement metrics
|
||
- Scheduled posting, multi-language support
|
||
|
||
## Success metrics (for MVP validation)
|
||
- Product usage: 100 active users generating 1–3 posts/week within 1 month of launch
|
||
- Cost control: Average generation + transcription cost ≤ $0.50 per active user per week
|
||
- Retention: At least 25% of users use the app weekly after 30 days
|
||
- Time to post: From entry capture to publish ≤ 5 minutes (happy path)
|
||
- Privacy: No raw audio retained server-side beyond TTL; users can export and delete data
|
||
|
||
## Personas
|
||
Primary
|
||
- Senior Product Manager at a mid-size SaaS company. Busy, wants to turn daily learnings into LinkedIn posts to build credibility.
|
||
|
||
Secondary
|
||
- Individual contributors (engineers/designers) who want to document wins and publicize insights.
|
||
- Consultants/freelancers who want to showcase work and build networks.
|
||
|
||
## User Journeys
|
||
1. Quick Text Capture
|
||
- User opens app → taps + → writes a short entry → tags → saves locally.
|
||
- User taps Convert → selects tone → app generates variants → user edits → Publish (LinkedIn or fallback).
|
||
|
||
2. Voice Capture → Transcribe → Convert
|
||
- User records audio (20–60s) → uploads via signed URL → Whisper transcribes → client displays transcript → user edits/anonymizes → Convert → Publish.
|
||
|
||
3. Search & Reuse
|
||
- User searches by tag/date → selects past entry → converts/adapts → publish or schedule.
|
||
|
||
4. Privacy Flow
|
||
- Default: everything stored locally. For cloud features, user explicitly opts-in and gives consent. Processing to OpenAI/Whisper occurs only after user confirms.
|
||
|
||
## Functional Requirements
|
||
- FR1: Create/Edit/Delete journal entries locally (offline-first). (MUST)
|
||
- FR2: Tagging and full-text search across entries. (MUST)
|
||
- FR3: Audio recording with playback & file persist. (MUST)
|
||
- FR4: Signed upload flow for audio and serverless transcription job (Whisper). (MUST)
|
||
- FR5: OpenAI proxy endpoint to generate 1–3 post variants with hashtags and CTA. (MUST)
|
||
- FR6: Draft editor with inline edit and redaction, anonymize toggle. (MUST)
|
||
- FR7: LinkedIn OAuth + UGC publish endpoint + fallback share flow. (MUST)
|
||
- FR8: Settings for retention (default=90 days), anonymize behavior, telemetry opt-in. (MUST)
|
||
- FR9: Processing logs (transcribe/generate/publish) and consent records. (MUST)
|
||
|
||
## Non-functional Requirements
|
||
- NFR1: End-to-end TLS for all network traffic. (MUST)
|
||
- NFR2: Raw audio deleted from server storage within TTL ≤ 1 hour. (MUST)
|
||
- NFR3: At-rest encryption for optional cloud sync. (MUST if cloud sync enabled)
|
||
- NFR4: Scalable serverless functions with rate-limiting and quota enforcement. (MUST)
|
||
- NFR5: Token and cost monitoring with alerts (monthly & per-day). (MUST)
|
||
- NFR6: Client works offline; queue jobs for transcription when online. (MUST)
|
||
|
||
## Data model (simplified)
|
||
- Entry
|
||
- id, user_id, text, tags[], created_at, updated_at, status (draft/published), audio_ref (optional), transcription_id
|
||
- Transcript
|
||
- id, entry_id, text, language, confidence, created_at
|
||
- Variant
|
||
- id, entry_id, text, hashtags[], tone, created_at
|
||
- PublishEvent
|
||
- id, entry_id, variant_id, provider, provider_id, status, timestamp
|
||
- ConsentLog
|
||
- id, user_id, action (transcribe/generate/publish), timestamp, consent_given
|
||
|
||
## API summary (serverless)
|
||
Refer to `SERVERLESS-API-SPEC.md` for endpoints. Key endpoints:
|
||
- /api/signed-upload (POST)
|
||
- /api/transcribe/start (POST)
|
||
- /api/transcribe/callback (internal)
|
||
- /api/generate-post (POST)
|
||
- /api/publish-linkedin (POST)
|
||
- /api/usage (GET)
|
||
|
||
## Privacy & Legal
|
||
- Store minimal personal data and only with explicit consent for cloud sync or publish actions.
|
||
- Provide export (JSON/MD) and account delete routes. Ensure backups respect retention rules.
|
||
- Provide clear privacy policy in app and during onboarding.
|
||
|
||
## Constraints & Assumptions
|
||
- Single operator builds/operates app; $5k budget for APIs & hosting. Use low-cost models and limit variants to control spending.
|
||
- LinkedIn API access may require app review; implement fallback share flow for MVP.
|
||
|
||
## Timeline & Milestones
|
||
- M0: Prepare dev accounts, serverless skeleton (1 week)
|
||
- M1: Core journaling + audio + signed upload (weeks 1–4)
|
||
- M2: Transcription + generation + LinkedIn integration (weeks 5–8)
|
||
- M3: Privacy, retention, testing & store prep (weeks 9–12)
|
||
|
||
## Acceptance Criteria (overall)
|
||
- All P0 FRs implemented and demoable in staging with sample LinkedIn publish (or fallback).
|
||
- Processing logs and retention settings work as specified.
|
||
- Cost per active user remains within estimated budget after 30 days of sample usage.
|
||
|
||
## Open questions
|
||
- Monetization specifics for paid tiers and pricing (deferred until validation).
|
||
- Full cloud sync encryption approach for production-grade privacy (need architect input).
|
||
|
||
|
||
---
|
||
|
||
Document created for handoff and PRD review. Update owners and timelines as needed. |