hackquest logo

Superpay - Payments and Loyalties

A SuperApp for Payment and Loyalties

비디오

설명

SuperPay - Payments and Loyalties

A modern, feature-rich financial management application built with React Native and Expo, featuring a comprehensive savings pots system powered by Supabase.

🚀 Features

💰 Core Financial Management

  • 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

🏦 Savings Pots Features

  • 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

🔐 Security & Authentication

  • 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

📱 User Experience

  • 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

🛠️ Tech Stack

Frontend

  • 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

Backend & Database

  • Supabase - Open-source Firebase alternative

  • PostgreSQL - Robust relational database

  • Row Level Security (RLS) - Advanced data protection

  • Real-time Subscriptions - Live data updates

Blockchain & Payments

  • 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)

State Management

  • Zustand - Lightweight state management

  • React Hooks - Modern React patterns

  • Context API - Component state sharing

📁 Project Structure

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

🚀 Getting Started

Prerequisites

  • Node.js (v18 or higher)

  • Yarn package manager

  • Expo CLI

  • iOS Simulator (for iOS development)

  • Android Studio (for Android development)

Installation

  1. Clone the repository

    git clone https://github.com/ManishHQ/superpay-arb
    cd react-native-expo
  2. Install dependencies

  3. Set up environment variables

    cp .env.example .env
    # Edit .env with your Supabase credentials
  4. Set up Supabase

    • Create a new Supabase project

    • Run the database migrations in supabase/migrations/

    • Update your environment variables

  5. Start the development server

    yarn start

Running on Devices

  • iOS Simulator: Press i in the terminal

  • Android Emulator: Press a in the terminal

  • Physical Device: Scan the QR code with Expo Go app

🗄️ Database Schema

Core Tables

  • 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

Key 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

⛓️ Smart Contracts

Available Contracts (Not Currently Implemented)

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

Contract Features

  • 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

Implementation Status

  • 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

🔧 Configuration

Environment Variables

# 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

Supabase Setup

  1. Enable Row Level Security on all tables

  2. Configure authentication providers

  3. Set up storage policies

  4. Configure real-time subscriptions

📱 App Features

Home Dashboard

  • Overview of all savings pots

  • Quick actions for common tasks

  • Recent activity feed

  • Balance summaries

Payment System

  • QR code generation and scanning

  • USDC transaction support

  • Payment request system

  • Transaction monitoring

Savings Pots

  • Create custom savings goals

  • Track progress with visual indicators

  • Set up automatic contributions

  • Enable yield strategies

Business Dashboard

  • Customer management

  • Transaction analytics

  • Payment processing

  • Business insights

🧪 Testing

Running Tests

# Unit tests
yarn test

# E2E tests
yarn test:e2e

# Test coverage
yarn test:coverage

Test Structure

  • Unit Tests - Component and service testing

  • Integration Tests - API and database testing

  • E2E Tests - Full user journey testing

🚀 Deployment

Expo Build

# Build for production
yarn build:android
yarn build:ios

# Submit to app stores
yarn submit:android
yarn submit:ios

Web Deployment

# Build web version
yarn build:web

# Deploy to hosting service
yarn deploy:web

🤝 Contributing

Development Workflow

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests for new functionality

  5. Submit a pull request

Code Standards

  • Follow TypeScript best practices

  • Use consistent naming conventions

  • Add JSDoc comments for complex functions

  • Maintain test coverage above 80%

📄 License

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

🆘 Support

Getting Help

  • Documentation - Check the docs folder

  • Issues - Report bugs on GitHub

  • Discussions - Ask questions in GitHub Discussions

  • Email - Contact the development team

Common Issues

  • Build Errors - Clear cache and reinstall dependencies

  • Database Issues - Check Supabase connection and migrations

  • Performance - Enable Hermes engine and optimize images

🔮 Roadmap

Upcoming Features

  • 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

Platform Expansion

  • 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

🙏 Acknowledgments

  • 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.

기술 스택

React
Web3
Node
Solidity
React Native

자금 모금 상태

None

부문
SocialFiDeFi