Skip to content

darshilkadiwala/tools

Repository files navigation

EMI Calculator

A local-first loan and EMI schedule manager built with React, TypeScript, and Vite. Track home, car, education, and personal loans with support for moratorium periods, tranche disbursements, prepayments, step-ups, and interest rate changes.

Features

  • Create and manage multiple loans with detailed configuration
  • Generate EMI schedules with moratorium, adjustment, and disbursement rows
  • Apply prepayments, step-ups, and interest rate modifications
  • Export schedules to CSV
  • Dark/light themes with customizable color palettes
  • All data stored locally in the browser via IndexedDB (Dexie)

Tech Stack

  • React 19 + TypeScript
  • Vite (rolldown-vite)
  • React Router for navigation
  • Dexie for IndexedDB persistence
  • shadcn/ui + Tailwind CSS 4 for UI
  • React Hook Form + Zod for forms
  • Vitest for testing

Getting Started

Prerequisites

Install

pnpm install

Development

pnpm dev

Build

pnpm build

Preview production build

pnpm preview

Lint

pnpm lint

Test

pnpm test

Watch mode:

pnpm test:watch

Project Structure

src/
├── pages/           # Route-level screens
├── routes.tsx       # Lazy-loaded route definitions
├── components/
│   ├── loan/        # Loan domain UI
│   ├── emi/         # EMI schedule UI
│   ├── modifications/  # Prepayment and step-up dialogs
│   ├── layout/      # App shell (sidebar, layout, error boundary)
│   └── ui/          # shadcn primitives
├── hooks/           # Reusable stateful logic
├── contexts/        # React context providers
├── lib/             # Business logic, persistence, utilities
├── types/           # Shared domain types
└── config/          # App configuration

Data Storage

Loan data, EMI schedules, and modifications are persisted in the browser using IndexedDB via Dexie. No server or account is required — data stays on your device.

License

Private project.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors