BusinessCard/ROADMAP.md

138 lines
4.8 KiB
Markdown

# BusinessCard Roadmap
This document tracks planned features and their implementation status.
## ✅ Completed Features
### High Priority (Core User Value)
- [x] **Dynamic contact fields system** - Unlimited fields with custom ordering
- New `ContactField` SwiftData model for flexible field storage
- `ContactFieldType` struct with 30+ field types across 8 categories
- Drag-to-reorder support with haptic feedback
- Sheet-based field editor with type-specific keyboards and placeholders
- Multiple fields of the same type allowed (e.g., multiple emails)
- [x] **Custom social icons** - Brand-colored icons from asset catalog
- Custom `.symbolset` assets for all major platforms
- LinkedIn, X/Twitter, Instagram, Facebook, TikTok, Threads
- Bluesky, Mastodon, Reddit, Twitch, YouTube, Discord
- GitHub, Telegram, Slack, Matrix, Patreon, Ko-fi
- Proper `Image()` vs `Image(systemName:)` handling via `iconImage()` helper
- [x] **Extended name fields** - Prefix, maiden name, pronouns
- Expandable name section in editor
- Prefix (Dr., Mr., Mrs., etc.)
- Maiden name with parentheses formatting in display name
- Preferred name with quotes formatting
- Pronouns displayed next to name on card
- [x] **Accreditations as tags** - Tag bubble UI with inline editing
- Horizontal ScrollView of tag chips
- Tap to edit, check to save, x to delete
- Comma-separated storage for vCard compatibility
- [x] **Clickable contact fields** - Deep linking to apps and actions
- Email → mailto:
- Phone → tel:
- Social links → app deep links or web fallback
- Address → Maps
- Website → Safari
- [x] **More card fields** - Social media links, custom URLs, pronouns, bio
- Added: pronouns, bio, LinkedIn, Twitter/X, Instagram, Facebook, TikTok, GitHub
- Added: 2 custom link slots (title + URL)
- vCard payload includes social profiles
- [x] **Profile photo support** - PhotosPicker integration
- Added PhotosPicker to CardEditorView
- Photos stored as Data with `@Attribute(.externalStorage)`
- Photos display on cards, in editor preview, and contact avatars
- [x] **Contact notes/annotations** - Add notes, tags, follow-up reminders
- Added: notes field (free text)
- Added: tags (comma-separated, displayed as chips)
- Added: follow-up date with overdue indicators
- Added: "where you met" field
- Added: email and phone for received contacts
- Full ContactDetailView for editing annotations
- [x] **Save received cards** - Scan a QR to add someone else's card
- Added QRScannerView with camera integration
- Parses vCard data from scanned QR codes
- Creates contacts marked as `isReceivedCard`
- "Scan Card" button in Contacts toolbar
---
## 🔲 Planned Features
### Medium Priority (Differentiation)
- [ ] **Email signature export** - Generate HTML signature
- Generate professional HTML email signature from card data
- Copy to clipboard or share
- Multiple signature styles/templates
- [ ] **Card analytics** - View/scan counts
- Would require backend infrastructure
- Track when cards are viewed/scanned
- Show analytics dashboard
- [ ] **Virtual meeting background** - Generate image with QR
- Create background image with card info + QR code
- Export for Zoom, Teams, etc.
- Multiple background styles
### Lower Priority (Advanced)
- [ ] **Real NFC** - Write card to NFC tags
- Requires NFC entitlements
- Requires physical NFC cards/tags
- Write vCard data to NFC
- [ ] **Apple Wallet** - Add card to Wallet
- Requires PKPass generation
- May need backend for signing passes
- Display QR in Wallet app
- [ ] **Team features** - Shared team cards
- Requires user accounts
- Requires backend infrastructure
- Team branding, shared templates
---
## 🔧 Technical Improvements
### Completed
- [x] **SwiftData persistence** with CloudKit sync
- [x] **Bedrock integration** - Design system, QR code generator
- [x] **iOS-Watch sync** via App Groups
- [x] **Unit tests** for models, stores, and new features
- [x] **Fixed data persistence** - Removed aggressive store deletion on startup
- [x] **Custom symbol assets** - Brand icons in asset catalog with proper rendering
- [x] **Drag-and-drop reordering** - Using `draggable` and `dropDestination` modifiers
### Planned
- [ ] **WidgetKit extension** - Real home screen widgets
- [ ] **Spotlight indexing** - Search cards from iOS search
- [ ] **Siri shortcuts** - "Share my work card"
- [ ] **App Intents** - iOS 17+ action button support
- [ ] **Migrate legacy properties** - Move all cards to new ContactField array
---
## 📝 Notes
- Features marked with 🔲 are planned but not yet implemented
- Features requiring backend are deferred until infrastructure is available
- Priority may shift based on user feedback
- Legacy contact properties (email, phone, linkedIn, etc.) maintained for backward compatibility
---
*Last updated: January 8, 2026*