Logo Lanfrica

Mkungusiops/rwanda-dpi-citizen-wallet

Domain:

digital infrastructure

Record type:

software
Creator:
Mku
Host:
rwanda-dpi-citizen-wallet # Rwanda DPI 2.0 — Citizen Wallet (React) A React + Vite port of the **Rwanda DPI 2.0 Citizen Wallet** mobile prototype. Africa's first AI-Native DPI 2.0 concept: Identity · BISE · Finance · Services. ## Pages & visualizations included | # | Page | What's inside | |---|------|---------------| | 1 | **Splash** | Animated logo + loading bar | | 2 | **Login** | Biometric tap-auth + 6-digit PIN keypad | | 3 | **Home** | Parallax hero, BISE gauge, sub-scores, balance, quick actions, AI insight, transactions, live feed | | 4 | **Identity** | NID card, 3-tier identity architecture, persona switcher | | 5 | **BISE Scores** | Score hero, persona chips, 6 score cards, **radar chart**, **history chart** | | 6 | **Wallet** | Account row, rSWITCH mini, tabs + panels | | 7 | **Marketplace** | Score-gated offers | | 8 | **Credentials** | Verifiable credentials list | | 9 | **AI Advisor** | Sovereign-AI chat | | 10 | **Gov Dashboard** | KPIs and national-level metrics | | 11 | **rSWITCH** | Animated network SVG, node chips, live feed | Plus: status bar, app header with back/avatar/notifications, bottom nav, modals. ## Run it ```bash npm install npm run dev ``` Then open the URL Vite prints (defaults to localhost). ## Build for production ```bash npm run build npm run preview ``` ## Project layout ``` rwanda-dpi-citizen-wallet/ ├── index.html # Vite entry, loads fonts ├── package.json ├── vite.config.js ├── public/ │ └── app.js # Original imperative UI logic (personas, nav, charts) └── src/ ├── main.jsx # React entry ├── App.jsx # Mounts markup + injects app.js ├── styles.css # All design tokens, components, animations └── body.html # The mobile UI markup (imported as raw text) ``` ## Notes on the architecture The original prototype is a single self-contained HTML file. To preserve every pixel, animation, and chart exactly as designed, this React app: 1. Imports `body.html` as a raw string and renders it i …