A SuperApp for Payment and Loyalties
A modern, feature-rich financial management application built with React Native and Expo, featuring a comprehensive savings pots system powered by Supabase.
Savings Pots System - Create, manage, and track multiple savings goals
USDC Integration - Native support for USDC cryptocurrency transactions
QR Code Payments - Scan and generate QR codes for instant payments
Real-time Balance Tracking - Live updates of wallet balances and pot amounts
Smart Pot Templates - Pre-built templates for common savings goals
Joint Pots - Collaborative savings with friends and family
Strict Savings - Time-locked pots with withdrawal deadlines
Auto-Invest - Automated weekly/monthly contributions
Yield Strategies - DeFi protocol integration for earning interest
Progress Tracking - Visual progress bars and goal projections
Wallet Integration - Dynamic wallet connection support
User Profiles - Comprehensive user management system
Row Level Security - Supabase-powered data protection
Transaction History - Complete audit trail of all financial activities
Cross-Platform - Works on iOS, Android, and Web
Responsive Design - Optimized for all screen sizes
Dark/Light Themes - Automatic theme switching
Haptic Feedback - Enhanced mobile experience
Offline Support - Core functionality works without internet
React Native - Cross-platform mobile development
Expo - Development platform and build tools
TypeScript - Type-safe JavaScript development
Tailwind CSS - Utility-first CSS framework
NativeWind - Tailwind CSS for React Native
Supabase - Open-source Firebase alternative
PostgreSQL - Robust relational database
Row Level Security (RLS) - Advanced data protection
Real-time Subscriptions - Live data updates
USDC - Stablecoin for transactions
Dynamic Wallets - Multi-wallet support
QR Code Generation - Payment request system
Transaction Monitoring - Payment status tracking
Smart Contracts - Arbitrum-based savings pots (available but not implemented)
Zustand - Lightweight state management
React Hooks - Modern React patterns
Context API - Component state sharing
react-native-expo/
โโโ src/
โ โโโ app/ # App screens and navigation
โ โ โโโ (app)/ # Main app screens
โ โ โ โโโ home/ # Home dashboard
โ โ โ โโโ payment/ # Payment and QR scanning
โ โ โ โโโ pots/ # Savings pots management
โ โ โ โโโ profile/ # User profile
โ โ โ โโโ track/ # Transaction tracking
โ โ โโโ business/ # Business dashboard
โ โ โโโ login/ # Authentication
โ โ โโโ onboarding/ # User onboarding
โ โโโ components/ # Reusable UI components
โ โโโ services/ # Business logic and API calls
โ โโโ stores/ # State management
โ โโโ hooks/ # Custom React hooks
โ โโโ types/ # TypeScript type definitions
โ โโโ lib/ # Configuration and utilities
โโโ contracts/ # Smart contracts (Arbitrum)
โ โโโ SavingsPots.sol # Main savings pots contract
โ โโโ mUSDC.sol # Mock USDC token contract
โ โโโ README.md # Contract documentation
โโโ supabase/ # Database migrations and config
โโโ assets/ # Images, icons, and static files
โโโ docs/ # Documentation and guides
Node.js (v18 or higher)
Yarn package manager
Expo CLI
iOS Simulator (for iOS development)
Android Studio (for Android development)
Clone the repository
git clone https://github.com/ManishHQ/superpay-arb
cd react-native-expo
Install dependencies
Set up environment variables
cp .env.example .env
# Edit .env with your Supabase credentials
Set up Supabase
Create a new Supabase project
Run the database migrations in supabase/migrations/
Update your environment variables
Start the development server
yarn start
iOS Simulator: Press i
in the terminal
Android Emulator: Press a
in the terminal
Physical Device: Scan the QR code with Expo Go app
user_profiles
- User information and preferences
savings_pots
- Savings goals and progress
transactions
- Financial transaction history
pot_activities
- Pot-related activities and logs
waitlist
- User waitlist for new features
Row Level Security - Users can only access their own data
Real-time Updates - Live data synchronization
Audit Trails - Complete transaction history
Scalable Design - Optimized for high user volumes
The project includes smart contracts for future blockchain integration:
SavingsPots.sol
- Main contract for on-chain savings pots
mUSDC.sol
- Mock USDC token for testing and development
Savings Pot Management - Create, fund, and withdraw from blockchain-based pots
USDC Integration - Native stablecoin support for all transactions
Multi-User Support - Collaborative savings with on-chain verification
Yield Farming - DeFi protocol integration for earning interest
Current Version: Supabase-only pots system (recommended for production)
Future Version: Optional blockchain integration for advanced users
Migration Path: Seamless upgrade from database to blockchain pots
# Supabase Configuration
EXPO_PUBLIC_SUPABASE_URL=your_supabase_url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
# App Configuration
EXPO_PUBLIC_APP_NAME=SuperPay
EXPO_PUBLIC_APP_VERSION=1.0.0
Enable Row Level Security on all tables
Configure authentication providers
Set up storage policies
Configure real-time subscriptions
Overview of all savings pots
Quick actions for common tasks
Recent activity feed
Balance summaries
QR code generation and scanning
USDC transaction support
Payment request system
Transaction monitoring
Create custom savings goals
Track progress with visual indicators
Set up automatic contributions
Enable yield strategies
Customer management
Transaction analytics
Payment processing
Business insights
# Unit tests
yarn test
# E2E tests
yarn test:e2e
# Test coverage
yarn test:coverage
Unit Tests - Component and service testing
Integration Tests - API and database testing
E2E Tests - Full user journey testing
# Build for production
yarn build:android
yarn build:ios
# Submit to app stores
yarn submit:android
yarn submit:ios
# Build web version
yarn build:web
# Deploy to hosting service
yarn deploy:web
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Submit a pull request
Follow TypeScript best practices
Use consistent naming conventions
Add JSDoc comments for complex functions
Maintain test coverage above 80%
This project is licensed under the MIT License - see the LICENSE file for details.
Documentation - Check the docs folder
Issues - Report bugs on GitHub
Discussions - Ask questions in GitHub Discussions
Email - Contact the development team
Build Errors - Clear cache and reinstall dependencies
Database Issues - Check Supabase connection and migrations
Performance - Enable Hermes engine and optimize images
Advanced Analytics - Detailed financial insights
Multi-Currency Support - Beyond USDC
Social Features - Share goals and achievements
AI Recommendations - Smart savings suggestions
Mobile Banking - Direct bank account integration
Web App - Full-featured web version
Desktop App - Native desktop application
API Access - Public API for developers
Third-party Integrations - Connect with other financial apps
Expo Team - Amazing development platform
Supabase - Powerful backend-as-a-service
React Native Community - Excellent ecosystem
Open Source Contributors - All the amazing libraries
Built with โค๏ธ by the SuperPay Team
Empowering users to take control of their financial future through innovative technology and user-friendly design.
None