Multi-Currency Finance Platform

A web application that simulates a multi-currency finance platform like Cleva or Grey.

Features

  • User registration and login
  • KYC submission and verification
  • Multi-currency wallets (USD, GBP, NGN)
  • Balance checking
  • Currency exchange between wallets
  • Sending money to other users
  • Setting transaction limits
  • Transaction history
  • Webhook listener for external BaaS events

Project Structure

├── backend/
│   ├── database/       # Database schema and queries
│   ├── routes/         # API route handlers
│   ├── middleware/     # Authentication middleware
│   └── index.ts        # Main entry point
├── frontend/
│   ├── components/     # React components
│   ├── pages/          # Page components
│   ├── index.html      # HTML template
│   └── index.tsx       # Frontend entry point
└── shared/
    └── types.ts        # Shared TypeScript types

Technologies Used

  • Backend: Hono.js, SQLite, JWT
  • Frontend: React, TypeScript, TailwindCSS
  • Storage: SQLite database

API Endpoints

  • POST /api/register - Register a new user
  • POST /api/login - Authenticate a user
  • POST /api/kyc - Submit KYC data
  • POST /api/wallet/create - Create a new wallet
  • GET /api/wallets - Get all wallet balances
  • POST /api/wallet/transfer - Transfer between wallets
  • POST /api/send - Send money to another user
  • POST /api/user/set-limit - Set transaction limits
  • GET /api/transactions - Get transaction history
  • POST /api/webhooks/receive - Webhook listener

Getting Started

  1. Visit the application URL
  2. Register a new account
  3. Submit KYC information
  4. Create wallets in different currencies
  5. Start making transactions