Banner Background
Web App

LoanLink

LoanLink is an enterprise-grade, full-stack loan disbursement and underwriting platform connecting borrowers with financial institutions. Built with React 19, Vite, Tailwind CSS v4, Express 4, and MongoDB, it provides comprehensive loan lifecycles: multi-step borrower applications, interactive EMI estimation, drag-and-drop underwriting triage with @hello-pangea/dnd, automated legal PDF agreement generation with jsPDF, Stripe fee processing, and an integrated AI financial assistant powered by Groq and Google Gemini.

React JSTypescriptTailwind CSSNode.jsNode JSExpress JSMongoDBFirebaseStripeStripeGoogle GeminiGroq AIReact QueryGitGithubVercel
LoanLink Preview

Overview

LoanLink is an enterprise-grade, full-stack loan management and underwriting ecosystem split across two completely independent repositories: a modern React 19 + Vite client (AH-Muzahid/LoanLink) and a high-throughput Express + MongoDB REST API (AH-Muzahid/LoanLink-backend). Rather than a tightly coupled monorepo, each repository owns its independent Git lifecycle, CI/CD pipeline, and serverless deployment target.

The platform eliminates manual paperwork by automating every stage of the lending lifecycle: dynamic EMI simulation and amortization breakdown, multi-step borrower applications, drag-and-drop underwriting Kanban triage via @hello-pangea/dnd, instant PDF sanction generation via jsPDF, Stripe fee processing, in-app notification feeds, and an interactive AI loan advisor powered by Groq and Google Gemini.

Decoupled Multi-Repo Architecture

LoanLink is architected across two dedicated GitHub repositories (Frontend SPA & Serverless Express Backend) communicating over CORS-secured REST APIs with HTTP-only JWT cookie authentication, role-based route guards (Borrower, Manager, Admin), and automated serverless MongoDB connection pooling.

LoanLink modern loan management and application platform

LoanLink interactive borrower portal with real-time loan discovery, EMI calculation, and application workflow.

Tech Stack

  • React 19 with Vite 6 (ES Modules & SWC)
  • Tailwind CSS v4 + DaisyUI for responsive dark-first financial UI
  • @tanstack/react-query for optimistic mutations and server state cache management
  • @hello-pangea/dnd for interactive drag-and-drop loan triage boards
  • Firebase Authentication with Google OAuth and Email/Password flows
  • Recharts for visual financial analytics and repayment distributions
  • jsPDF & jsPDF-autotable for on-the-fly legal loan sanction & receipt generation
  • PapaParse for 1-click CSV report exports
  • Framer Motion, AOS, and Lenis for smooth UI reveals and buttery scrolling
  • Lucide React for consistent financial icon typography

Feature Breakdown

Drag-and-Drop Underwriting Pipeline

Interactive Kanban board powered by @hello-pangea/dnd enabling loan managers to triage applications between Pending, Under Review, Approved, and Disbursed.

AI Financial Advisor & EMI Engine

Intelligent conversational assistant backed by Groq and Gemini AI coupled with an interactive monthly EMI & amortization schedule generator.

Client-Side PDF Sanction Generation

Instant on-the-fly creation of legally formatted loan sanction letters, amortization tables, and payment receipts using jsPDF with zero server overhead.

Stripe Payment Gateway & RBAC

End-to-end Stripe payment intent workflow for application fees paired with strict 3-tier Role-Based Access Control (Borrowers, Managers, Admins).

LoanLink Interactive EMI Calculator & Amortization Breakdown

Interactive EMI Calculator with dynamic compound interest computation, principal-to-interest breakdown, and repayment schedule dialog.

Platform Interface & Live Telemetry

LoanLink Hero Portal Interface

LoanLink Hero Portal Interface

Welcome to LoanLink borrower home & financial solutions portal.

LoanLink Multi-Category Available Loans Catalog

LoanLink Multi-Category Available Loans Catalog

All available loan schemes across Education, Healthcare, Business, Vehicle, and Agriculture with real-time search.

LoanLink Loan Officer & Manager Dashboard

LoanLink Loan Officer & Manager Dashboard

Manager analytics dashboard: Real-time loan portfolio value (৳92.8L), approval breakdown, and monthly volume tracking.

LoanLink Interactive EMI Calculator

LoanLink Interactive EMI Calculator

Real-time loan amount, tenure, and interest rate calculation sliders with principal breakdown chart.

LoanLink Amortization Repayment Schedule Modal

LoanLink Amortization Repayment Schedule Modal

Comprehensive monthly compound amortization schedule breakdown with 1-click legal PDF download.

Architecture

User Journey

1

Registration & Identity Provisioning

The user registers via Firebase Auth (Email/Password or Google OAuth) and receives a secure, HTTP-only JWT session cookie for subsequent API calls.

2

Loan Discovery & EMI Simulation

Borrowers browse loan schemes (Personal, Business, Education) and simulate tenure, interest rates, and monthly repayments with the interactive EMI calculator.

3

Application Submission & Document Attachment

A structured multi-step application form captures income details, requested amounts, guarantor info, and upload references before dispatching to the API.

4

Manager Review & Kanban Triage

Loan Managers review borrower profiles, drag cards across status columns (Pending → Under Review → Approved/Rejected), and record notes in real-time.

5

Stripe Fee Processing & PDF Generation

Borrowers complete processing fees securely through Stripe and download their official PDF loan sanction agreement with one click.

LoanLink decouples client UI interactions from server data workflows. The React SPA communicates with the Express REST API via authenticated cookies, delegating identity to Firebase Auth, payments to Stripe, and natural language advice to Groq/Gemini AI.

System Architecture & Data Flow
Rendering architecture diagram...

Loan requests submit to POST /applications, get validated, and enter the pending queue. Managers evaluate creditworthiness, mutate status flags via PATCH /applications/:id, and upon approval, trigger automated notification records in MongoDB.

5-Stage Financial Underwriting & Disbursement Pipeline

Complete lifecycle from initial EMI simulation to legal sanction letter download.

Stage 01
Interactive EMIAmortizationReact 19

Loan Simulation & Amortization Breakdown

Borrowers adjust loan principals, interest percentages, and tenures. The engine computes monthly compound EMIs and total payable interest.

Stage 02
Firebase AuthZod ValidationMongoDB

KYC & Multi-Step Application Ingestion

Borrowers submit verified income details, employment documents, and collateral information into the secure pending queue.

Stage 03
@hello-pangea/dndRBAC GuardOptimistic UI

Manager Kanban Underwriting & Risk Scoring

Loan officers triage applications on the drag-and-drop board, verifying credit history and updating status flags in real-time.

Stage 04
Stripe SDKPayment IntentWebhooks

Stripe Processing Fee Settlement

Borrowers finalize application processing charges through Stripe Payment Intents with real-time webhook confirmation.

Stage 05
jsPDFAutoTableClient-Side Render

Automated Legal PDF Agreement Issuance

Upon manager approval, jsPDF dynamically draws official legal sanction letters with repayment schedules directly in the browser.

Financial Security & RBAC Guard Rails

Financial data requires comprehensive identity boundaries and payment tampering safeguards.

RBAC Guard

3-Tier Role-Based Access Control (RBAC)

Strict route guards segregate Borrowers (own loans only), Managers (approval board), and Admins (system revenue & user roles).

Connection Pool

Serverless MongoDB Connection Caching

Connection handles are cached globally across serverless lambda executions to prevent database connection spikes and memory leaks.

Stripe Idempotency

Stripe Webhook Idempotency

Payment receipts are keyed by Stripe paymentIntent ID, preventing duplicate charge records or double loan disbursements.

Financial Platform Benchmarks

Real-world operational speed across critical financial customer touchpoints.

<120ms
PDF Sanction Generation

Client-side PDF compilation with jsPDF (zero server CPU load).

340ms
Stripe Payment Intent

Backend session creation to frontend checkout component mount.

0ms
EMI Simulation Latency

Instant mathematical amortization recalculation on input slider change.

PDF Agreement Architecture: Client-Side jsPDF vs Server-Side Puppeteer

Why LoanLink chose in-browser PDF generation over serverless Chromium rendering.

Dimension / FeatureClient-Side jsPDF EngineServerless Puppeteer / Chromium
Server Memory Footprint0 MB (Runs in browser RAM)500MB+ per Chromium process
Generation LatencyInstant (< 120ms download)3,000ms - 6,000ms cold boot
Infrastructure Cost$0 (Zero server compute costs)Requires dedicated high-RAM lambda
Offline AvailabilityGenerates without server network callFails when backend connection drops

API Endpoints

ResourceMount pointPurpose
AuthPOST /jwt, POST /logoutIssue and clear secure HTTP-only JWT cookies with 7-day lifespan
ApplicationsGET, POST, PATCH /applicationsSubmit multi-step loan applications, fetch borrower history, and triage approval statuses
Loans CatalogGET, POST, PUT, DELETE /loansManage lending schemes, category definitions, interest rates, and loan limits
PaymentsPOST /create-payment-intent, /paymentsStripe payment intent creation, processing fee verification, and transaction ledger
AnalyticsGET /admin/stats, GET /manager/statsAggregated financial insights, loan volume totals, and revenue metrics
NotificationsGET, PATCH /notificationsActivity feeds, status change alerts, and payment receipt notifications

Project Structure

vite.config.js
tailwind.config.js
package.json
vercel.json
main.jsx
App.jsx
Chatbot/LoanAdvisor.jsx
LoanCalculator/AmortizationModal.jsx
Shared/StatusTimeline.jsx
Shared/NotificationBell.jsx
Home/EmiCalculator.jsx
dashboard/ApplyLoan.jsx
dashboard/LoanApplications.jsx
dashboard/AdminAnalytics.jsx
Payment/Checkout.jsx
index.js (Express Server & Route Handlers)
package.json
vercel.json
.env.example

Getting Started

Environment Variables

VITE_API_URL=http://localhost:5000
VITE_FIREBASE_API_KEY=AIzaSy...
VITE_FIREBASE_AUTH_DOMAIN=loanlink-auth.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=loanlink-auth
VITE_FIREBASE_STORAGE_BUCKET=loanlink-auth.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=...
VITE_FIREBASE_APP_ID=1:...
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...
VITE_GROQ_API_KEY=gsk_...
VITE_GEMINI_API_KEY=AIzaSy...

Running Locally

Requires Node.js 18+, npm/yarn, MongoDB Atlas, Firebase Project, and Stripe API keys.

git clone https://github.com/AH-Muzahid/LoanLink.git
cd LoanLink
npm install
npm run dev      # launches on http://localhost:5173

Deployment

  • Frontend (Vercel) — Git linked to AH-Muzahid/LoanLink with single-page app rewrite routes.
  • Backend (Vercel) — Git linked to AH-Muzahid/LoanLink-backend with serverless Express handler and cached MongoDB Atlas pooling.

Frequently Asked Questions

See it in action

Experience the loan application pipeline, interactive EMI calculator, and manager dashboard at the Live Application.

• OPEN TO WORK • OPEN TO WORK
star
OPEN TO WORK · OPEN TO WORK ·
wingsLogo

FROM CONCEPT TO CREATION
LET'S MAKE IT HAPPEN!

I'm available for full-time roles & freelance projects.

I thrive on crafting dynamic web applications, and
delivering seamless user experiences.