Wealy is a premium, full-stack wealth management platform designed to automate identity verification, fiat deposits via virtual accounts, and global market investments for retail users in Nigeria (NGN base currency). Built with React (Vite) on the front end and FastAPI (Python) on the back end.
# 💰 The Wealy App
A premium, full-stack wealth management platform designed to automate identity verification, fiat deposits via virtual accounts, and global market investments for retail users in Nigeria (NGN base currency). Built with **React (Vite)** on the front end and **FastAPI (Python)** on the back end.
---
## 🏗️ System Architecture
The system acts as a consolidated orchestrator connecting various API providers into a single streamlined pipeline: Authentication -> KYC Registration -> Wallet Generation -> Real-time Ledger Management -> Asset Purchases.
```mermaid
flowchart TD
API["API GATEWAY / ORCHESTRATOR (FastAPI)"]
ID["Identity & Auth Service (Clerk)"]
KYC["KYC & Compliance (Paystack)"]
PAY["Payment & Vault (Flutterwave)"]
MKT["Market Data (Alpha Vantage)"]
API --> ID
API --> KYC
API --> PAY
API --> MKT
ID -.-> EVENT{"(Async Events & Webhooks: e.g., loan.disbursed / transfer.completed)"}
KYC -.-> EVENT
PAY -.-> EVENT
MKT -.-> EVENT
EVENT --> LEDGER["Ledger & Portfolio Core Service (Supabase / PostgreSQL)"]
classDef default fill:#1A1A1A,stroke:#FFFFFF,stroke-width:2px,stroke-dasharray: 5 5,color:#FFFFFF;
style EVENT fill:none,stroke:none,color:#FFFFFF
```
---
## 📁 Project Structure
```
Wealy-2026/
├── wealy-backend/ → Python API server (FastAPI + Supabase + Flutterwave)
├── wealy-frontend/ → React UI (Vite + Vanilla CSS)
├── Wealy UI/ → Original Figma design exports (PNG)
├── TRD.md → Technical Requirements Document
└── master_roadmap.md → Project planning notes
```
---
## 🔑 How the Product Works (End-to-End User Flow)
Wealy abstracts the complexity of financial compliance and orchestration through a strict sequential journey:
1. **Gate 1 (Auth):** User attempts logging in via the `/auth/login` endpoint using Clerk's backend SDK.
2. **Gate 2 (Identity & KYC):** The application queries profiles in Supabase. If missing, it prompts the user to enter their BVN (Bank Verification Number) to hit Paystack's endpoint. …