diff --git a/projects/network-app/README.md b/projects/network-app/README.md new file mode 100644 index 0000000..6e6eca9 --- /dev/null +++ b/projects/network-app/README.md @@ -0,0 +1,54 @@ +# The Network App + +**Client:** David DePoyster +**Company:** NWM (Wealth Management Firm) +**Status:** Planning Phase +**Last Updated:** 2025-06-26 + +## Overview + +The Network App is an AI-powered CRM mobile application designed specifically for wealth management advisors managing high-net-worth client relationships. Unlike traditional CRMs that focus on transactions, this app emphasizes relationship intelligence and meaningful personal connections. + +## Problem Statement + +Wealth managers juggling 100+ high-net-worth clients struggle to: +- Remember personal details (interests, family, preferences) +- Send timely, personalized communications +- Identify networking opportunities between clients +- Track important dates (birthdays, anniversaries) +- Maintain GDPR/HIPAA compliance while staying personal + +## Solution + +A mobile-first CRM that uses AI (Claude) to: +1. **Enrich client profiles** with deep personal context +2. **Generate personalized communications** that feel authentic +3. **Match clients** who would benefit from knowing each other +4. **Automate thoughtful touches** for important dates +5. **Ensure compliance** with financial industry regulations + +## Key Differentiators + +- **Relationship-first design** vs transaction-tracking +- **AI-powered introductions** connecting clients meaningfully +- **Mobile-native** for advisors on the go +- **Compliance-built-in** for wealth management industry + +## Tech Stack + +- **Frontend:** Swift/SwiftUI (iOS) +- **Backend:** Firebase (Firestore, Auth, Functions) +- **AI:** Claude API (Anthropic) +- **Initial Scale:** 100+ clients + +## Project Documents + +- [Requirements](./requirements.md) - Full feature specification +- [Competitors](./competitors.md) - Market research and analysis +- [Feasibility](./feasibility.md) - Technical assessment +- [Blueprint](./blueprint.md) - Architecture and development plan + +## Contact + +- **Client:** David DePoyster (depoyster1@me.com) +- **Developer:** Donovan Kelly (donovan.a.kelly@pm.me) diff --git a/projects/network-app/blueprint.md b/projects/network-app/blueprint.md new file mode 100644 index 0000000..78615e3 --- /dev/null +++ b/projects/network-app/blueprint.md @@ -0,0 +1,869 @@ +# The Network App - Project Blueprint + +**Date:** 2025-06-26 +**Version:** 1.0 +**Purpose:** Technical architecture, screens, data models, and development plan + +--- + +## 1. App Architecture Diagram + +``` +┌────────────────────────────────────────────────────────────────────┐ +│ iOS APPLICATION │ +├────────────────────────────────────────────────────────────────────┤ +│ │ +│ ┌──────────────────────────────────────────────────────────────┐ │ +│ │ PRESENTATION LAYER │ │ +│ │ │ │ +│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │ │ +│ │ │Dashboard│ │ Clients │ │ Matches │ │Messages │ │Settings│ │ │ +│ │ │ View │ │ View │ │ View │ │ View │ │ View │ │ │ +│ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └────┬───┘ │ │ +│ │ │ │ │ │ │ │ │ +│ │ ┌────▼───────────▼───────────▼───────────▼───────────▼───┐ │ │ +│ │ │ VIEW MODELS │ │ │ +│ │ │ DashboardVM │ ClientsVM │ MatchesVM │ CommsVM │ SettingsVM│ │ +│ │ └─────────────────────────┬──────────────────────────────┘ │ │ +│ └────────────────────────────│───────────────────────────────┘ │ +│ │ │ +│ ┌────────────────────────────▼───────────────────────────────┐ │ +│ │ DOMAIN LAYER │ │ +│ │ │ │ +│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ +│ │ │ Use Cases │ │ Models │ │ Repository │ │ │ +│ │ │ │ │ │ │ Protocols │ │ │ +│ │ │ - GetClients│ │ - Client │ │ │ │ │ +│ │ │ - SaveClient│ │ - Match │ │ - ClientRepo│ │ │ +│ │ │ - GenEmail │ │ - Message │ │ - MatchRepo │ │ │ +│ │ │ - FindMatch │ │ - Event │ │ - AIService │ │ │ +│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ +│ └─────────────────────────────┬────────────────────────────────┘ │ +│ │ │ +│ ┌─────────────────────────────▼────────────────────────────────┐ │ +│ │ DATA LAYER │ │ +│ │ │ │ +│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ +│ │ │ Firebase │ │ Claude │ │ Local │ │ │ +│ │ │ Service │ │ Service │ │ Cache │ │ │ +│ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ +│ └─────────│────────────────│────────────────│──────────────────┘ │ +└────────────│────────────────│────────────────│──────────────────────┘ + │ │ │ + ▼ ▼ ▼ +┌────────────────┐ ┌────────────────┐ ┌────────────────┐ +│ FIRESTORE │ │ CLOUD FUNCTION │ │ CORE DATA │ +│ DATABASE │ │ (AI PROXY) │ │ (OFFLINE) │ +└────────────────┘ └───────┬────────┘ └────────────────┘ + │ + ▼ + ┌────────────────┐ + │ CLAUDE API │ + │ (ANTHROPIC) │ + └────────────────┘ +``` + +--- + +## 2. Key Screens & Wireframes + +### 2.1 Dashboard (Home) + +``` +┌─────────────────────────────────────┐ +│ ◀ The Network App 👤 ⚙️ │ +├─────────────────────────────────────┤ +│ │ +│ Good morning, David │ +│ │ +│ ┌─────────────────────────────┐ │ +│ │ 🎂 UPCOMING THIS WEEK │ │ +│ │ │ │ +│ │ Today John Smith (60th) │ │ +│ │ Wed Mary Johnson Anniv │ │ +│ │ Fri Follow-up: Bob Lee │ │ +│ │ │ │ +│ │ [View All Events] │ │ +│ └─────────────────────────────┘ │ +│ │ +│ ┌─────────────────────────────┐ │ +│ │ 🤝 SUGGESTED CONNECTIONS │ │ +│ │ │ │ +│ │ ┌────┐ ┌────┐ │ │ +│ │ │ JS │──│ TW │ Both golf │ │ +│ │ └────┘ └────┘ enthusiasts │ │ +│ │ │ │ +│ │ [Review Match] │ │ +│ └─────────────────────────────┘ │ +│ │ +│ ┌─────────────────────────────┐ │ +│ │ 📝 DRAFT MESSAGES (3) │ │ +│ │ │ │ +│ │ Birthday wish for John... │ │ +│ │ Newsletter intro for... │ │ +│ │ │ │ +│ └─────────────────────────────┘ │ +│ │ +├─────────────────────────────────────┤ +│ 🏠 👥 🤝 ✉️ ⚙️ │ +│ Home Clients Matches Messages Set │ +└─────────────────────────────────────┘ +``` + +### 2.2 Client List + +``` +┌─────────────────────────────────────┐ +│ ◀ Clients ➕ 🔍 │ +├─────────────────────────────────────┤ +│ ┌─────────────────────────────────┐ │ +│ │ 🔍 Search clients... │ │ +│ └─────────────────────────────────┘ │ +│ │ +│ [All] [VIP] [Recent] [Birthdays] │ +│ │ +│ ┌─────────────────────────────────┐ │ +│ │ 👤 John Smith 🎂 ▶ │ │ +│ │ CEO, Smith Ventures │ │ +│ │ Last contact: 2 days ago │ │ +│ └─────────────────────────────────┘ │ +│ │ +│ ┌─────────────────────────────────┐ │ +│ │ 👤 Mary Johnson ▶ │ │ +│ │ Retired, Real Estate │ │ +│ │ Last contact: 1 week ago │ │ +│ └─────────────────────────────────┘ │ +│ │ +│ ┌─────────────────────────────────┐ │ +│ │ 👤 Robert Lee 🔔 ▶ │ │ +│ │ Attorney, Lee & Partners │ │ +│ │ Follow-up due │ │ +│ └─────────────────────────────────┘ │ +│ │ +│ ... more clients ... │ +│ │ +├─────────────────────────────────────┤ +│ 🏠 👥 🤝 ✉️ ⚙️ │ +└─────────────────────────────────────┘ +``` + +### 2.3 Client Profile + +``` +┌─────────────────────────────────────┐ +│ ◀ Back ✏️ ••• │ +├─────────────────────────────────────┤ +│ │ +│ ┌───────────┐ │ +│ │ 👤 │ │ +│ │ Photo │ │ +│ └───────────┘ │ +│ John Smith │ +│ CEO, Smith Ventures │ +│ │ +│ 📞 (555) 123-4567 ✉️ Email │ +│ │ +├─────────────────────────────────────┤ +│ [Overview] [Notes] [History] [AI] │ +├─────────────────────────────────────┤ +│ │ +│ 📅 IMPORTANT DATES │ +│ Birthday: March 15 (turns 60) │ +│ Client since: 2018 (7 years) │ +│ Anniversary: June 22 │ +│ │ +│ 💼 PROFESSIONAL │ +│ CEO at Smith Ventures │ +│ Industry: Private Equity │ +│ Previously: Goldman Sachs │ +│ │ +│ ❤️ INTERESTS │ +│ Golf • Wine collecting • Jazz │ +│ Stanford alumni • Board member │ +│ │ +│ 👨‍👩‍👧‍👦 FAMILY │ +│ Spouse: Sarah │ +│ Kids: Emma (28), Michael (25) │ +│ │ +│ 🏷️ TAGS │ +│ [VIP] [Referral Source] [Golf] │ +│ │ +├─────────────────────────────────────┤ +│ [📧 Generate Email] [🤝 Find Match]│ +└─────────────────────────────────────┘ +``` + +### 2.4 AI Message Generation + +``` +┌─────────────────────────────────────┐ +│ ◀ Generate Message │ +├─────────────────────────────────────┤ +│ │ +│ To: John Smith │ +│ │ +│ Purpose: │ +│ ┌─────────────────────────────┐ │ +│ │ ● Birthday Wish │ │ +│ │ ○ Check-in │ │ +│ │ ○ Meeting Follow-up │ │ +│ │ ○ Introduction │ │ +│ │ ○ Custom │ │ +│ └─────────────────────────────┘ │ +│ │ +│ Additional context (optional): │ +│ ┌─────────────────────────────┐ │ +│ │ Mention the wine we │ │ +│ │ discussed last month... │ │ +│ └─────────────────────────────┘ │ +│ │ +│ [✨ Generate with AI] │ +│ │ +├─────────────────────────────────────┤ +│ AI GENERATED DRAFT │ +│ ┌─────────────────────────────┐ │ +│ │ Dear John, │ │ +│ │ │ │ +│ │ Happy 60th birthday! I hope │ │ +│ │ you're celebrating with │ │ +│ │ Sarah and that bottle of │ │ +│ │ '82 Margaux we talked │ │ +│ │ about at the club... │ │ +│ │ │ │ +│ │ [Edit] │ │ +│ └─────────────────────────────┘ │ +│ │ +│ [🔄 Regenerate] [✅ Approve & Send]│ +│ │ +└─────────────────────────────────────┘ +``` + +### 2.5 Match Suggestions + +``` +┌─────────────────────────────────────┐ +│ ◀ Network Matches 🔄 │ +├─────────────────────────────────────┤ +│ │ +│ AI-suggested connections between │ +│ your clients who may benefit from │ +│ knowing each other. │ +│ │ +│ ┌─────────────────────────────────┐ │ +│ │ ┌────┐ ┌────┐ │ │ +│ │ │ JS │──────────│ TW │ │ │ +│ │ └────┘ └────┘ │ │ +│ │ John Smith Tom Wilson │ │ +│ │ │ │ +│ │ MATCH SCORE: 87% │ │ +│ │ │ │ +│ │ 🎯 Why they'd connect: │ │ +│ │ • Both avid golfers (single │ │ +│ │ digit handicaps) │ │ +│ │ • Both Stanford MBA alumni │ │ +│ │ • John looking for PE deals; │ │ +│ │ Tom has portfolio co exits │ │ +│ │ │ │ +│ │ [❌ Not a Fit] [✅ Introduce] │ │ +│ └─────────────────────────────────┘ │ +│ │ +│ ┌─────────────────────────────────┐ │ +│ │ ┌────┐ ┌────┐ │ │ +│ │ │ MJ │──────────│ SL │ │ │ +│ │ └────┘ └────┘ │ │ +│ │ Mary Johnson Susan Lee │ │ +│ │ │ │ +│ │ MATCH SCORE: 72% │ │ +│ │ ... │ │ +│ └─────────────────────────────────┘ │ +│ │ +├─────────────────────────────────────┤ +│ 🏠 👥 🤝 ✉️ ⚙️ │ +└─────────────────────────────────────┘ +``` + +--- + +## 3. Data Models + +### 3.1 Swift Models + +```swift +// MARK: - Client Model + +struct Client: Identifiable, Codable { + let id: String + var userId: String + + // Basic Info + var firstName: String + var lastName: String + var email: String? + var phone: String? + var address: Address? + var photoURL: String? + + // Professional + var company: String? + var role: String? + var industry: String? + var previousCompanies: [String]? + + // Personal + var birthday: Date? + var anniversary: Date? + var interests: [String] + var family: FamilyInfo? + var preferences: [String: String] + + // Metadata + var tags: [String] + var notes: [Note] + var clientSince: Date + var lastContactedAt: Date? + var matchPreferences: MatchPreferences + + var createdAt: Date + var updatedAt: Date + + var fullName: String { + "\(firstName) \(lastName)" + } +} + +struct Address: Codable { + var street: String? + var city: String? + var state: String? + var zip: String? + var country: String? +} + +struct FamilyInfo: Codable { + var spouseName: String? + var children: [FamilyMember]? +} + +struct FamilyMember: Codable { + var name: String + var age: Int? + var relationship: String +} + +struct Note: Identifiable, Codable { + let id: String + var content: String + var createdAt: Date + var isPrivate: Bool +} + +struct MatchPreferences: Codable { + var excludeFromMatching: Bool + var excludeClientIds: [String] +} + +// MARK: - Match Model + +struct Match: Identifiable, Codable { + let id: String + var userId: String + var client1Id: String + var client2Id: String + + var score: Double // 0.0 - 1.0 + var aiReasoning: String + var sharedInterests: [String] + var matchType: MatchType + + var status: MatchStatus + var introducedAt: Date? + var outcome: String? + + var createdAt: Date + var updatedAt: Date +} + +enum MatchType: String, Codable { + case professional + case personal + case both +} + +enum MatchStatus: String, Codable { + case suggested + case approved + case introduced + case rejected + case successful +} + +// MARK: - Communication Model + +struct Communication: Identifiable, Codable { + let id: String + var userId: String + var clientId: String + + var type: CommunicationType + var purpose: String + var status: CommunicationStatus + + var aiGenerated: AIContent? + var finalContent: String? + + var sentAt: Date? + var createdAt: Date +} + +enum CommunicationType: String, Codable { + case email + case birthday + case anniversary + case introduction + case newsletter + case custom +} + +enum CommunicationStatus: String, Codable { + case draft + case approved + case sent + case failed +} + +struct AIContent: Codable { + var content: String + var generatedAt: Date + var promptContext: String + var modelVersion: String +} + +// MARK: - Event Model + +struct ClientEvent: Identifiable, Codable { + let id: String + var userId: String + var clientId: String + + var type: EventType + var title: String + var date: Date + var isRecurring: Bool + var reminderDays: Int + + var lastTriggeredAt: Date? + var createdAt: Date +} + +enum EventType: String, Codable { + case birthday + case anniversary + case followUp + case custom +} + +// MARK: - User Model + +struct AppUser: Identifiable, Codable { + let id: String + var email: String + var displayName: String + var firmName: String? + + var settings: UserSettings + var subscription: Subscription + + var createdAt: Date +} + +struct UserSettings: Codable { + var defaultReminderDays: Int + var communicationTone: String // "formal", "casual", "warm" + var signatureTemplate: String? + var notificationsEnabled: Bool +} + +struct Subscription: Codable { + var tier: SubscriptionTier + var expiresAt: Date? + var aiCreditsRemaining: Int? +} + +enum SubscriptionTier: String, Codable { + case free + case pro + case enterprise +} +``` + +### 3.2 Firestore Collections Structure + +``` +firestore/ +├── users/ +│ └── {userId}/ +│ ├── profile (document fields) +│ ├── settings (document fields) +│ └── subscription (document fields) +│ +├── clients/ +│ └── {clientId}/ +│ ├── (all client fields) +│ └── notes[] (embedded array) +│ +├── matches/ +│ └── {matchId}/ +│ └── (all match fields) +│ +├── communications/ +│ └── {communicationId}/ +│ └── (all communication fields) +│ +├── events/ +│ └── {eventId}/ +│ └── (all event fields) +│ +└── auditLog/ + └── {logId}/ + ├── userId + ├── action + ├── resourceType + ├── resourceId + ├── timestamp + └── metadata +``` + +--- + +## 4. API Endpoints (Cloud Functions) + +### 4.1 AI Endpoints + +``` +POST /api/ai/generateEmail +Request: +{ + "clientId": "abc123", + "purpose": "birthday", + "additionalContext": "mention wine discussion" +} +Response: +{ + "content": "Dear John, ...", + "generatedAt": "2025-06-26T10:00:00Z", + "communicationId": "comm123" +} + +POST /api/ai/suggestMatches +Request: +{ + "clientId": "abc123", // optional, for specific client + "limit": 10 +} +Response: +{ + "matches": [ + { + "client1Id": "abc123", + "client2Id": "def456", + "score": 0.87, + "reasoning": "Both avid golfers...", + "sharedInterests": ["golf", "stanford"] + } + ] +} + +POST /api/ai/generateIntroduction +Request: +{ + "matchId": "match123" +} +Response: +{ + "emailToClient1": "...", + "emailToClient2": "...", + "communicationIds": ["comm1", "comm2"] +} +``` + +### 4.2 Data Endpoints + +``` +GET /api/clients +GET /api/clients/{clientId} +POST /api/clients +PUT /api/clients/{clientId} +DELETE /api/clients/{clientId} + +GET /api/events/upcoming?days=7 +POST /api/events + +GET /api/matches?status=suggested +PUT /api/matches/{matchId}/status + +POST /api/communications/{commId}/send + +GET /api/export/client/{clientId} // GDPR +DELETE /api/data/client/{clientId} // GDPR right to deletion +``` + +### 4.3 Cloud Functions Structure + +```javascript +// functions/index.js + +const functions = require('firebase-functions'); +const admin = require('firebase-admin'); +const Anthropic = require('@anthropic-ai/sdk'); + +admin.initializeApp(); + +// AI Email Generation +exports.generateEmail = functions.https.onCall(async (data, context) => { + // Verify authentication + if (!context.auth) { + throw new functions.https.HttpsError('unauthenticated', 'Must be logged in'); + } + + // Get client data + const client = await getClient(data.clientId, context.auth.uid); + + // Build prompt + const prompt = buildEmailPrompt(client, data.purpose, data.context); + + // Call Claude + const anthropic = new Anthropic(); + const response = await anthropic.messages.create({ + model: 'claude-3-5-sonnet-20241022', + max_tokens: 1024, + messages: [{ role: 'user', content: prompt }] + }); + + // Save draft and return + const commId = await saveDraft(context.auth.uid, data.clientId, response); + + // Audit log + await logAction(context.auth.uid, 'ai_generate', 'communication', commId); + + return { content: response.content[0].text, communicationId: commId }; +}); + +// Scheduled: Daily event check +exports.checkDailyEvents = functions.pubsub + .schedule('0 8 * * *') + .timeZone('America/New_York') + .onRun(async (context) => { + const events = await getUpcomingEvents(7); + await sendEventNotifications(events); + }); +``` + +--- + +## 5. Development Phases + +### Phase 1: Foundation (Weeks 1-4) + +**Week 1-2: Project Setup** +- [ ] Create Xcode project with SwiftUI +- [ ] Set up project architecture (folders, protocols) +- [ ] Configure Firebase project +- [ ] Implement Firebase Authentication +- [ ] Set up CI/CD (GitHub Actions + TestFlight) + +**Week 3-4: Core Data Layer** +- [ ] Create all Swift models +- [ ] Implement Firestore service +- [ ] Build repository layer +- [ ] Enable offline persistence +- [ ] Implement basic CRUD for clients + +**Deliverables:** +- App shell with authentication +- Can create/read clients (no UI polish) +- Offline storage working + +--- + +### Phase 2: Core Features (Weeks 5-8) + +**Week 5-6: Client Management UI** +- [ ] Client list view with search +- [ ] Client detail view (full profile) +- [ ] Client edit/create forms +- [ ] Notes management +- [ ] Tags and filtering + +**Week 7-8: Events & Notifications** +- [ ] Event model and storage +- [ ] Birthday/anniversary detection +- [ ] Local notifications setup +- [ ] Push notifications (Firebase Cloud Messaging) +- [ ] Dashboard with upcoming events + +**Deliverables:** +- Fully functional CRM (without AI) +- Can manage clients, notes, events +- Receives reminders for birthdays + +--- + +### Phase 3: AI Integration (Weeks 9-12) + +**Week 9-10: AI Infrastructure** +- [ ] Set up Cloud Functions +- [ ] Claude API integration +- [ ] Prompt engineering and testing +- [ ] Rate limiting and error handling + +**Week 11-12: AI Features** +- [ ] Email generation UI +- [ ] Review/edit/approve workflow +- [ ] Match suggestion algorithm +- [ ] Match review UI +- [ ] Introduction email generation + +**Deliverables:** +- AI email generation working +- Match suggestions with explanations +- Full AI workflow complete + +--- + +### Phase 4: Polish & Compliance (Weeks 13-16) + +**Week 13-14: Compliance** +- [ ] Data export feature (GDPR) +- [ ] Account deletion flow +- [ ] Audit logging +- [ ] Security hardening +- [ ] Biometric authentication + +**Week 15-16: Polish** +- [ ] UI refinements +- [ ] Animation and transitions +- [ ] Edge case handling +- [ ] Performance optimization +- [ ] Comprehensive testing +- [ ] App Store assets +- [ ] TestFlight beta + +**Deliverables:** +- Production-ready application +- App Store submission ready +- Documentation complete + +--- + +## 6. File Structure + +``` +NetworkApp/ +├── App/ +│ ├── NetworkApp.swift +│ └── AppDelegate.swift +│ +├── Core/ +│ ├── Models/ +│ │ ├── Client.swift +│ │ ├── Match.swift +│ │ ├── Communication.swift +│ │ ├── Event.swift +│ │ └── User.swift +│ │ +│ ├── Services/ +│ │ ├── FirebaseService.swift +│ │ ├── AuthService.swift +│ │ ├── AIService.swift +│ │ └── NotificationService.swift +│ │ +│ ├── Repositories/ +│ │ ├── ClientRepository.swift +│ │ ├── MatchRepository.swift +│ │ └── EventRepository.swift +│ │ +│ └── Utilities/ +│ ├── Extensions/ +│ ├── Helpers/ +│ └── Constants.swift +│ +├── Features/ +│ ├── Authentication/ +│ │ ├── Views/ +│ │ └── ViewModels/ +│ │ +│ ├── Dashboard/ +│ │ ├── Views/ +│ │ └── ViewModels/ +│ │ +│ ├── Clients/ +│ │ ├── Views/ +│ │ │ ├── ClientListView.swift +│ │ │ ├── ClientDetailView.swift +│ │ │ └── ClientEditView.swift +│ │ └── ViewModels/ +│ │ └── ClientsViewModel.swift +│ │ +│ ├── Matches/ +│ │ ├── Views/ +│ │ └── ViewModels/ +│ │ +│ ├── Communications/ +│ │ ├── Views/ +│ │ └── ViewModels/ +│ │ +│ └── Settings/ +│ ├── Views/ +│ └── ViewModels/ +│ +├── Resources/ +│ ├── Assets.xcassets +│ ├── Localizable.strings +│ └── Info.plist +│ +└── Tests/ + ├── UnitTests/ + └── UITests/ +``` + +--- + +## 7. Testing Strategy + +### Unit Tests +- Model encoding/decoding +- Repository logic +- AI prompt building +- Date/event calculations + +### Integration Tests +- Firebase read/write +- AI service calls +- Authentication flows + +### UI Tests +- Critical user journeys +- Client CRUD operations +- AI generation flow + +### Manual Testing +- Various client data scenarios +- Offline/online transitions +- Edge cases + +--- + +## 8. Launch Checklist + +- [ ] All features tested on device +- [ ] Performance profiled (Instruments) +- [ ] Memory leaks checked +- [ ] Crash-free for 48+ hours +- [ ] App Store screenshots (6.5" & 5.5") +- [ ] App Store description +- [ ] Privacy policy URL +- [ ] Support URL +- [ ] App Review notes +- [ ] TestFlight beta feedback addressed +- [ ] Analytics events verified +- [ ] Crashlytics configured diff --git a/projects/network-app/competitors.md b/projects/network-app/competitors.md new file mode 100644 index 0000000..9bb0976 --- /dev/null +++ b/projects/network-app/competitors.md @@ -0,0 +1,298 @@ +# The Network App - Competitive Analysis + +**Date:** 2025-06-26 +**Purpose:** Understand market landscape and identify differentiation opportunities + +--- + +## Executive Summary + +The wealth management CRM space is dominated by enterprise solutions (Salesforce, Wealthbox) designed for transaction tracking. There's a clear gap for **mobile-first, relationship-focused CRMs** with AI-powered networking features. Our closest competitors in the "relationship intelligence" space are Affinity (VC-focused) and personal CRMs like Clay. + +--- + +## 1. Wealth Management CRMs + +### Wealthbox +**Website:** wealthbox.com +**Focus:** #1 ranked CRM for financial advisors on G2 + +**Strengths:** +- Purpose-built for financial advisors +- Clean, modern interface +- Email sync and workflow automation +- Strong integrations with financial tools +- Reasonable pricing + +**Weaknesses:** +- Desktop-first design +- Limited AI capabilities +- No client networking/matching features +- Traditional CRM approach (transaction-focused) + +**Pricing:** $59-89/user/month + +**Relevance:** Primary industry competitor for advisor CRMs + +--- + +### Salesforce Financial Services Cloud +**Website:** salesforce.com/financial-services +**Focus:** Enterprise wealth management platform + +**Strengths:** +- Comprehensive feature set +- AI-driven insights (Einstein) +- Enterprise-grade compliance +- Extensive integrations +- Market leader credibility + +**Weaknesses:** +- Complex, steep learning curve +- Expensive for small practices +- Overkill for relationship management +- Not mobile-native + +**Pricing:** $150-300+/user/month + +**Relevance:** Enterprise comparison; shows where market is heading + +--- + +### Redtail CRM +**Website:** redtailtechnology.com +**Focus:** CRM for financial service providers + +**Strengths:** +- Industry-specific features +- Good compliance tools +- Established player +- Reasonable pricing + +**Weaknesses:** +- Dated interface +- Limited mobile experience +- No AI features +- Basic relationship tracking + +**Pricing:** $99/user/month (flat database fee) + +**Relevance:** Shows what's standard in the industry + +--- + +### Practifi +**Website:** practifi.com +**Focus:** Financial advisor CRM on Salesforce + +**Strengths:** +- Built on Salesforce infrastructure +- AI-powered automation +- Pre-built advisor workflows +- Growth pipeline tracking + +**Weaknesses:** +- Salesforce complexity inherited +- Enterprise-focused pricing +- Desktop-centric + +**Pricing:** Custom (enterprise) + +**Relevance:** Shows AI direction in advisor CRMs + +--- + +## 2. Relationship Intelligence Platforms + +### Affinity +**Website:** affinity.co +**Focus:** Relationship intelligence for private capital (VC/PE) + +**Strengths:** +- **True relationship intelligence** - maps network strength +- **AI-powered warm intros** - finds best connection paths +- Automatic data capture from email/calendar +- Beautiful, modern interface +- No manual data entry required + +**Weaknesses:** +- Designed for VC/PE, not wealth management +- Enterprise pricing +- Not mobile-first +- No client-to-client matching (focuses on deal sourcing) + +**Pricing:** Custom (typically $100+/user/month) + +**Relevance:** ⭐ MOST RELEVANT - Closest to our vision but different market + +--- + +### Clay (Personal CRM) +**Website:** clay.earth +**Focus:** Personal relationship management + +**Strengths:** +- **Birthday/event reminders** - core feature +- Contact enrichment from public data +- Clean, simple interface +- Mobile-friendly + +**Weaknesses:** +- Personal use, not business-focused +- No AI-generated communications +- No client networking features +- Limited compliance/security + +**Pricing:** Free - $20/month + +**Relevance:** Shows personal touch features users want + +--- + +### Mogul +**Focus:** Personal CRM for networking + +**Strengths:** +- Remembers important contact details +- Interaction tracking +- Goal setting per contact + +**Weaknesses:** +- Personal networking focus +- No business/compliance features +- Limited AI + +**Relevance:** Validates personal touch feature demand + +--- + +## 3. AI-Powered Wealth Management Tools + +### Nevis (Sequoia-backed) +**Website:** neviswealth.com +**Focus:** AI platform for wealth management operations + +**Strengths:** +- First unified AI platform for wealth management +- End-to-end workflow support +- Client service management +- Meeting follow-up automation +- Strong VC backing (Sequoia) + +**Weaknesses:** +- Platform/infrastructure play, not standalone app +- Operational focus vs relationship focus +- Enterprise target market + +**Relevance:** Shows AI direction in wealth tech; potential future competitor + +--- + +### Couplr AI +**Website:** couplr.ai +**Focus:** Psychology-based advisor-client matching + +**Strengths:** +- **Unique matching approach** - psychology-based +- Designed for insurance/wealth management +- Focuses on relationship quality + +**Weaknesses:** +- Lead gen focus, not client management +- New/unproven +- Narrow feature set + +**Relevance:** Validates AI matching concept in wealth management + +--- + +### Nextvestment +**Website:** nextvestment.com +**Focus:** AI client engagement for wealth management + +**Strengths:** +- AI-native design +- Client question analysis +- Engagement optimization + +**Weaknesses:** +- Platform play, not standalone +- Limited information available + +**Relevance:** Shows AI engagement direction + +--- + +## 4. Competitive Positioning Matrix + +| Feature | Network App | Wealthbox | Affinity | Clay | Nevis | +|---------|-------------|-----------|----------|------|-------| +| Mobile-First | ✅ | ❌ | ❌ | ✅ | ❌ | +| Relationship Focus | ✅ | ❌ | ✅ | ✅ | ❌ | +| AI Communications | ✅ | ❌ | ❌ | ❌ | ✅ | +| Client Networking | ✅ | ❌ | ❌ | ❌ | ❌ | +| Birthday Tracking | ✅ | ✅ | ❌ | ✅ | ❌ | +| Compliance Built-in | ✅ | ✅ | ❌ | ❌ | ✅ | +| Wealth Management Focus | ✅ | ✅ | ❌ | ❌ | ✅ | +| Affordable (<$100/mo) | ✅ | ✅ | ❌ | ✅ | ❌ | + +--- + +## 5. Key Insights & Opportunities + +### Market Gaps We Can Fill + +1. **No mobile-first wealth CRM** - All major players are desktop-first +2. **No client-to-client matching** - Affinity does deal sourcing, not client networking +3. **AI + Compliance gap** - Personal CRMs lack compliance; enterprise CRMs lack AI personality +4. **Personal touch automation** - Birthday tracking exists but AI personalization doesn't + +### Differentiation Strategy + +**Position as:** "The personal CRM for wealth advisors who believe relationships matter" + +**Key differentiators:** +1. **Mobile-native** for advisors always on the go +2. **Client networking** - unique feature no competitor offers +3. **AI that feels human** - not templates, real personalization +4. **Right-sized compliance** - not enterprise overkill + +### Competitive Risks + +1. **Wealthbox adding AI** - They have market position; AI is easy to add +2. **Affinity expanding** - Could enter wealth management vertical +3. **Nevis/enterprise AI** - Could trickle down to smaller practices +4. **Feature commoditization** - Birthday reminders becoming table stakes + +--- + +## 6. Pricing Benchmarks + +| Competitor | Price/User/Month | Target | +|------------|------------------|--------| +| Clay | $0-20 | Personal | +| Wealthbox | $59-89 | SMB Advisors | +| Redtail | $99 (flat) | Advisors | +| Affinity | $100-150+ | Enterprise | +| Salesforce | $150-300+ | Enterprise | + +**Recommended positioning:** $49-79/month (below Wealthbox, premium to personal CRMs) + +--- + +## 7. Recommended Competitive Response + +### Build What They Don't Have +- Client-to-client networking with AI explanations +- Truly mobile-native experience +- AI communications that learn advisor's voice + +### Don't Compete On +- Enterprise features (compliance complexity) +- Portfolio management integration +- Team collaboration tools + +### Watch Closely +- **Affinity** - if they enter wealth management +- **Nevis** - if they offer standalone product +- **Wealthbox** - AI feature announcements diff --git a/projects/network-app/feasibility.md b/projects/network-app/feasibility.md new file mode 100644 index 0000000..6570837 --- /dev/null +++ b/projects/network-app/feasibility.md @@ -0,0 +1,460 @@ +# The Network App - Technical Feasibility Assessment + +**Date:** 2025-06-26 +**Purpose:** Evaluate technical approach, architecture, and development requirements + +--- + +## Executive Summary + +The Network App is **technically feasible** with the proposed stack (Swift/SwiftUI, Firebase, Claude AI). The project is moderate complexity with well-understood patterns. Main challenges are AI integration quality and compliance implementation. Estimated timeline: **12-16 weeks for MVP**. + +--- + +## 1. Swift/SwiftUI Architecture Recommendations + +### Platform Choice: Native iOS ✅ + +**Why Native:** +- Best performance for data-heavy CRM +- Full access to iOS features (biometrics, contacts, notifications) +- SwiftUI is mature and production-ready (iOS 16+) +- Offline-first capabilities easier to implement +- Better for sensitive data handling + +**Why NOT Cross-Platform:** +- Single platform requirement (iOS first) +- Native gives compliance advantages +- No need to compromise on UX + +### Recommended Architecture: MVVM + Clean Architecture + +``` +┌─────────────────────────────────────────────────────┐ +│ Presentation │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ +│ │ Views │ │ ViewModels │ │ Router │ │ +│ │ (SwiftUI) │ │ (ObsObj) │ │ (Coordinat) │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +├─────────────────────────────────────────────────────┤ +│ Domain │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ +│ │ Use Cases │ │ Entities │ │ Repositories│ │ +│ │ │ │ (Models) │ │ (Protocols) │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +├─────────────────────────────────────────────────────┤ +│ Data │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ +│ │ Firebase │ │ Claude │ │ Local │ │ +│ │ Service │ │ Service │ │ Cache │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +└─────────────────────────────────────────────────────┘ +``` + +### Key SwiftUI Patterns + +1. **State Management:** Combine + ObservableObject +2. **Navigation:** NavigationStack (iOS 16+) +3. **Data Flow:** Single source of truth in ViewModels +4. **Dependency Injection:** Protocol-based for testability + +### iOS Version Target + +- **Minimum:** iOS 16.0 +- **Reason:** NavigationStack, modern SwiftUI features +- **Coverage:** ~95% of active iPhones + +--- + +## 2. Firebase Structure for Client Data + +### Why Firebase ✅ + +**Advantages:** +- Real-time sync built-in +- Offline persistence automatic +- Authentication included +- Cloud Functions for backend logic +- Good security rules system +- Scales automatically + +**Considerations:** +- NoSQL requires careful data modeling +- Compliance certifications available (SOC 2, ISO 27001) +- Data residency options exist + +### Firestore Data Model + +``` +users/ + {userId}/ + profile: { name, email, settings } + subscription: { tier, expires } + +clients/ + {clientId}/ + userId: string (owner reference) + basic: { + firstName, lastName, email, phone + address: { street, city, state, zip } + } + professional: { + company, role, industry + } + personal: { + birthday, anniversary + interests: [] + family: { spouse, children: [] } + preferences: {} + } + notes: [] // Array of timestamped notes + tags: [] + matchPreferences: { + excludeFromMatching: boolean + excludeClientIds: [] + } + metadata: { + createdAt, updatedAt, lastContactedAt + } + +communications/ + {communicationId}/ + userId: string + clientId: string + type: "email" | "newsletter" | "birthday" + status: "draft" | "approved" | "sent" + aiGenerated: { + content: string + generatedAt: timestamp + promptUsed: string + } + finalContent: string + sentAt: timestamp + +matches/ + {matchId}/ + userId: string + client1Id: string + client2Id: string + aiReasoning: string + score: number + status: "suggested" | "approved" | "introduced" | "rejected" + introducedAt: timestamp + outcome: string + +events/ + {eventId}/ + userId: string + clientId: string + type: "birthday" | "anniversary" | "followup" | "custom" + date: timestamp + recurring: boolean + reminderDays: number + lastTriggered: timestamp +``` + +### Security Rules Strategy + +```javascript +// Firestore Security Rules (simplified) +rules_version = '2'; +service cloud.firestore { + match /databases/{database}/documents { + // Users can only access their own data + match /clients/{clientId} { + allow read, write: if request.auth != null + && resource.data.userId == request.auth.uid; + } + + // Audit log - write only + match /auditLog/{logId} { + allow create: if request.auth != null; + allow read: if false; // Only via admin SDK + } + } +} +``` + +### Offline Strategy + +1. **Firestore Persistence:** Enable by default +2. **Optimistic Updates:** UI updates immediately +3. **Conflict Resolution:** Last-write-wins for most fields +4. **Sync Indicator:** Show pending changes to user + +--- + +## 3. Claude AI Integration Approach + +### API Integration Architecture + +``` +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ iOS App │────▶│ Firebase │────▶│ Claude API │ +│ │ │ Functions │ │ │ +└─────────────┘ └─────────────┘ └─────────────┘ + │ + API Key secured + in Cloud Functions +``` + +**Why Cloud Functions Proxy:** +- API key never on device +- Rate limiting and cost control +- Audit logging for compliance +- Can cache/optimize requests + +### Claude Use Cases & Prompts + +#### 1. Personalized Email Generation + +``` +System: You are a professional wealth advisor writing to a valued client. +Maintain a warm but professional tone. Incorporate personal details naturally. + +Context: +- Advisor name: {advisorName} +- Client: {clientName} +- Their interests: {interests} +- Recent notes: {recentNotes} +- Purpose: {emailPurpose} + +Generate a personalized email that feels genuine, not templated. +``` + +#### 2. Client Match Suggestions + +``` +System: You are analyzing client profiles to identify valuable networking +opportunities. Only suggest matches that would genuinely benefit both parties. + +Client A: {profileA} +Client B: {profileB} + +Evaluate potential match: +1. What shared interests or complementary needs exist? +2. How might they benefit from knowing each other? +3. Confidence score (1-10) with reasoning +4. Suggested introduction approach + +Output as JSON: { score, reasoning, introductionSuggestion } +``` + +#### 3. Birthday/Event Messages + +``` +System: Generate a thoughtful birthday message from a wealth advisor to +their client. Should feel personal, not generic. + +Client: {clientName} +Relationship tenure: {yearsSinceClient} +Interests: {interests} +Last interaction: {lastNote} + +Keep it brief (2-3 sentences) and sincere. +``` + +### Cost Estimation + +| Use Case | Tokens/Request | Requests/Month | Monthly Cost | +|----------|----------------|----------------|--------------| +| Email generation | ~800 | 200 | ~$2.40 | +| Match analysis | ~1200 | 100 | ~$1.80 | +| Birthday messages | ~300 | 50 | ~$0.45 | +| **Total estimated** | | | **~$5-10/user** | + +*Based on Claude 3.5 Sonnet pricing ($3/M input, $15/M output)* + +### Error Handling + +1. **Timeout:** 30-second limit, show "AI thinking..." +2. **Failure:** Graceful fallback to templates +3. **Rate Limits:** Queue and retry with exponential backoff +4. **Content Filtering:** Review AI output before displaying + +--- + +## 4. Security & Compliance Considerations + +### GDPR Compliance + +| Requirement | Implementation | +|-------------|----------------| +| Right to Access | Export all client data as JSON/PDF | +| Right to Deletion | Hard delete with cascade (Firebase Admin SDK) | +| Data Portability | Standard export format | +| Consent Tracking | Store consent timestamps per client | +| Data Minimization | Only collect necessary fields | + +### HIPAA Considerations + +If storing health-related notes (e.g., "client mentioned health concerns"): + +1. **BAA with Firebase:** Google offers BAA for Cloud/Firebase +2. **Encryption:** AES-256 at rest (Firebase default) +3. **Access Logging:** Audit trail for all data access +4. **Employee Training:** Document handling procedures + +### Encryption Strategy + +| Layer | Method | +|-------|--------| +| In Transit | TLS 1.3 (Firebase default) | +| At Rest | AES-256 (Firebase default) | +| Sensitive Fields | Additional client-side encryption (optional) | +| Local Cache | iOS Keychain for sensitive data | + +### Authentication Flow + +``` +┌──────────────┐ ┌─────────────┐ ┌──────────────┐ +│ App Launch │───▶│ Biometric │───▶│ Firebase │ +│ │ │ (FaceID) │ │ Auth │ +└──────────────┘ └─────────────┘ └──────────────┘ + │ + Fallback to PIN +``` + +### Audit Logging + +Log these events to a write-only collection: + +- User login/logout +- Client record created/modified/deleted +- AI generation requested +- Export performed +- Data deletion requested + +--- + +## 5. Complexity Assessment + +### Feature Complexity Breakdown + +| Feature | Complexity | Effort (days) | Risk | +|---------|------------|---------------|------| +| Client CRUD | Low | 5 | Low | +| Search & Filters | Medium | 4 | Low | +| Firebase Auth | Low | 2 | Low | +| Client Profile UI | Medium | 6 | Low | +| AI Email Generation | Medium | 5 | Medium | +| AI Matching | High | 8 | Medium | +| Birthday Tracking | Low | 3 | Low | +| Push Notifications | Medium | 3 | Low | +| Offline Support | Medium | 4 | Medium | +| Compliance Features | Medium | 5 | Medium | +| Settings & Preferences | Low | 2 | Low | + +### Technical Risks + +| Risk | Probability | Impact | Mitigation | +|------|-------------|--------|------------| +| AI quality inconsistent | Medium | High | Prompt iteration, human review | +| Firebase scaling costs | Low | Medium | Monitor usage, set alerts | +| iOS approval delays | Low | Medium | Follow guidelines strictly | +| Offline sync conflicts | Medium | Medium | Clear conflict resolution UX | + +--- + +## 6. Timeline Estimate + +### Phase 1: Foundation (Weeks 1-4) +- Project setup, architecture +- Firebase configuration +- Authentication flow +- Basic client CRUD +- **Deliverable:** App shell with auth and data persistence + +### Phase 2: Core Features (Weeks 5-8) +- Client profile UI (full) +- Search and filtering +- Notes and tags +- Event/birthday tracking +- Push notifications +- **Deliverable:** Functional CRM without AI + +### Phase 3: AI Integration (Weeks 9-12) +- Cloud Functions setup +- AI email generation +- AI matching algorithm +- Review/approval workflows +- **Deliverable:** Full AI features working + +### Phase 4: Polish & Compliance (Weeks 13-16) +- Compliance features (export, delete) +- Audit logging +- UI polish and edge cases +- Testing and bug fixes +- App Store preparation +- **Deliverable:** Production-ready app + +### Total Estimate: 12-16 weeks + +**With buffer for unknowns:** 16-20 weeks + +--- + +## 7. Technology Recommendations + +### Recommended Stack + +| Component | Technology | Rationale | +|-----------|------------|-----------| +| Language | Swift 5.9+ | Modern, safe, performant | +| UI | SwiftUI | Declarative, less code | +| Architecture | MVVM | SwiftUI natural fit | +| Backend | Firebase | Real-time, offline, scales | +| Database | Firestore | Flexible schema, good sync | +| Auth | Firebase Auth | Turnkey, secure | +| Functions | Cloud Functions | Secure AI proxy | +| AI | Claude API | Quality, context length | +| Analytics | Firebase Analytics | Integrated, free | +| Crash Reporting | Firebase Crashlytics | Integrated, free | + +### Development Tools + +- **Xcode 15+** - Latest SwiftUI features +- **Swift Package Manager** - Dependency management +- **SwiftLint** - Code quality +- **Firebase Emulator** - Local development + +### Third-Party Libraries + +Keep minimal: +- Firebase iOS SDK +- (Optional) Kingfisher for image caching +- (Optional) SwiftUI introspect for edge cases + +--- + +## 8. Conclusion + +### Feasibility: ✅ HIGH + +The project is well within established technology patterns. No experimental tech required. + +### Key Success Factors + +1. **AI Prompt Engineering** - Invest time in quality prompts +2. **UX for AI Review** - Make human approval frictionless +3. **Offline-First** - Critical for mobile advisor use +4. **Compliance Documentation** - Start early, not late + +### Recommended Next Steps + +1. Finalize scope and budget +2. Set up Firebase project +3. Create Figma designs for key screens +4. Begin Phase 1 development + +### Cost Summary + +| Item | One-Time | Monthly | +|------|----------|---------| +| Development (16 wks) | $15-40K* | - | +| Firebase (100 users) | - | $25-50 | +| Claude API (per user) | - | $5-10 | +| Apple Developer | $99/year | - | +| **Total Year 1** | ~$15-40K | ~$75-150 | + +*Development cost varies significantly based on who builds it diff --git a/projects/network-app/requirements.md b/projects/network-app/requirements.md new file mode 100644 index 0000000..4d51e74 --- /dev/null +++ b/projects/network-app/requirements.md @@ -0,0 +1,177 @@ +# The Network App - Requirements Specification + +**Version:** 1.0 +**Date:** 2025-06-26 +**Client:** David DePoyster / NWM + +--- + +## 1. Product Vision + +An iPhone app for NWM wealth management firm that serves as an AI-powered CRM for managing relationships with high-net-worth clients. The app prioritizes relationship intelligence over traditional transaction tracking. + +--- + +## 2. Core Features + +### 2.1 Client Profiles + +**Purpose:** Store comprehensive information about each client beyond basic contact details. + +**Required Fields:** +- Basic contact information (name, phone, email, address) +- Professional information (company, role, industry) +- Personal interests and hobbies +- Family details (spouse name, children, pets) +- Important dates (birthday, anniversary, client since) +- Communication preferences +- Relationship notes and history +- Custom tags/categories + +**Nice-to-Have:** +- Photo/avatar +- Social media links +- Net worth tier (for service level segmentation) +- Referral source tracking + +### 2.2 Personalized Communications + +**Purpose:** AI-generated emails and newsletters that feel authentic and personal. + +**Functionality:** +- Generate personalized email drafts based on client profile +- Create customized newsletter content segments +- Suggest talking points before meetings +- Draft birthday/anniversary messages +- Write introduction emails when connecting clients + +**AI Requirements:** +- Must feel human-written, not templated +- Incorporate specific details from client profile +- Match advisor's communication style/tone +- Support review/edit before sending + +### 2.3 Network Matching + +**Purpose:** Identify clients who would benefit from knowing each other. + +**Matching Criteria:** +- Shared professional interests +- Complementary business needs (e.g., investor + entrepreneur) +- Common hobbies or passions +- Geographic proximity +- Similar life stages or family situations + +**Functionality:** +- AI-suggested matches with explanation +- Advisor approval workflow before any introduction +- Track successful introductions and outcomes +- "Do not match" preferences + +### 2.4 Event Tracking & Automation + +**Purpose:** Never miss important dates or opportunities for meaningful touches. + +**Tracked Events:** +- Birthdays +- Anniversaries (wedding, client relationship) +- Major life events (children graduating, retirement, etc.) +- Follow-up reminders from meetings + +**Automation:** +- Push notification reminders +- Pre-drafted messages for events +- Calendar integration (optional) +- Bulk actions for seasonal greetings + +### 2.5 Security & Compliance + +**Purpose:** Meet regulatory requirements for financial services. + +**Requirements:** +- GDPR compliance (data portability, right to deletion) +- HIPAA compliance (for any health-related notes) +- End-to-end encryption for sensitive data +- Secure authentication (biometric + PIN) +- Audit logging for compliance reviews +- Data residency options (US/EU) +- Role-based access (if multi-user) + +--- + +## 3. User Roles + +### 3.1 Primary User: Wealth Advisor +- Full access to all client data +- Can create, edit, delete clients +- Approves AI suggestions +- Sends communications + +### 3.2 Future Consideration: Admin/Team Lead +- Manage multiple advisors +- View aggregate analytics +- Configure compliance settings + +--- + +## 4. Non-Functional Requirements + +### 4.1 Performance +- App launch: < 2 seconds +- Search results: < 500ms +- AI generation: < 5 seconds + +### 4.2 Reliability +- 99.9% uptime for core features +- Offline access to client profiles +- Data sync on reconnection + +### 4.3 Scalability +- Initial: 100+ clients per advisor +- Target: 500+ clients per advisor +- Future: Multi-advisor organizations + +### 4.4 Platform +- iOS 16+ (iPhone) +- iPad support: Nice-to-have +- Android: Future consideration + +--- + +## 5. Technical Constraints + +- **Backend:** Firebase preferred (existing familiarity) +- **AI Provider:** Claude API (Anthropic) +- **Frontend:** Swift/SwiftUI (native iOS) +- **Budget:** TBD (affects feature prioritization) + +--- + +## 6. Success Metrics + +- Time saved per client interaction +- Quality of AI-generated content (approval rate) +- Successful client introductions made +- User engagement (daily active usage) +- Client satisfaction improvements + +--- + +## 7. Out of Scope (v1) + +- Portfolio management integration +- Financial data/account information +- Document storage +- Video calling +- Web application +- Android application + +--- + +## 8. Open Questions + +1. Budget range for development? +2. Timeline expectations? +3. Existing client data to import? Format? +4. Specific compliance certifications needed? +5. Multi-user from day one or single advisor MVP?