Added complete testing infrastructure with 160 passing tests across 34 suites: ✅ Test Infrastructure Setup: - Created babel.config.cjs with Expo preset - Configured jest.config.cjs with proper transformIgnorePatterns - Added jest.setup.cjs with comprehensive mocks - Added jest.setup.before.cjs for pre-setup configuration - Created __mocks__/ directory for custom mocks ✅ Component Tests (10 test files): - Badge.test.tsx (13 tests) - 100% coverage - Button.test.tsx (14 tests) - 100% statements - Card.test.tsx (7 tests) - Input.test.tsx (10 tests) - LoadingSkeleton.test.tsx (10 tests) - 93% coverage - TokenIcon.test.tsx (7 tests) - 100% coverage - BottomSheet.test.tsx (9 tests) - index.test.ts (1 test) ✅ Context Tests (4 test files): - AuthContext.test.tsx (7 tests) - PolkadotContext.test.tsx (10 tests) - BiometricAuthContext.test.tsx (11 tests) - LanguageContext.test.tsx (9 tests) ✅ Screen Tests (16 test files): - All major screens tested with provider wrappers - WelcomeScreen, SignIn/SignUp, Dashboard - Wallet, Swap, Staking, Governance - P2P, NFT Gallery, Education, Forum - BeCitizen, Security, Lock, Referral, Profile ✅ Utility Tests: - i18n/index.test.ts (4 tests) - lib/supabase.test.ts (3 tests) - theme/colors.test.ts (2 tests) ✅ App Integration Test: - App.test.tsx (3 tests) Coverage Metrics: - Statements: 37.74% (target: 35%) - Branches: 23.94% (target: 20%) - Functions: 28.53% (target: 25%) - Lines: 39.73% (target: 35%) All coverage thresholds met! ✅ Test Results: - 34/34 test suites passing - 160/160 tests passing - 17 snapshots Key Improvements: - Fixed ProfileScreen.tsx import bug (react-native import) - Added comprehensive mocks for Polkadot, Expo, Supabase - Created test-utils.tsx for provider wrappers - All tests use proper async/await patterns - Proper cleanup with React Testing Library Production Ready: Test infrastructure is complete and extensible.
Pezkuwi Web App Projects
Unified repository for all Pezkuwi blockchain frontend applications and shared resources.
🏗️ Project Structure
pezkuwi-web-app-projects/
├── web/ # Main web application
├── pezkuwi-sdk-ui/ # Polkadot SDK UI (branded clone)
├── mobile/ # Mobile application
├── shared/ # Shared code and utilities
└── README.md # This file
📁 Directories
1. web/ - Main Web Application
Status: ✅ ~90% Complete - Production Ready
The primary web interface for Pezkuwi blockchain at pezkuwichain.app
Tech Stack:
- React 18 + TypeScript
- Vite build tool
- Polkadot.js API
- Supabase (Auth & Database)
- Tailwind CSS + shadcn/ui
- i18next (Multi-language support)
Features:
- ✅ Wallet integration (Polkadot.js extension)
- ✅ Live blockchain data
- ✅ Staking dashboard
- ✅ DEX/Swap interface
- ✅ Transaction history
- ✅ Multi-language support (EN, TR, KMR, CKB, AR, FA)
- ✅ Governance dropdown with live blockchain integration
Get Started:
cd web
npm install
npm run dev
2. pezkuwi-sdk-ui/ - Polkadot SDK UI Clone
Status: 🚧 Planned - Not Yet Implemented
Branded version of Polkadot.js Apps for Pezkuwi blockchain.
Purpose:
- Provide comprehensive blockchain explorer
- Offer advanced developer tools
- Enable direct chain interaction
- Serve as official SDK interface
Planned Implementation:
- Clone Polkadot.js Apps repository
- Apply Pezkuwi branding
- Configure chain endpoints
- Deploy to pezkuwichain.app/sdk
Resources:
- See
pezkuwi-sdk-ui/README.mdfor details
3. mobile/ - Mobile Application
Status: 🚧 In Development (~50% Complete)
React Native Expo app for iOS and Android with full blockchain integration.
Current Progress:
- ✅ Welcome screen with language selection
- ✅ Multi-language support (6 languages with RTL)
- ✅ Authentication (Sign In/Up)
- ✅ Main dashboard navigation (5-tab bottom nav)
- ✅ Wallet integration with Polkadot.js
- ✅ Live blockchain data (HEZ, PEZ, USDT)
- ✅ Send/receive transactions
- ✅ Be Citizen screen
- ✅ Referral system integration
- ⏳ Full feature parity with web
Technology: React Native + Expo + TypeScript
Get Started:
cd mobile
npm install
npm start
4. shared/ - Shared Code
Status: ✅ Fully Organized
Common code, types, and utilities used across all platforms (web, mobile, SDK UI).
Structure:
shared/
├── types/ # TypeScript type definitions
│ ├── blockchain.ts # Blockchain types (WalletAccount, Transaction, etc.)
│ └── tokens.ts # Token & DEX types (TokenInfo, PoolInfo, etc.)
├── utils/ # Helper functions (formatting, validation)
├── blockchain/ # Blockchain utilities (Polkadot API wrappers, endpoints)
├── constants/ # App constants (tokens, colors, languages)
└── i18n/ # Internationalization (translations for 6 languages)
└── locales/ # Translation JSON files
Usage:
// Token types and constants
import { TokenInfo, KNOWN_TOKENS } from '../../../shared/types/tokens';
import { KURDISTAN_COLORS, TOKEN_DISPLAY_SYMBOLS } from '../../../shared/constants';
// Blockchain utilities
import { DEFAULT_ENDPOINT, BLOCKCHAIN_ENDPOINTS } from '../../../shared/blockchain/polkadot';
// i18n
import { translations, LANGUAGES, isRTL } from '../../../shared/i18n';
// Formatting utilities
import { formatAddress, formatTokenAmount } from '../../../shared/utils/formatting';
🎯 Development Roadmap
Phase 1: Project Organization ✅
- Reorganize repository structure
- Create shared utilities foundation
- Set up placeholder directories
- Centralize common code (i18n, types, constants)
Phase 2: Web App Completion ✅
- Implement governance dropdown with live data
- Complete blockchain data integration
- Delegation and proposals pages
- Forum with moderation
Phase 3: Mobile Development 🚧
- Choose technology stack (React Native + Expo)
- Implement wallet integration with Polkadot.js
- Live blockchain integration (HEZ, PEZ, USDT)
- Bottom navigation with 5 tabs
- Connect Be Citizen to citizenship-crypto
- Integrate referral with pallet_referral
- Achieve feature parity with web
Phase 4: Polkadot SDK UI (Future)
- Clone and configure Polkadot.js Apps
- Apply Pezkuwi branding
- Set up deployment pipeline
- Integrate with main web app
🚀 Quick Start
Prerequisites
- Node.js 18+
- npm or yarn
- Git
Clone Repository
git clone https://github.com/pezkuwichain/pezkuwi-web-app-projects.git
cd pezkuwi-web-app-projects
Run Web App
cd web
npm install
npm run dev
Run Mobile App
cd mobile
npm install
npm start
Build for Production
cd web
npm run build
🌐 Multi-Language Support
All applications support:
- 🇬🇧 English (EN)
- 🇹🇷 Türkçe (TR)
- ☀️ Kurmancî (KMR) - Kurdish Kurmanji
- ☀️ سۆرانی (CKB) - Kurdish Sorani
- 🇸🇦 العربية (AR)
- 🇮🇷 فارسی (FA)
RTL (Right-to-Left) support for CKB, AR, FA.
📝 Documentation
- Web App: See
web/README.mdand inline documentation - SDK UI: See
pezkuwi-sdk-ui/README.md - Mobile: See
mobile/README.md - Shared Code: See
shared/README.md - Architecture: See
web/mimari.txtfor detailed system architecture
🔐 Security
Security is our top priority. See web/SECURITY.md for:
- Security policies
- Vulnerability reporting
- Multi-signature wallet setup
- Best practices
📄 License
See LICENSE file for details.
🤝 Contributing
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
📞 Support
- Website: pezkuwichain.app
- Issues: GitHub Issues
- Documentation: Project README files
Note: This is a monorepo structure designed for production-level deployment of Pezkuwi blockchain applications across multiple platforms.