Loan Investment Supermarket
Peer-to-Peer Lending Marketplace
A production-grade peer-to-peer lending platform that connects borrowers who need loans directly with investors who have capital to lend. This is not a tutorial CRUD application — it has real financial domain logic including amortization engines, installment state machines, background payment processing, late payment detection, default handling, and multi-role dashboards designed for regulatory compliance.
Built with ASP.NET Core 10, Blazor WebAssembly, Clean Architecture, CQRS + MediatR, SQL Server, SignalR, and a complete SaaS-ready feature set including 6 user roles, Stripe integration, and 30+ reusable Blazor components.
View on GitHubPlatform at a Glance
6
User Roles
30+
Blazor Components
5
Solution Layers
30+
Unit Tests
11
Doc Files
34
Onboarding Docs
Core Lending Lifecycle
The platform manages the complete peer-to-peer lending lifecycle. Borrowers apply, get matched with products, upload KYC documents, and receive decisions. CRM managers review and approve. Lenders fund approved loans from their capital pool. The system generates amortization schedules, processes payments, detects late payments, and handles defaults — all through domain-driven state machines that prevent invalid transitions.
Borrower Application
Multi-step wizard: loan parameters → product matching → selection → KYC document upload → review → submit
CRM Review Workflow
Approve, reject, or request additional documents with full audit trail and mandatory reason capture
Lender Funding
Review approved applications, accept or decline, capital management, and funding confirmation
Amortization Engine
Standard EMI formula with rounding correction on final installment — principal always balances to zero
Payment Processing
Full, partial, and early payoff. Background IHostedService runs daily to detect late payments and apply fees
Default Detection
3+ consecutive missed payments triggers default. Grace periods, fee application, and loan restructuring supported
Multi-Role Dashboards
Each user role sees a completely different experience. Resource-filtered queries (IResourceFilteredQuery) auto-scope data by authenticated user — lenders see only their portfolio, borrowers see only their loans, and administrators see the full platform picture.
Admin Command Centre
- ▸ Real-time platform metrics: total funding, approval rates, pipeline
- ▸ Borrower and lender management with verification workflows
- ▸ Loan product catalogue with Draft → Approval → Published lifecycle
- ▸ Role management with 6 roles and module-level permissions
Borrower Dashboard
- ▸ Application tracking with status updates
- ▸ Active loans with payment schedules and due dates
- ▸ Loan calculator for pre-application planning
- ▸ Payment history and upcoming payment reminders
Lender Portfolio
- ▸ Funding queue with filter by product, amount, and credit tier
- ▸ Portfolio overview: funded amount, outstanding, expected income
- ▸ Earnings tracking: interest, late fees, projected returns
- ▸ ROI analysis, yield metrics, and lender comparison benchmarks
Engineering Philosophy
- ▸ Domain logic lives in the domain — not controllers or stored procedures
- ▸ State machines enforce correctness — invalid transitions are impossible
- ▸ Every mutation is auditable — who did what, when, and why
- ▸ Background processing handles time-sensitive operations independently
Technology Stack
Backend
Frontend
Architecture
Operations
What This Demonstrates About My Engineering
Interested in this level of engineering?
I am available immediately for senior developer, technical lead, and contract opportunities across the UK.