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 - Ethereum-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 (Ethereum)
โ โโโ 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 <repository-url> cd react-native-expo
-
Install dependencies
yarn install
-
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
iin the terminal - Android Emulator: Press
ain the terminal - Physical Device: Scan the QR code with Expo Go app
user_profiles- User information and preferencessavings_pots- Savings goals and progresstransactions- Financial transaction historypot_activities- Pot-related activities and logswaitlist- 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 potsmUSDC.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.