Skip to content

tahseen137/rewardly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

213 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Rewardly πŸ‡¨πŸ‡¦

Find the best card for every purchase.

Rewardly helps Canadians earn more rewards with smart recommendations for 410+ credit cards. Built with React Native and Expo for iOS, Android, and Web.


🌟 Features

Core

  • 🎯 Smart Recommendations - Enter any store and instantly see which card earns the most rewards
  • πŸ’³ Canadian Card Database - 410+ cards (TD, RBC, BMO, CIBC, Scotiabank, Amex, and more)
  • πŸ† Multi-Currency Rewards - Track cashback, points, airline miles, and hotel points
  • ✨ Card Discovery - Get suggestions for better cards based on your spending patterns
  • 🌐 Bilingual - Full support for English and French
  • πŸ”’ Privacy-First - All data stored locally on your device

Advanced (Feb 2026)

  • πŸ€– Sage AI - AI-powered chat assistant for rewards questions (Claude Haiku)
  • πŸ“Š Wallet Optimizer - Find gaps in your card portfolio and get coverage recommendations
  • πŸ“„ CSV Statement Import - Upload bank statements (TD, RBC, BMO, CIBC, Scotiabank, Tangerine, Simplii, EQ Bank)
  • πŸ… Achievements - 23 achievements across 6 ranks (Copper β†’ Diamond) with gamified progression
  • πŸ“ˆ 5/24 Tracker - Track credit card applications for churning (Chase 5/24 rule compatibility)
  • πŸ’° Signup ROI Calculator - Calculate welcome bonus value vs annual fee breakeven
  • πŸ“‰ Fee Breakeven Analysis - See how much you need to spend to justify annual fees

πŸ›  Tech Stack

  • Frontend: React Native 0.81 with Expo 54
  • Language: TypeScript
  • Backend: Supabase (PostgreSQL)
  • APIs: Google Places API for store lookup
  • Navigation: React Navigation 7
  • State: AsyncStorage for local persistence
  • Testing: Jest + fast-check for property-based testing
  • Internationalization: i18next

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo CLI
  • Supabase account (optional for cloud features)
  • Google Cloud account (optional for Places API)

Installation

# Clone the repository
git clone https://github.com/tahseen137/rewardly.git
cd rewardly

# Install dependencies
npm install

# Start the development server
npx expo start

Environment Variables

Create a .env.local file in the root directory:

SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
GOOGLE_PLACES_API_KEY=your_google_places_api_key

Run on Device/Emulator

# iOS
npm run ios

# Android
npm run android

# Web
npm run web

πŸ“ Project Structure

rewardly/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/      # Reusable UI components
β”‚   β”œβ”€β”€ data/            # Static card and store data
β”‚   β”œβ”€β”€ i18n/            # Internationalization (EN/FR)
β”‚   β”œβ”€β”€ navigation/      # React Navigation setup
β”‚   β”œβ”€β”€ screens/         # App screens (Home, MyCards, Settings)
β”‚   β”œβ”€β”€ services/        # Business logic
β”‚   β”‚   β”œβ”€β”€ CardDataService.ts       # Card database and lookups
β”‚   β”‚   β”œβ”€β”€ CardPortfolioManager.ts  # User's card collection
β”‚   β”‚   β”œβ”€β”€ PreferenceManager.ts     # User preferences
β”‚   β”‚   β”œβ”€β”€ RecommendationEngine.ts  # Core recommendation logic
β”‚   β”‚   β”œβ”€β”€ StoreDataService.ts      # Store-to-category mapping
β”‚   β”‚   β”œβ”€β”€ WalletOptimizerService.ts   # Portfolio gap analysis
β”‚   β”‚   β”œβ”€β”€ StatementParserService.ts   # CSV import (8 banks)
β”‚   β”‚   β”œβ”€β”€ AchievementService.ts       # Gamification engine
β”‚   β”‚   β”œβ”€β”€ ApplicationTrackerService.ts # 5/24 rule tracking
β”‚   β”‚   β”œβ”€β”€ SpendingProfileService.ts   # Spending pattern analysis
β”‚   β”‚   └── SageAIService.ts            # AI chat integration
β”‚   └── types/           # TypeScript type definitions
β”œβ”€β”€ assets/              # Images, icons, splash screens
β”œβ”€β”€ docs/                # Project documentation
└── scripts/             # Deployment and build scripts

πŸ“Έ Screenshots

Coming soon! Screenshots of the app in action.


πŸ§ͺ Testing

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Generate coverage report
npm run test:coverage

πŸ“± Deployment

Ready to deploy? Check out our comprehensive deployment guides:

Quick Deploy Commands

# Install EAS CLI
npm install -g eas-cli

# Build for production
npm run build:production

# Submit to stores
npm run submit:ios
npm run submit:android

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ’³ Supported Canadian Credit Cards

Major Banks:

  • TD (Aeroplan Visa Infinite, Cash Back Visa Infinite)
  • RBC (Avion Visa Infinite, WestJet World Elite)
  • BMO (Air Miles World Elite, CashBack World Elite)
  • CIBC (Aventura Visa Infinite, Aeroplan Visa Infinite)
  • Scotiabank (Scene+ Visa, Passport Visa Infinite)

Premium Cards:

  • American Express (Cobalt, Gold, Platinum)
  • And many more...

Full card database available in src/data/


πŸ™ Acknowledgments

Built with ❀️ for the Canadian credit card rewards community.


Questions or feedback? Open an issue or reach out via GitHub!

About

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors