Giter Club home page Giter Club logo

pymortgage's Introduction

pymortgage

The pymortgage application is an application that provides the ability to dynamically compare multiple different types of mortgages. There are lots of different mortgage calculators out there, but I've found none that allow you to do comparisons as granularly as this.

The project source is hosted here http://github.com/csutherl/pymortgage and I deploy a development build as I make major changes to on Openshift here http://pymortgage-csutherl.rhcloud.com. Feel free to visit and test it out!

For the latest version, to contribute, and for more information, please visit the project pages on GitHub, or the Openshift node.

Technologies used

I used this project to learn HTML/CSS/JS with the Bootstrap and D3 charting libraries. In addition to that, I have also increased my understanding of python through this project and learned a bit about Openshift and how it works. The backend API is python which produces the data for the front end UI to chart and display.

Reporting bugs

Please report any bugs or requested enhancements by opening an issue in the GitHub Issue Tracker.

Testing locally

If you'd like to run this locally, clone the current master (development):

git clone git://github.com/csutherl/pymortgage.git

and execute the following commands:

python setup.py install
python pymortgage/server/cherrypy_server.py

This will start the CherryPy server which you can hit by http://localhost:4001 (by default).

pymortgage's People

Contributors

csutherl avatar sferich888 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pymortgage's Issues

missing legend pieces

To reproduce, add 2 mortgages, remove one. Look at the single chart that it generates. The legend will have some keys that are "Mortgage N" and "Mortgage N Insurance" and "Mortgage N Taxes". Those need to be refreshed somehow when you remove the second mortgage.

Add tabs for graph and table

Add tabs on the graph side so that users can switch between table view and graph (this also means that I have to add a table view :))

Loan statistics

Mortgage stats would be nice to have presented instead of calculated on the client side. Things like:

Total interest paid
Total principal (including extra) paid
Total amount paid
Total extra paid
Total interest saved by paying extra(?)
Average projected payment

trying to calc 15 year mortgage borks

  File "/pymortgage/pymortgage/server/amortization_schedule.py", line 139, in create_yearly_schedule
    group_schedule['balance'] = year_end_balance[key]
KeyError: 2

Fix term

Term seems to be wrong. Its always year.

Calls to the year API break

Cherrypy throws a 500 when you try year = 30 on the form. I think it has to do with me creating a monthly and yearly schedule at the same time. Need to review that logic.

Split charts when more than 1 mortgage

We should have 1 chart for one mortgage, 2 charts for 2 mortgages (one for balance and another of other metrics) and for 3+ mortgages, each metric gets its own chart for comparison.

Correct calculation

There is a problem in the calc. Checking against actual numbers, I noticed that I was allowing the amortized amount due to decrease. That doesnt' seem to happen on a real mortgage, so instead of allowing the amount due to decrease, we should take that and apply it as extra payment. That should show that we can actually pay the loan off sooner instead of amortizing every payment all the way to the end :) That is the reason why the chart falls off in the last months/years.

Total loan value

Using loan amounts with cents wigs out and breaks. Haven't checked the backend error yet, but the chart never returns.

Version information page?

I think it would be neat to see which commit hash/tag that the openshift version is running and how many commits behind master that is. Maybe that would give a sense of coming updates without actually having to check out the github issues site?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.