pythonloanladder's People
pythonloanladder's Issues
Find a GUI framework that integrates with a graphing/plotting framework
A core component of this application is the ability to view payment schedules in graph or chart form. Therefore the GUI we end up using for the final product should (ideally) support graphing natively without opening 500 different windows from 399 different frameworks.
Lifecycle Simulation
Making payments on a Loan has a life-cycle, the more payments you make, the lower the balance, the more you've paid to principal and interest. I think this task is tightly coupled to the overall functionality of the program, and would be a key component when it's finished.
To start, there should be some kind of functionality to simulate making payments over time and the ability to change term length/additional payments/etc.
This would probably best be implemented from the start as a console interface, then as the GUI arises, it can be integrated.
Implement a basic web app with all the functionality currently offered by the program.
US: As a user, I'd like to be able to access PLL on the web.
Flask is the framework of choice for this issue, and will be used to develop a basic web application.
Add loan creation/modification controls to the GUI
The GUI is working as of now, but users need to be able to interact with it.
Functionality required:
- Text Field or Slider to add Loan amount to be graphed
- Slider or Choice box to set Loan repayment period
- Labels to view amount paid on principal and interest
Moving forward
Python is a rich expressive language, but has some pretty serious drawbacks in terms of full-stack application development.
I had hoped that this project could turn into a decent desktop application or maybe a web app someday, but the more that I learn about Python the more I think that I’m trying to make it something that it’s not.
I hate that I’m saying this but I think perhaps the .Net family of development tools will be my next area of research because it seems to be all inclusive, similar to the Java family.
Class representing the repayment (amortization) of a loan
As it stands, a Loan object contains information about a term as well as functionality which is used to calculate monthly payments and amortization schedules. Since a Loan is given as a single object from a lending institution with only a principal amount and an interest rate, in the spirit of OOP (as well as financing) should the repayment be separate from the loan itself?
Implement sorting of loans based on other criteria
US: As a user, I'd like to sort my loans in some order other than by interest rate.
From what I understand, there are different payment schemes and prioritization methods to pay off loans. Ex: snowball method.
This might necessarily need to be updated and split after research is done.
Will update with research.
Loan Consolidation/Refinancing
As a user, I'd like to see the effect of loan consolidation/refinance on my existing loans.
Loan consolidation is basically taking out a loan to pay off your other loans, thereby reducing the number of total payments which need to be made.
Consolidation has a number of things which need to be represented,
- The possible interest rates that could be given and their profitability
- Term length changes
- Monthly payment changes
- Interest payment changes
- Savings (or losses)
Class needed to represent a collection of loans.
After removing all methods from LoanExcelDAO that are related to a collection of loans in commit 7c61054, it now stands that there is no functionality to operate on a collection of loans. Since the Loan Ladder methodology is based on the quickest way to pay off a collection of loans, the missing functionality is core to the operation of the program.
Implement basic loan simulation
US: As a user, rather than viewing new loan information, I'd like to run the application on loans that may already be in the payment process.
Loans stick with you for a long time, like an annoying pet. This application would greatly benefit the end user if she could pick it up and enter her own loan information about where she's at in the payment process and she could see how she's doing.
Some information that could be shown:
-
Based on how many payments she's made, whether she's ahead or behind the schedule
- Also how many payments she has left to make
-
A graph of where she's at in the loan payment process and how much longer she has left
Interactive plotting with additional payments
US: As a user I'd like to see the effect of additional payments on the overall lifetime of loan repayment.
Any money in excess of the minimum monthly loan payment is paid directly towards principal. This greatly reduces the amount of money paid towards interest and shortens the lifetime of the loan repayment.
On the GUI this would be controlled by something like a slider or text field (or both?), and would be represented on the repayment schedule as a shortened term and lower overall interest paid.
Without the GUI it will have to be set manually as a field like "Additional payment: 50" and replotted every time the payment value would change.
Implement more functionality related to loan comparison
The methods for comparing two loans side by side are already implemented, now it's a matter of adding UI components and interaction with the user to properly get information from the user and display those loan comparisons.
Make the application more interactive
The point of this application is to act as a personal finance assistant specifically related to loans. It needs to be interactive and there need to be things to change, loan amounts, terms, payments, etc.
From the start it would be easiest to start with a console UI, then gravitate toward a GUI over time.
UT - RepaymentSchedule needs to be more thoroughly tested.
Unit tests needed. There is currently one test case for RepaymentSchedule.get_payment_schedule, but there are many ways (up to 4) that this method can be called in happy cases, and many more unhappy cases that could arise.
In addition, I've put this off when considering test cases, is it necessary to test larger term payment schedules? It's much more simple to test smaller terms like a single year. I assume that if 12 months can be accurately calculated, then 12 years could be reliable as well.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.