⚠️ This is an educational portfolio prototype. It uses synthetic data only. No real loans, no real credit decisions, no real personal data is collected or processed. Not RBI-compliant. Not suitable for production.
Built by Vivek Nishad as a product-management portfolio project demonstrating fintech domain knowledge, responsible design, and full-stack implementation.
- Product discovery and user research methodology
- Fintech and digital-lending domain understanding (RBI Digital Lending Guidelines reference)
- Transparent UX — no dark patterns, plain-language cost disclosure
- Risk model thinking with explainable decisions
- Privacy-conscious data collection and consent design
- Full-stack implementation: Next.js 14 + FastAPI + PostgreSQL
fairloan/
├── frontend/ Next.js 14 (App Router) + Tailwind CSS + shadcn/ui
├── backend/ FastAPI + SQLAlchemy + Alembic + PostgreSQL/SQLite
└── docs/ Product artefacts — PRD, persona, journey map, research
Frontend → Backend communication is via a typed REST API (/api/v1/).
All monetary calculations use Python's Decimal type — no floating-point errors.
All data is synthetic. The is_demo flag is set to true on every record.
| Tool | Version |
|---|---|
| Node.js | ≥ 18.17 |
| Python | ≥ 3.11 |
| PostgreSQL | ≥ 15 (or SQLite for local dev) |
| npm | ≥ 9 |
git clone https://github.com/YOUR_USERNAME/fairloan.git
cd fairloancd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Edit .env — set DATABASE_URLRun database migrations:
alembic upgrade headSeed synthetic data:
python -m app.seed.seedStart the API server:
uvicorn main:app --reload --port 8000API docs available at: http://localhost:8000/docs
cd ../frontend
npm install
cp .env.example .env.local # Set NEXT_PUBLIC_API_URL=http://localhost:8000
npm run devApp available at: http://localhost:3000
cd backend
pytest tests/ -v| Command | What it does |
|---|---|
npm run dev |
Start Next.js dev server |
npm run build |
Production build |
npm run lint |
ESLint |
uvicorn main:app --reload |
Start FastAPI dev server |
pytest tests/ -v |
Run all backend tests |
alembic upgrade head |
Apply all migrations |
python -m app.seed.seed |
Load synthetic seed data |
- Comprehension before conversion — users cannot proceed past any screen without having the information they need to make an informed decision.
- Prototype honesty — every screen carries a persistent disclaimer. No "instant approval" language.
- No dark patterns — no pre-checked consent, no countdown timers, no shame language.
- Privacy-first data model — analytics events are session-scoped, not user-linked by default.
RBI Digital Lending Guidelines (Master Directions):
https://www.rbi.org.in/Scripts/BS_ViewMasDirections.aspx?id=12957
All regulatory references in this prototype are labelled as either:
- Regulatory requirement — cited from the official source above
- Recommended product practice — industry standard, not legally mandated
- Portfolio-project assumption — prototype design choice
| Service | Platform |
|---|---|
| Frontend | Vercel (free tier) |
| Backend | Render (free tier) |
| Database | Render PostgreSQL or SQLite for local |
This project is one of three fintech portfolio pieces:
- FilingLens — Agentic RAG system over SEC 10-K filings
- FairLoan — Transparent digital lending prototype (this repo)
- Liquidity Risk Engine — NSE/AMFI quantitative analysis
Last updated: September 2026