From b31e0335c614a11c24896a4b44078ab743ad9129 Mon Sep 17 00:00:00 2001 From: Ken Zou Date: Mon, 4 Sep 2017 17:34:29 -0400 Subject: [PATCH 1/2] some message --- index.html | 2 ++ js/main.js | 42 ++++++++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/index.html b/index.html index 0364f0343..a9c1fb3d4 100644 --- a/index.html +++ b/index.html @@ -29,6 +29,8 @@

Mortgage Calculator

Monthly Payment:

+

Monthly Rate:

+ diff --git a/js/main.js b/js/main.js index 6565a8969..82f82b448 100644 --- a/js/main.js +++ b/js/main.js @@ -1,15 +1,29 @@ -var calculateMonthlyPayment = function (principal, years, rate) { - if (rate) { - var monthlyRate = rate / 100 / 12; - } - var monthlyPayment = principal * monthlyRate / (1 - (Math.pow(1 / (1 + monthlyRate), years * 12))); - return monthlyPayment; -}; - -document.getElementById('calcBtn').addEventListener('click', function () { - var principal = document.getElementById("principal").value; - var years = document.getElementById("years").value; - var rate = document.getElementById("rate").value; - var monthlyPayment = calculateMonthlyPayment(principal, years, rate); - document.getElementById("monthlyPayment").innerHTML = monthlyPayment.toFixed(2); +import Mortgage from './mortgage2'; +document.getElementById('calcBtn').addEventListener('click', () => { + let principal = document.getElementById("principal").value; + let years = document.getElementById("years").value; + let rate = document.getElementById("rate").value; + let mortgage = new Mortgage(principal, years, rate); + document.getElementById("monthlyPayment").innerHTML = mortgage.monthlyPayment.toFixed(2); + document.getElementById("monthlyRate").innerHTML = (rate / 12).toFixed(2); + let html = ""; + mortgage.amortization.forEach((year, index) => html += ` + + ${index + 1} + ${Math.round(year.principalY)} + +
+
+
+
+
+
+ + ${Math.round(year.interestY)} + ${Math.round(year.balance)} + + `); + document.getElementById("amortization").innerHTML = html; }); \ No newline at end of file From 7da431ed05d853f4d938c431a8c5484897a0e31a Mon Sep 17 00:00:00 2001 From: ken zou Date: Mon, 4 Sep 2017 17:40:08 -0400 Subject: [PATCH 2/2] Add files via upload --- mortgage.js | 28 ++++++++++++++++++++++++++++ mortgage2.js | 35 +++++++++++++++++++++++++++++++++++ rate-service-mock.js | 19 +++++++++++++++++++ ratefinder.html | 10 ++++++++++ ratefinder.js | 9 +++++++++ webpack.config.js | 28 ++++++++++++++++++++++++++++ 6 files changed, 129 insertions(+) create mode 100644 mortgage.js create mode 100644 mortgage2.js create mode 100644 rate-service-mock.js create mode 100644 ratefinder.html create mode 100644 ratefinder.js create mode 100644 webpack.config.js diff --git a/mortgage.js b/mortgage.js new file mode 100644 index 000000000..6c17e8e1c --- /dev/null +++ b/mortgage.js @@ -0,0 +1,28 @@ +export let calculateMonthlyPayment = (principal, years, rate) => { + let monthlyRate = 0; + if (rate) { + monthlyRate = rate / 100 / 12; + } + let monthlyPayment = principal * monthlyRate / (1 - (Math.pow(1/(1 + monthlyRate), + years * 12))); + return {principal, years, rate, monthlyPayment, monthlyRate}; +}; + +export let calculateAmortization = (principal, years, rate) => { + let {monthlyRate, monthlyPayment} = calculateMonthlyPayment(principal, years, rate); + let balance = principal; + let amortization = []; + for (let y=0; y new Promise((resolve, reject) => { + if (rates) { + resolve(rates); + } else { + reject("No rates"); + } +}); \ No newline at end of file diff --git a/ratefinder.html b/ratefinder.html new file mode 100644 index 000000000..ae60d5f8a --- /dev/null +++ b/ratefinder.html @@ -0,0 +1,10 @@ + + + + + + +
+ + + diff --git a/ratefinder.js b/ratefinder.js new file mode 100644 index 000000000..ca5272497 --- /dev/null +++ b/ratefinder.js @@ -0,0 +1,9 @@ +import * as service from './rate-service-mock'; + +service.findAll() + .then(rates => { + let html = ''; + rates.forEach(rate => html += `${rate.name}${rate.years}${rate.rate}%`); + document.getElementById("rates").innerHTML = html; + }) + .catch(e => console.log(e)); \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 000000000..012425076 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,28 @@ +var path = require('path'); + var webpack = require('webpack'); + + module.exports = { + entry: { + app: './js/main.js', + ratefinder: './js/ratefinder.js' +}, +output: { + path: path.resolve(__dirname, 'build'), + filename: '[name].bundle.js' +}, + module: { + loaders: [ + { + test: /\.js$/, + loader: 'babel-loader', + query: { + presets: ['es2015'] + } + } + ] + }, + stats: { + colors: true + }, + devtool: 'source-map' + }; \ No newline at end of file