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. β¦