Skip to content

0xSHSH/FinTech-Nexus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’  FinTech Nexus

A unified crypto + fiat wallet โ€” instant payments, investing, banking & KYC in one premium dashboard.

Made with React Vite Node Express License: MIT

๐Ÿ”’ Sandbox demo โ€” no real money ever moves.


๐Ÿ”— Live Demo

Surface URL
Frontend https://fin-tech-nexus.vercel.app/
Backend https://fintech-nexus-backend.onrender.com/

Demo login: demo@fintechnexus.app / demo1234

๐Ÿ“ธ Screenshots

Landing Dashboard
Landing Dashboard
Crypto Transactions
Crypto Transactions
Payments Bank & KYC
Payments KYC

โœจ Features

  • Unified wallet โ€” fiat balance + crypto portfolio in one net-worth view.
  • Instant payments (demo) โ€” send money, request money, and a scannable payment QR.
  • Transactions โ€” add, search, filter by type/category, delete, and export to CSV.
  • Crypto tracker โ€” price cards, 24h change, sparklines, portfolio allocation, watchlist, risk disclaimer. Live-API-ready with a graceful mock fallback.
  • Bank & KYC โ€” mock bank linking, KYC progress ring, security checklist.
  • Profile โ€” editable details, preferred currency, linked UPI ID & wallet address.
  • Premium UX โ€” glassmorphism dark UI, skeleton loaders, toast notifications, empty states, error boundary, responsive mobile-first layout, protected routes.
  • Runs with zero external services โ€” no MongoDB or API keys needed for the demo (in-memory store auto-seeds).

๐Ÿงฑ Tech Stack

Frontend: React 18, Vite 5, Tailwind CSS, React Router 6, Axios, Recharts, qrcode.react, react-hot-toast, react-icons.

Backend: Node.js, Express 4, JWT (jsonwebtoken), bcryptjs, Mongoose 8 (optional), Helmet, CORS, express-rate-limit, Morgan, dotenv.

Database: MongoDB Atlas (optional) โ€” falls back to an in-memory demo store.

๐Ÿ—๏ธ Architecture

FinTech-Nexus/
โ”œโ”€โ”€ backend/                  # Express API (sandbox demo mode)
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ config/           # env + resilient DB connector
โ”‚   โ”‚   โ”œโ”€โ”€ data/             # in-memory store, dual-mode repositories, seed
โ”‚   โ”‚   โ”œโ”€โ”€ models/           # Mongoose schemas (used when MONGODB_URI is set)
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/       # auth (JWT), validation, error handling
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/      # auth, transactions, payments, bank/kyc, crypto, overview
โ”‚   โ”‚   โ”œโ”€โ”€ services/         # crypto market service (live or mock)
โ”‚   โ”‚   โ”œโ”€โ”€ routes/           # /api router
โ”‚   โ”‚   โ”œโ”€โ”€ app.js            # express app (helmet, cors, rate-limit, health)
โ”‚   โ”‚   โ””โ”€โ”€ index.js          # server bootstrap
โ”‚   โ”œโ”€โ”€ .env.example
โ”‚   โ””โ”€โ”€ render.yaml
โ””โ”€โ”€ client/                   # React + Vite SPA
    โ”œโ”€โ”€ src/
    โ”‚   โ”œโ”€โ”€ context/          # AuthContext (JWT in localStorage)
    โ”‚   โ”œโ”€โ”€ lib/              # axios client, formatters
    โ”‚   โ”œโ”€โ”€ components/       # layout, UI primitives, skeletons, guards
    โ”‚   โ””โ”€โ”€ pages/            # Landing, Login, Register, Dashboard, Transactions,
    โ”‚                         #   Payments, Crypto, Kyc, Profile, NotFound
    โ”œโ”€โ”€ .env.example
    โ””โ”€โ”€ vercel.json

Data layer: controllers talk to a repository abstraction. When MONGODB_URI is present and connects, it uses Mongoose; otherwise it uses an in-memory store seeded with a demo user. The app never crashes when the database is unavailable โ€” it logs a clear message and continues in demo mode.

๐Ÿš€ Local Setup

Prerequisites: Node.js 18+ and npm.

# 1. Clone
git clone https://github.com/0xSHSH/FinTech-Nexus.git
cd FinTech-Nexus

# 2. Backend
cd backend
cp .env.example .env          # optional โ€” defaults work for the demo
npm install
npm run dev                   # http://localhost:5550  (health: /health)

# 3. Frontend (new terminal)
cd ../client
cp .env.example .env          # VITE_API_URL=http://localhost:5550/api
npm install
npm run dev                   # http://localhost:5173

Open http://localhost:5173 and sign in with the demo credentials. No database required.

๐Ÿ” Environment Variables

Backend (backend/.env)

Variable Required Description
PORT no API port (default 5550).
NODE_ENV no development / production.
JWT_SECRET prod only JWT signing secret. Dev auto-generates an ephemeral one.
JWT_EXPIRES_IN no Token lifetime (default 7d).
CLIENT_ORIGIN no Comma-separated allowed CORS origins (default http://localhost:5173).
MONGODB_URI no MongoDB connection string. Blank โ†’ in-memory demo mode.
CRYPTO_API_URL no Custom market-data provider. Blank โ†’ realistic mock data.

Frontend (client/.env)

Variable Required Description
VITE_API_URL yes Backend base URL, e.g. http://localhost:5550/api.

๐Ÿ›ฃ๏ธ Backend Routes

Method Endpoint Auth Description
GET /health โ€“ Health check + current mode.
POST /api/auth/register โ€“ Create account โ†’ { token, user }.
POST /api/auth/login โ€“ Login โ†’ { token, user }.
GET /api/auth/me โœ… Current user.
PATCH /api/auth/profile โœ… Update profile fields.
GET /api/overview โœ… Aggregated dashboard payload.
GET /api/transactions โœ… List + filter (type, category, search) + summary.
POST /api/transactions โœ… Add a transaction.
DELETE /api/transactions/:id โœ… Delete a transaction.
GET /api/payments โœ… Transfers + money requests.
POST /api/payments/send โœ… Demo send money.
POST /api/payments/request โœ… Demo request money.
GET /api/bank โœ… Linked bank account.
POST /api/bank/link โœ… Demo link a bank account.
GET /api/kyc โœ… KYC status + checklist.
POST /api/kyc/submit โœ… Demo instant KYC verification.
GET /api/crypto/market โ€“ Market data (live or mock).
GET /api/crypto/portfolio โœ… Portfolio + allocation.

โ˜๏ธ Deployment Guide

Full step-by-step in DEPLOYMENT.md. Summary:

  • Backend โ†’ Render (or Railway): root backend/, build npm install, start npm start, health /health. Set JWT_SECRET, CLIENT_ORIGIN, and optionally MONGODB_URI. A render.yaml blueprint is included.
  • Frontend โ†’ Vercel: root client/, framework Vite, set VITE_API_URL to your Render URL. SPA rewrites are handled by vercel.json.
  • Database โ†’ MongoDB Atlas (optional): create a free cluster, whitelist 0.0.0.0/0, paste the URI into MONGODB_URI, run npm run seed.

๐Ÿ›ก๏ธ Security Notes

  • No hardcoded secrets. All credentials come from environment variables; .env is git-ignored and .env.example documents every key.
  • Passwords are hashed with bcrypt; password hashes are never returned by the API.
  • Sessions use signed JWT tokens; JWT_SECRET is mandatory in production (the server refuses to boot with an insecure default).
  • Hardening: Helmet headers, env-based CORS allow-list, and API rate limiting.
  • Sandbox only. Every financial action (send/request money, bank linking, KYC) is simulated โ€” no real money or real banking/crypto APIs are involved. The UI labels demo flows clearly.
  • Treat this as a portfolio/demo project, not a production financial service.

๐Ÿ‘ค Demo Credentials

Email:    demo@fintechnexus.app
Password: demo1234

๐Ÿ”ฎ Future Improvements

  • Real provider integrations behind feature flags (CoinGecko, Plaid/UPI sandboxes).
  • Recurring transactions & budgets; CSV/PDF statements.
  • 2FA, refresh tokens, and httpOnly cookie sessions.
  • WebSocket live price streaming.
  • Unit/integration tests (Vitest + Supertest) and CI.
  • Multi-currency FX conversion and notifications.

License

MIT โ€” see headers. Built for demonstration purposes.

About

Unified crypto-fiat wallet, instant transactions, and investment tools. Revolutionize your finances.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors