Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scrubmx/jquery.loan-calculator
Customizable Amortized Loan Calculator jQuery Plugin
https://github.com/scrubmx/jquery.loan-calculator
jquery plugin
Last synced: 18 days ago
JSON representation
Customizable Amortized Loan Calculator jQuery Plugin
- Host: GitHub
- URL: https://github.com/scrubmx/jquery.loan-calculator
- Owner: scrubmx
- License: mit
- Created: 2015-12-17T01:09:20.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-11-22T14:17:42.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T11:35:19.410Z (about 1 month ago)
- Topics: jquery, plugin
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/jquery.loan-calculator
- Size: 136 KB
- Stars: 12
- Watchers: 4
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# jQuery Loan Calculator
[![Build Status](https://travis-ci.org/scrubmx/jquery.loan-calculator.svg?branch=master)](https://travis-ci.org/scrubmx/jquery.loan-calculator)
[![Code Climate](https://codeclimate.com/github/scrubmx/jquery.loan-calculator/badges/gpa.svg)](https://codeclimate.com/github/scrubmx/jquery.loan-calculator)
[![License](https://poser.pugx.org/pugx/badge-poser/license.svg)](https://github.com/scrubmx/jquery.loan-calculator/blob/master/licence.txt)## Basic Example
* Create basic html with the following structure:
```html
```* Create new instance:
```js
var $calculator = $('#widget').loanCalculator();
```* You can initialize with an options object:
```js
$('#widget').loanCalculator({
loanAmount: 50000,
loanDuration: 12,
...
});
```## Event handling
The plugin automatically handles all the `mousemove` and `change` input events for you.
#### update
* If you need to force the plugin to recalculate values use the `update` method:
```js
$calculator.loanCalculator('update');
```* If you need to respond to other events you can call the `update` method inside your own event handler:
```js
$('#selector').on('myEvent', function(){
$calculator.loanCalculator('update');
});
```* You can pass overrides object as a second argument:
```js
$calculator.loanCalculator('update', {
loanAmount: $('#other-loan-amount').val(),
creditScore: 'A',
valueAddedTax: '16%'
});
```#### loan:update
* The plugin fires `loan:update` event when update method is called.
```js
// Event handler for the update method.
$calculator.on('loan:update', function(e) {
//...
});
```## Amortization Schedule
You can generate the amortization schedule as a json object:
```js
var json = $calculator.loanCalculator('schedule');
```Example output:
```json
[
{
"balance": "$5,042.89",
"payment": "$5,130.15",
"principal": "$4,957.11",
"interest": "$149.17",
"tax": "$23.87"
},
{
"balance": "$0.00",
"payment": "$5,130.15",
"principal": "$5,042.89",
"interest": "$75.22",
"tax": "$12.04"
}
]
```## Options
* **loanAmount**
- Default: `50000`
- Type: Number|String
- Default Input: `#loan-amount`
- Description: The loan amount.
* **loanDuration**
- Default: `12`
- Type: Number|String
- Default Input: `#loan-duration`
- Description: The loan duration expressed in months.
* **creditScore**
- Default: `A`
- Type: String
- Default Input: `#credit-score`
- Description: If no interest rate is provided, we search the `creditScore` key in the `CREDIT_RATES` object and use that interest rate.
* **creditRates**
- Default: See default credit rates table
- Type: Object
- Description: The credit rates that will be used for the given `creditScore`
* **interestRate**
- Default: None
- Type: Number|String
- Description: (Number) The annual interest rate for the loan.
- Note: This value will override the `creditScore` option.
* **paymentFrequency**
- Default: 'monthly'
- Type: String
- Description: (String) The frequency of payments for the loan.
- Note: This option changes the interpretation what loanDuration means (12 weeks or 12 months)
* **valueAddedTax**
- Default: `0`
- Type: Number|String
- Description: Value-added tax (VAT).
* **serviceFee**
- Default: `0`
- Type: Number|String
- Description: (Number) The loan fees and commissions total.
* **loanAmountSelector**
- Default: `#loan-amount`
- Type: String (CSS selector)
- Description: Input where the user will choose the loan amount.
* **loanDurationSelector**
- Default: `#loan-duration`
- Type: String (CSS selector)
- Description: Input where the user will choose the loan duration.
* **creditScoreSelector**
- Default: `#credit-score`
- Type: String (CSS selector)
- Description: Input where the user will choose the credit score.
* **selectedAmount**
- Default: `#selected-amount`
- Type: String (CSS selector)
- Description: Element to display the selected amount.
* **selectedDuration**
- Default: `#selected-duration`
- Type: String (CSS selector)
- Description: Element to display the selected duration.
* **selectedScore**
- Default: `#selected-score`
- Type: String (CSS selector)
- Description: Element to display the selected credit score.
* **loanTotalSelector**
- Default: `#loan-total`
- Type: String (CSS selector)
- Description: Element to display the resulting total loan cost.
* **interestTotalSelector**
- Default: `#interest-total`
- Type: String (CSS selector)
- Description: Element to display the resulting total interest amount paid for the loan.
* **taxTotalSelector**
- Default: `#tax-total`
- Type: String (CSS selector)
- Description: Element to display the resulting total tax amount paid for the loan.
* **paymentSelector**
- Default: `#payment`
- Type: String (CSS selector)
- Description: Element to display the periodic payment amount.
* **totalAnnualCostSelector**
- Default: `#total-annual-cost`
- Type: String (CSS selector)
- Description: Element to display the resulting total annual cost (CAT).
* **serviceFeeSelector**
- Default: `#service-fee`
- Type: String (CSS selector)
- Description: Element to display the service fee total.## Default credit rates
| Grade | Value |
| ----- | ----- |
| A | 5.32 | A1 |
| B | 8.18 | B1 |
| C | 12.29 | C1 |
| D | 15.61 | D1 |
| E | 18.25 | E1 |
| F | 21.99 | F1 |
| G | 26.77 | G1 |## Development Setup
* Clone the repository
```bash
git clone [email protected]:scrubmx/jquery.loan-calculator.gitcd jquery.loan-calculator
```* Install dependencies:
```bash
npm install
```* Run the tests:
```bash
npm test
```## Todo
* Accept the following as options:
- creditScores (URL)
- minimumLoan
- minimumDuration## License
jQuery Loan Calculator is open-sourced software licensed under the [MIT license](https://github.com/scrubmx/jquery.loan-calculator/blob/master/licence.txt)