How kandatiranjithkumarreddy/borrower-copilot works
Borrower Copilot is a client-side loan self-assessment and negotiation aid. A borrower starts on the landing page, enters a profile and loan details in the adaptive questionnaire, and the app passes that input to a deterministic assessment engine. The engine derives affordability, loan amounts, rates, EMI/APR, stress resilience, confidence, and a borrowing recommendation, then builds negotiation guidance for results presentation. The README documents these capabilities; some UI and engine modules were not sampled, so their internal links are shown only where the excerpts or README support them.
Main entry points: index.ts Assessment engine · App.tsx Screen coordinator · recommendation.ts Borrow recommendation · LandingPage.tsx Landing page
Components 19
Borrower experience
- Landing page
src/components/LandingPage.tsx - Adaptive questionnaire
src/components/Questionnaire.tsx - Demo personas
src/utils/personas.ts - Screen coordinator
src/App.tsx
Assessment orchestration
- Assessment engine
src/engine/index.ts
Financial analysis
- Affordability
src/engine/affordability.ts - Fair rate bands
src/engine/interestRate.ts - APR solver
src/engine/apr.ts - EMI calculations
src/engine/emi.ts - Loan capacity
src/engine/loanCapacity.ts - Stress testing
src/engine/stressTest.ts
Decision and guidance
- Borrow recommendation
src/engine/recommendation.ts - Confidence scoring
src/engine/confidence.ts - Negotiation guidance
src/engine/negotiation.ts
Results presentation
- Results page
src/components/ResultsPage.tsx - Negotiation card
src/components/NegotiationCard.tsx - Financial formatters
src/utils/formatters.ts - Brand header
src/components/HeaderBrand.tsx
Other components
- Borrower
Connections 28
- Borrower → Landing page: opens
README.md - Landing page → Screen coordinator: starts assessment
src/App.tsx - Landing page → Demo personas: loads personas
src/components/LandingPage.tsx - Screen coordinator → Landing page: renders
src/App.tsx - Screen coordinator → Adaptive questionnaire: renders
src/App.tsx - Screen coordinator → Assessment engine: assesses input
src/App.tsx - Screen coordinator → Results page: renders results
src/App.tsx - Adaptive questionnaire → Screen coordinator: submits input
src/App.tsx - Assessment engine → Affordability: calculates capacity
src/engine/index.ts - Assessment engine → Fair rate bands: calculates rates
src/engine/index.ts - Assessment engine → APR solver: calculates APR
src/engine/index.ts - Assessment engine → EMI calculations: calculates EMI
src/engine/index.ts - Assessment engine → Loan capacity: calculates amounts
src/engine/index.ts - Assessment engine → Stress testing: tests resilience
src/engine/index.ts - Assessment engine → Borrow recommendation: evaluates decision
src/engine/index.ts - Assessment engine → Confidence scoring: scores confidence
src/engine/index.ts - Assessment engine → Negotiation guidance: generates points
src/engine/index.ts - Borrow recommendation → Affordability: uses affordability
src/engine/recommendation.ts - Borrow recommendation → EMI calculations: calculates payment
src/engine/recommendation.ts - Borrow recommendation → Fair rate bands: uses rate band
src/engine/recommendation.ts - Borrow recommendation → Loan capacity: checks safe amount
src/engine/recommendation.ts - Stress testing → Affordability: uses income
src/engine/stressTest.ts - Stress testing → EMI calculations: recalculates EMI
src/engine/stressTest.ts - Stress testing → Fair rate bands: tests rate shock
src/engine/stressTest.ts - Results page → Negotiation card: presents card
README.md - Negotiation card → Financial formatters: formats values
src/components/NegotiationCard.tsx - Landing page → Brand header: renders header
src/components/LandingPage.tsx - Adaptive questionnaire → Brand header: renders header
src/components/Questionnaire.tsx