# Date Planning Feature Roadmap ## Vision Build a complete Date Operating System for Closer — not a simple list of date ideas. Most couples don't struggle to find ideas. They struggle to: - Decide what to do - Find something both partners want - Schedule it - Follow through - Remember meaningful moments afterward The goal is to create a system that helps couples plan, experience, and reflect on dates together — built on top of Closer's existing daily question + spin wheel engagement loop. ## Goals ### Primary Goals - Increase relationship engagement beyond daily questions - Encourage regular quality time - Create meaningful shared memories - Improve user retention - Create premium upgrade opportunities ### Success Metrics - Dates planned per month - Dates completed per month - Couple retention - Premium conversion rate - Date reflection completion rate ## Existing App Context ### What's Already Built - Daily question core loop (answer → reveal → history) - Spin wheel category picker + question sessions - Question packs with premium gating - Partner invite system (code + email) - Firestore-backed auth, couples, sessions, threads - RevenueCat SDK wired (`purchases:8.20.0`) — purchase flows not yet implemented - FCM push notifications (daily reminders, partner answered) - Room local database (answers, questions, categories) - Hilt DI, Material 3, Jetpack Compose ### Stack | Layer | Technology | |-------|-----------| | Language | Kotlin 2.x | | UI | Jetpack Compose + Material 3 | | Navigation | Navigation Compose | | Backend | Firebase (Auth, Firestore, Functions, FCM, Remote Config) | | Payments | RevenueCat (`purchases:8.20.0`) | | Local Storage | Room + DataStore + EncryptedSharedPreferences | | DI | Hilt | | Analytics | Firebase Analytics (hashed IDs, coarse categories) | | Security | ProGuard/R8, SSL pinning, App Check, fail-closed webhooks | ### Architecture Fit New date planning features slot into the existing architecture: ``` app/ ├── data/ │ ├── local/ # Room: date history, reflections, bucket list │ ├── remote/ # Firestore: shared date plans, couple bucket list │ └── repository/ # Repository implementations ├── domain/ │ ├── model/ # Date, DatePlan, BucketListItem, Reflection data classes │ └── repository/ # Repository interfaces ├── ui/ │ ├── dates/ # NEW: date discovery, match, builder, history, reflection │ ├── questions/ # Existing daily question flow │ ├── wheel/ # Existing spin wheel │ └── ... ├── core/ │ ├── navigation/ # New AppRoute.Dates section │ ├── billing/ # Premium date pack gating │ └── ... ``` ## Phase 1: Date Discovery ### Date Match Both partners browse date ideas independently — like the existing question reveal mechanic, but for dates. Actions: - Love ❤️ - Maybe 💛 - Skip 👎 Only mutual "Love" matches appear. "Maybe" matches surface as secondary suggestions. **Firestore model:** - `couples/{coupleId}/date_swipes/{dateId}` — per-partner swipe state - Revealed matches stored in `couples/{coupleId}/date_matches/{matchId}` ### Date Builder Both partners contribute preferences. Builder assembles a plan. Inputs: - Date - Time - Budget - Duration Outputs: - Activity suggestion - Food suggestion - Conversation prompts (draw from existing question packs) - Optional challenge **Local-first:** Builder preferences stored in Room. Generated plan synced to Firestore couple doc. ### Couple Bucket List Shared list both partners can add to and check off. Categories (aligned with existing question categories): - Adventure - Travel - Food - Learning - Romance - Intimacy - Seasonal **Firestore model:** - `couples/{coupleId}/bucket_list/{itemId}` — shared list with added-by, completed-by, completed-at fields ## Phase 2: Date History and Reflection ### Date History Store completed dates for the couple. Fields: - Date, time, location - Photos (Firebase Storage) - Notes (per partner) - Category - Cost - Rating (1–5, per partner) **Firestore model:** - `couples/{coupleId}/date_history/{dateId}` — shared history - Photos stored in Firebase Storage under `couples/{coupleId}/date_photos/{photoId}` ### Private Date Reflection After a date, both partners answer reflection questions privately. Answers reveal when both complete — same mechanic as the existing answer reveal flow. Questions: - What was your favorite moment? - What surprised you? - What did you appreciate most? This reuses the existing `sessions`/`answers`/`threads` Firestore structure but with a date reflection type flag. ### Relationship Insights Aggregate from date history + existing question engagement. Track: - Connection score (composite: date frequency + question engagement + reflection completion) - Date satisfaction (average rating) - Date frequency (per month) - Preferred categories (from date history + question packs) **Computed client-side** from local Room cache + Firestore snapshots. No server aggregation needed for MVP. ## Phase 3: Smart Planning ### AI Date Concierge Firebase Cloud Function that generates personalized date plans. Inputs: - Budget - Available time - Weather (OpenWeather API or similar) - Interests (from question categories + date history) - Relationship stage (from account age + date history) Outputs: - Complete itinerary - Estimated cost breakdown - Conversation prompts (pull from existing premium question packs) - Backup indoor plan **Implementation:** Firebase Cloud Function calling an LLM API (OpenAI / Anthropic). Results cached in Firestore. ### Smart Scheduling Track partner availability and suggest date windows. - Availability shared via Firestore (simple "free evenings" or calendar integration later) - Preferred date frequency set per couple - Auto-suggest when both partners have a free window + haven't had a date recently ## Premium Features ### Premium Date Packs Curated date collections — same pack model as existing question packs. - First Year Together - Married With Kids - Long Distance - Anniversary Pack - Reconnection Pack - Summer Dates - Winter Dates **Implementation:** Same Firestore pack structure + RevenueCat entitlement gating as existing question packs. ### Advanced AI Concierge - Unlimited AI-generated plans (free tier: 1/month) - Personalized recommendations based on date history - Seasonal suggestions - Local event integration (later: Google Places / Yelp API) ### Premium Insights - Date trends over time - Relationship growth patterns - Favorite activities - Monthly summaries ## Killer Feature: Date Replay Both partners answer after a date: - Best moment - Unexpected moment - One thing I appreciated Months later, they can revisit those reflections as a relationship timeline — like the existing answer history, but for real experiences. **Implementation:** Reuses the reveal mechanic. Reflections stored as date-typed sessions. Timeline view queries all completed date sessions sorted chronologically. ## Recommended Build Order ### MVP — Phase 1 (v1.1.x) 1. **Date Match** — swipe UI + mutual match reveal (reuses reveal pattern) 2. **Date Builder** — preference input + plan generation 3. **Couple Bucket List** — shared list with checkoff ### Version 1.2 4. **Date History** — log completed dates + photos 5. **Private Reflections** — post-date questions with reveal mechanic 6. **Relationship Insights** — aggregate dashboard ### Version 1.3 7. **Smart Scheduling** — availability + suggestions 8. **AI Date Concierge** — Cloud Function + LLM integration ### Version 2.0 9. **Date Replay** — relationship timeline from reflections 10. **Advanced Analytics** — trends + growth patterns 11. **Premium Date Packs** — curated collections 12. **Local Event Integration** — Places/Yelp API ## Long Term Positioning Closer becomes a full relationship platform where couples can: - Communicate (daily questions, spin wheel) - Plan experiences (date match, builder, AI concierge) - Build memories (date history, reflections, replay) - Track relationship growth (insights, analytics) - Strengthen connection over time Every feature builds on the same engagement loop: **private input → mutual reveal → shared memory**.