From 89fb5109a6ebcb868bd6a6b4c765bc2541d3f165 Mon Sep 17 00:00:00 2001 From: AdekunleBamz Date: Fri, 23 Jan 2026 07:19:32 +0100 Subject: [PATCH 1/2] Add CI workflow for automated testing --- .github/workflows/ci.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..54e6010 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,20 @@ +name: CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'yarn' + - run: yarn install --frozen-lockfile + - run: yarn test From b16d9abd1e84cb8c08df3ac6b3064e898b3a9c1d Mon Sep 17 00:00:00 2001 From: Adekunle Bamzz Date: Thu, 26 Feb 2026 08:14:09 +0100 Subject: [PATCH 2/2] Add README --- README.md | 228 +----------------------------------------------------- 1 file changed, 3 insertions(+), 225 deletions(-) diff --git a/README.md b/README.md index 1853c70..6bbf2c7 100644 --- a/README.md +++ b/README.md @@ -1,227 +1,5 @@ -# โœจ Nuru - Light up your payments +# Nuru -> **Voice-powered crypto remittances for Africa** -> *Built at ETH Accra 2024 โ€ข Ghana first, Nigeria next* +Platform on Stacks. -![Nuru Logo](https://img.shields.io/badge/Nuru-Light%20up%20your%20payments-12B76A?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMTMuMDkgOC4yNkwyMCA5TDEzLjA5IDE1Ljc0TDEyIDIyTDEwLjkxIDE1Ljc0TDQgOUwxMC45MSA4LjI2TDEyIDJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K) - -[![Tests](https://github.com/gboigwe/nuru/actions/workflows/test.yml/badge.svg)](https://github.com/gboigwe/nuru/actions/workflows/test.yml) -[![Coverage](https://codecov.io/gh/gboigwe/nuru/branch/main/graph/badge.svg)](https://codecov.io/gh/gboigwe/nuru) -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) - -## ๐ŸŒ The Vision - -**"Making crypto remittances as natural as conversation"** - -Nuru transforms the way Africans send money across borders. Instead of complex wallet addresses, just say "Send 50 cedis to mama.family.eth" and it's done. We're bridging voice-first Africa with crypto-powered finance. - -## โœจ Key Features - -- **๐ŸŽค Voice-First Interface**: Real voice recording with MediaRecorder API and Web Speech recognition -- **๐ŸŒ ENS Integration**: Send to human-readable names, not 0x addresses -- **โšก Base L2**: Real USDC payments on BASE Mainnet with actual blockchain transactions -- **๐Ÿ“ฑ Mobile Native**: Built for Africa's smartphone-first population -- **๐Ÿ’พ Voice Receipts**: Immutable proof stored on Filecoin with real CID generation -- **๐Ÿ”— Social Verification**: EFP integration for trust and identity -- **๐Ÿ”’ Production Ready**: No demo mode - all transactions are real and verifiable on Basescan - -## ๐ŸŽฏ Problem We're Solving - -**$50B African remittance market** faces major friction: -- Complex crypto addresses (0x1234...abcd) -- High fees from traditional providers -- Poor UX for non-technical users -- No voice-optimized interfaces - -**Nuru's Solution**: *"Send money to mama"* instead of *"Send to 0x742d35Cc6634C0532925a3b8D35Cc6634C0532925"* - -## ๐Ÿ› ๏ธ Tech Stack - -- **Frontend**: Next.js 15 (App Router), React, TailwindCSS -- **Web3**: Wagmi, Viem, Reown AppKit (WalletConnect) -- **Voice**: OpenAI Whisper + GPT-4 for natural language processing -- **Storage**: Filecoin for immutable voice receipt storage -- **Identity**: ENS for human-readable addresses, EFP for social graphs -- **Network**: Base L2 (Sepolia testnet) + Ethereum Mainnet - -## ๐Ÿ“‹ Requirements - -Before you begin, you need to install the following tools: - -- [Node (>= v20.18.3)](https://nodejs.org/en/download/) -- Yarn ([v1](https://classic.yarnpkg.com/en/docs/install/) or [v2+](https://yarnpkg.com/getting-started/install)) -- [Git](https://git-scm.com/downloads) - -## ๐Ÿš€ Quickstart - -### 1. Clone and Install - -```bash -git clone https://github.com/gboigwe/nuru.git -cd nuru -yarn install -``` - -### 2. Environment Setup - -Create a `.env` file in `packages/nextjs/`: - -```bash -# Required: Reown AppKit for wallet connections -NEXT_PUBLIC_REOWN_PROJECT_ID=your_project_id_here - -# Required: Alchemy for RPC -NEXT_PUBLIC_ALCHEMY_API_KEY=your_alchemy_key_here - -# Required for voice features: OpenAI API -OPENAI_API_KEY=your_openai_key_here - -# Optional: Filecoin for voice receipts -FILECOIN_SERVICE_PRIVATE_KEY=your_filecoin_key_here -``` - -**Get your Reown Project ID:** -1. Visit [cloud.reown.com](https://cloud.reown.com) -2. Sign in or create an account -3. Create a new project -4. Copy your Project ID - -**Get your Alchemy API Key:** -1. Visit [alchemy.com](https://www.alchemy.com) -2. Create a free account -3. Create a new app (select Base Sepolia network) -4. Copy your API key - -### 3. Run Local Development - -```bash -# Terminal 1: Start local blockchain (optional for testing) -yarn chain - -# Terminal 2: Deploy contracts (optional) -yarn deploy - -# Terminal 3: Start Next.js app -yarn start -``` - -Visit your app at `http://localhost:3000` - -### 4. Using Nuru - -1. **Connect Wallet**: Click "Connect Wallet" and choose from 300+ supported wallets -2. **Switch Network**: Select Base Sepolia for testing or Mainnet for ENS -3. **Voice Payment**: Click the microphone and say "Send 10 USDC to mama.family.eth" -4. **Confirm**: Review the transaction and approve - -## ๐Ÿ”— Supported Wallets - -Nuru uses **Reown AppKit** (formerly WalletConnect) which automatically supports: - -- MetaMask -- Coinbase Wallet -- Trust Wallet -- Ledger Live -- Safe Wallet -- Rainbow Wallet -- 300+ WalletConnect-compatible wallets - -No manual configuration needed! - -## ๐Ÿ“š Documentation - -- **[Testing Guide](./docs/TESTING.md)** - Comprehensive testing documentation and best practices -- **[Voice Recognition](./packages/nextjs/services/voice/README.md)** - Multi-tier voice recognition with Web Speech API and Whisper -- **[Reown Migration Guide](./docs/REOWN_MIGRATION.md)** - Complete guide for the RainbowKit to Reown AppKit migration -- **[VoicePay Components](./packages/nextjs/components/voicepay/README.md)** - Real payment component documentation -- **[Scaffold-ETH 2 Docs](https://docs.scaffoldeth.io)** - Technical details and guides -- **[Reown AppKit Docs](https://docs.reown.com/appkit/react/core/installation)** - Wallet connection documentation - -## ๐Ÿงช Testing - -Nuru has comprehensive test coverage across smart contracts and frontend: - -```bash -# Run all tests -yarn test - -# Run contract tests -cd packages/hardhat && yarn test - -# Run frontend tests -cd packages/nextjs && yarn test - -# Generate coverage report -yarn test:coverage -``` - -**Test Coverage:** -- โœ… Smart Contract Tests (VoiceRemittance, USDC payments, security) -- โœ… Voice Command Processing (multi-language, error correction) -- โœ… USDC Payment Handler (balance checks, approvals, execution) -- โœ… ENS Resolution (forward/reverse, validation) -- โœ… Currency Conversion (GHS/NGN to USDC) -- โœ… CI/CD Integration (GitHub Actions, Codecov) - -See [Testing Guide](./docs/TESTING.md) for detailed information. - -## ๐Ÿ—๏ธ Project Structure - -``` -nuru/ -โ”œโ”€โ”€ packages/ -โ”‚ โ”œโ”€โ”€ nextjs/ # Next.js frontend app -โ”‚ โ”‚ โ”œโ”€โ”€ app/ # Next.js 15 App Router pages -โ”‚ โ”‚ โ”œโ”€โ”€ components/ # React components -โ”‚ โ”‚ โ”œโ”€โ”€ hooks/ # Custom React hooks -โ”‚ โ”‚ โ”œโ”€โ”€ services/ # Web3 configuration & voice processing -โ”‚ โ”‚ โ””โ”€โ”€ utils/ # Helper functions -โ”‚ โ””โ”€โ”€ hardhat/ # Smart contracts & deployment scripts -โ”œโ”€โ”€ docs/ # Documentation -โ””โ”€โ”€ voicepay/ # Voice payment core logic -``` - -## ๐Ÿค Contributing - -We welcome contributions to Nuru! To get started: - -1. Fork the repository -2. Create a feature branch (`git checkout -b feature/amazing-feature`) -3. Commit your changes (use conventional commits) -4. Push to your branch (`git push origin feature/amazing-feature`) -5. Open a Pull Request - -## ๐Ÿ› Troubleshooting - -### Wallet Connection Issues -- Ensure `NEXT_PUBLIC_REOWN_PROJECT_ID` is set in your `.env` -- Check browser console for errors -- Try clearing browser cache and reconnecting - -### Build Errors -- Run `yarn clean` and `yarn install` to refresh dependencies -- Ensure Node version >= 20.18.3 -- Check that all environment variables are set - -### Voice Feature Not Working -- Verify `OPENAI_API_KEY` is set -- Check microphone permissions in browser -- Ensure HTTPS connection (required for microphone access) - -For more issues, see the [Reown Migration Guide](./docs/REOWN_MIGRATION.md#troubleshooting) - -## ๐Ÿ“„ License - -This project is built on Scaffold-ETH 2 and inherits its MIT License. - -## ๐Ÿ™ Acknowledgments - -- Built with [Scaffold-ETH 2](https://scaffoldeth.io) -- Powered by [Reown AppKit](https://reown.com) (formerly WalletConnect) -- Voice processing by [OpenAI](https://openai.com) -- Storage on [Filecoin](https://filecoin.io) -- Identity via [ENS](https://ens.domains) and [EFP](https://ethfollow.xyz) - ---- - -**Built with โค๏ธ for Africa at ETH Accra 2024** +npm install