## Perwerde (Education Platform) - FULLY INTEGRATED **Backend Integration (shared/lib/perwerde.ts - 350+ lines)**: - Query functions: getAllCourses(), getActiveCourses(), getCourseById() - Student tracking: getStudentProgress(), getStudentCourses(), isEnrolled() - Transaction functions: enrollInCourse(), completeCourse(), archiveCourse() - Helper utilities: formatIPFSLink(), getCourseDifficulty(), hexToString() - Support for IPFS content links with automatic gateway conversion **Frontend Update (web/src/pages/EducationPlatform.tsx)**: - ✅ Real blockchain data from Perwerde pallet - ✅ Dynamic course listing from on-chain storage - ✅ Student progress dashboard (enrolled, completed, points) - ✅ Enrollment transaction signing with error handling - ✅ IPFS content links for course materials - ✅ Real-time enrollment status badges - ✅ Auto-refresh every 30 seconds **Error Handling (shared/lib/error-handler.ts)**: - 7 new Perwerde-specific error messages (EN + Kurmanji) - 4 new success message templates - Covers: CourseNotFound, AlreadyEnrolled, NotEnrolled, CourseNotActive, etc. ## Features Implemented ### Perwerde Platform - Browse active courses from blockchain - Enroll in courses (transaction signing) - Track student progress (total courses, completed, points) - View course materials via IPFS links - Real-time enrollment status - Points-based achievement system ### Data Flow 1. Page loads → Query `perwerde.courses` storage 2. User clicks "Enroll" → Sign transaction → `api.tx.perwerde.enroll(courseId)` 3. Transaction success → Refresh student progress 4. Display enrollment status badges ## Blockchain Integration Status ✅ **Welati (Elections)**: - Query functions: COMPLETE - UI: COMPLETE - Transactions: PENDING (buttons present, signing needs implementation) ✅ **Perwerde (Education)**: - Query functions: COMPLETE - UI: COMPLETE - Transactions: COMPLETE (enrollment working) ⏸️ **ValidatorPool**: - DEFERRED to Phase 3 (complex 4-category system) ## Next Steps (Optional Phase 3) 1. Welati transaction signing (registerCandidate, castVote, voteOnProposal) 2. Navigation menu updates (AppLayout.tsx) 3. ValidatorPool 4-category implementation 4. i18n translation files (EN + KMR) --- **Production Status**: - Perwerde: ✅ 100% functional - Welati: ⚠️ 80% (missing transaction signing) - Overall: ✅ FAZ 2 core objectives met
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.