Fayda-Omo Harmonization: A secure full-stack platform linking Omo Bank customer accounts with Ethiopia's National Digital ID (Fayda) system using Node.js, OracleDB, and OIDC.
# Fayda Connect | Omo Bank S.C.
A secure digital harmonization platform that links **Omo Bank S.C.** customer accounts with Ethiopia’s **Fayda National Digital ID**. The system enables identity verification, OTP-based authentication, and secure data synchronization with the National ID Program and the bank’s Core Banking System.
## ✨ Highlights
* 🔐 **Secure Account Verification** — Multi‑factor authentication with SMS OTP tied to Core Banking records
* 🪪 **Fayda OIDC Integration** — Standards‑compliant (OIDC + PKCE) identity harmonization
* 🏦 **Core Banking Sync** — Real‑time validation and profile lookups against **Oracle Flexcube**
* 🌍 **Multi‑language UI** — English & Amharic (i18n ready)
* 📱 **Progressive Web App (PWA)** — Installable, offline‑aware, mobile‑first
* 🛡️ **Bank‑Grade Security** — Secure sessions, rate limiting, JWT/JWE, full audit logging
## 🧭 Architecture Overview
[ User (Web / PWA) ]
|
v
[ React Frontend ]
|
v
[ Node.js / Express API ]
| |
| +--> Oracle Flexcube (Core Banking)
|
+--> MongoDB (Sessions, Users, Audit Logs)
|
+--> Fayda OIDC Provider (Auth + Identity)
## 🛠️ Tech Stack
### Frontend
* **Framework**: React (Vite)
* **Styling**: Tailwind CSS
* **Routing**: React Router DOM
* **State & i18n**: i18next
* **PWA**: Web Manifest & Service Worker
### Backend
* **Runtime**: Node.js (v18+), Express
* **Databases**:
* MongoDB — session store, users, audit logs
* Oracle DB — Core Banking (Flexcube) lookup
* **Validation**: Zod
* **Security**: Helmet, CORS, Express Rate Limit, JOSE (JWT/JWE)
## 📋 Prerequisites
* Node.js **v18+**
* MongoDB (Local or Atlas)
* Oracle Instant Client (for Flexcube connectivity)
* Network/VPN access to Core Banking DB
* Git
## ⚙️ Installation & Setup
### 1️⃣ Clone the Repository
bash
git clone
github.com
cd fayda-omo-api
### 2️⃣ Backend Setup
bash
cd backend
npm install
Create a `.env` file inside `backend/`:
env
# Server Configuration
P …