Maximize your credit card rewards with smart recommendations.
An iOS app that helps you choose the best credit card for every purchase, so you never miss out on rewards.
| Feature | Description |
|---|---|
| Smart Recommendations | Get the best card suggestion based on merchant or category |
| 60+ Credit Cards | Comprehensive database of major US credit cards with accurate reward data |
| Reward Tracking | Track fixed, rotating, and selectable category bonuses |
| Spending Analytics | Visualize spending patterns with interactive charts |
| Receipt Scanning | OCR-powered receipt scanning for quick expense logging |
| Sign-Up Bonus Tracker | Never miss a sign-up bonus deadline |
| Home Screen Widget | Quick access to recommendations without opening the app |
| Privacy First | User data synced via Firebase, card data from official sources |
60+ cards from major US issuers:
- Chase - Sapphire Preferred/Reserve, Freedom Flex/Unlimited, Ink Business, Amazon Prime, United, Southwest, Marriott
- American Express - Gold, Platinum, Blue Cash Preferred/Everyday, Delta SkyMiles, Hilton Honors
- Citi - Double Cash, Custom Cash, Premier, Strata Premier, Costco Anywhere, AAdvantage
- Capital One - Savor/SavorOne, Venture X/Venture, Quicksilver
- Discover - it Cash Back, Chrome, Miles, Student
- Bank of America - Customized Cash, Premium Rewards, Travel Rewards, Alaska Airlines
- US Bank - Cash+, Altitude Go/Connect/Reserve
- Wells Fargo - Active Cash, Autograph/Journey
- Others - Apple Card, Bilt, PayPal, Venmo, Target RedCard, Walmart
| Type | Example | How It Works |
|---|---|---|
| Fixed Categories | Amex Gold 4x Dining | Always earns bonus rate |
| Rotating Categories | Chase Freedom Flex 5% | Quarterly bonuses, activation required |
| Selectable Categories | BoA Customized Cash 3% | Choose your own bonus category |
Try it out: Join TestFlight Beta (coming soon)
- iOS 17.0+
- Xcode 15+
- Swift 5.9+
# Clone the repository
git clone https://github.com/Rich627/SmartCard.git
# Open in Xcode
cd SmartCard
open SmartCard.xcodeproj
# Build and run (Cmd + R)┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Enter Merchant │ ──▶ │ Category Mapping │ ──▶ │ Recommendation │
│ or Category │ │ Database │ │ Engine │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Best Card + │
│ Reward Amount │
└─────────────────┘
The RecommendationEngine evaluates all your cards considering:
- Fixed category bonus multipliers
- Current quarter's rotating categories (activation status)
- User-selected bonus categories
- Spending caps and remaining limits
- Point/mile valuations
SmartCard/
├── App/ # App entry point
├── Models/ # Data models
│ ├── CreditCard.swift # Card definitions & reward configs
│ ├── Spending.swift # Transaction records
│ ├── Merchant.swift # Merchant → category mapping
│ └── SpendingCategory.swift
├── Views/ # SwiftUI views (MVVM)
│ ├── Home/ # Dashboard
│ ├── Cards/ # Card management
│ ├── Spending/ # Expense tracking & charts
│ ├── Recommend/ # Card recommendations
│ └── Settings/ # App settings
├── ViewModels/ # State management
├── Services/ # Business logic
│ ├── FirebaseService.swift # Firestore data sync
│ ├── RecommendationEngine.swift
│ ├── OCRService.swift
│ └── NotificationService.swift
└── Utils/ # Extensions & helpers
Functions/ # Backend services
├── scraper/ # Credit card data scraper
│ ├── index.js # Main scraper entry
│ ├── scrapers/ # Per-issuer scrapers
│ └── upload-to-firestore.js
└── index.js # Firebase Cloud Functions
| Category | Technology |
|---|---|
| UI | SwiftUI |
| Architecture | MVVM |
| Reactive | Combine |
| Widget | WidgetKit |
| OCR | Vision Framework |
| Backend | Firebase Firestore |
| Auth | Firebase Auth (optional) |
| Scraper | Node.js + Puppeteer |
# Run all tests (Cmd + U in Xcode)
# Or via command line
xcodebuild test -scheme SmartCard -destination 'platform=iOS Simulator,name=iPhone 15'Test Coverage:
RecommendationEngineTests- Card recommendation logicMerchantDatabaseTests- Merchant to category mappingModelTests- Data model encoding/decodingSearchHistoryManagerTests- Search history functionality
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is dual-licensed:
- Open Source License: AGPL-3.0 - Free for personal and non-commercial use
- Commercial License: Available for purchase - For commercial/proprietary use
If you want to use SmartCard in a commercial product without open-sourcing your code, please contact us for commercial licensing options.
- Report Bug
- Request Feature
- Star this repo if you find it useful!
- Credit card data sourced from public issuer information
- Icons from SF Symbols
Made with love for credit card enthusiasts



