at4260 / inbestment Goto Github PK
View Code? Open in Web Editor NEWFinancial planning tool
Financial planning tool
Break the classes in model.py into separate files
Move the functions in utils.py into the appropriate classes
http://stackoverflow.com/questions/7478403/sqlalchemy-classes-across-files
/input
User inputs a string instead of a number
User leaves a field blank
/login and /create
User inputs an invalid email
Validate all inputs on both the front end AND bank end.
For design purposes- similar to Betterment:
Will only load relevant questions. Example: if user selects that company does not have a 401k plan, then don't need to ask if there is a 401k match.
This will also help with data validation, so user cannot input any match or salary percentages if there is no 401k plan.
Add a slider to the investments page to allow user to see the difference between Conservative, Moderate, and Aggressive portfolios.
http://www.eyecon.ro/bootstrap-slider/
Don't allow any updates to the database. Just a way to view the portfolios and performance.
Pulling "MX_FB" instead of "FB"
Need to parse the ticker (will depend on which database I choose to source from- Google or Yahoo)
Example here showing extension of ticker ("NYSEARCA_VTI"):
https://github.com/at4260/FinancialApp/blob/master/seed_data/sample_ticker_data.txt#L5
Location of code to be fixed:
https://github.com/at4260/FinancialApp/blob/master/seed.py#L28
From issue #9:
Note: currently the API is only set up to take TD Ameritrade accounts and I am assuming that the account type is always savings. May add a drop down feature to allow input for a few banking institutions.
May also want to investigate more accurate account type report (API currently does not match up with test account type). -- will probably just keep the assumption that all accounts entered will be categorized as savings.
If user already has saved inputs and wants to update their inputs, I want the boxes to autofill with their inputs so they can just make the necessary changes and not need to re-input everything over again.
Need to set the value = (pull stored data), but default to blank when the user is entering in data for the first time.
https://github.com/at4260/FinancialApp/blob/master/templates/inputs.html#L5
This means that FinancialApp doesn't have to check-in the bootstrap code as part of its repository.
See http://getbootstrap.com/getting-started/ for more detail.
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
Continuation of issue #13, but not urgent because there are no other test accounts to use.
When there is only one account per user domain, then the Intuit API and Python library aggcat returns:
<AggCatResponse 201>
<Investmentaccount object @ ----->
This is one object and allows attributes to be called on it.
However, when the user domain has multiple accounts (ex: Chase login/pw with a checking account, credit card, mortgage, etc), then aggcat returns:
<AggCatResponse 201>
<Accountlist object @ ----->
The aggcat documentation states that it is supposed to return this:
<Accountlist object [<Investmentaccount object @ 0x1090c9bd0>,<Loanaccount object @ 0x1090c9890> ...] @ 0x1090c9b10>
This allows the user to itierate through the list of accounts and then call attributes on it.
Currently, <Accountlist object @ ----->
does not allow me to itierate through the list or call attributes, so I am not able to pull the account information from each account.
The authentication process (challenge response) will have a similar issue. Without being able to see the list of challenge questions, I won't be able to respond and authenticate the account.
Aggcat documentation:
https://aggcat.readthedocs.org/en/latest/api.html
Aggcat github:
https://github.com/glenbot/python-aggcat
Currently, I am only testing the graph display for one fund (hard-coded).
https://github.com/at4260/FinancialApp/blob/master/controller.py#L250
Also, there is too many data where the x-axis has too many labels. This is a known ChartJS issue.
https://github.com/at4260/FinancialApp/blob/master/templates/investments.html#L12
Will need to:
A user who has not inputted financial data has NONETYPE stored in the database for those fields. As a result, going to /profile causes the page to error out.
https://github.com/at4260/FinancialApp/blob/master/templates/base.html#L37
Got the Intuit API calls to work and pull account data. Data is being saved into database.
Need to query the database on the "inputs" route to be able to incorporate into individual assets. Also need to direct user to route to enter in necessary bank information.
Note: currently the API is only set up to take TD Ameritrade accounts and I am assuming that the account type is always checking. May add a drop down feature to allow input for a few banking institutions. May also want to investigate more accurate account type report (API currently does not match up with test account type).
https://github.com/at4260/FinancialApp/blob/master/controller.py#L56
This is done to give more visibility into features and bugs that need to be resolved.
When user is on "/profile", they are seeing their saved user inputs. The route is currently taking them to "/investments", but I would like for it to route to "/results" instead.
https://github.com/at4260/FinancialApp/blob/master/templates/profile_inputs.html#L19
However, "/results" route calls the arguments entered in the input fields, which were skipped since user has already entered in their inputs previously. Need two conditions: 1) if user is inputting data for the first time, pull the data using request.args.get or 2) if user has saved data, pull data from database and display results.
https://github.com/at4260/FinancialApp/blob/master/controller.py#L78
Continuation of issue #20
Currently, each question renders a new template each time. I would like to be able to do this via AJAX.
Would need to:
Create an event handler on each "Next" question button and when clicked, make post request to the route. Send JSON back and put the routes in Javascript.
Allows for user to compare portfolio performance to benchmarks or other individual stocks/funds
Similar to Google Finance functionality to either select pre-selected tickers or to add your own:
Can either:
Right now some of the templates are reintroducing <html>
and <head>
tags.
https://github.com/at4260/FinancialApp/blob/master/templates/login.html#L5
Line graph currently has aggregated total performance for the portfolio.
Would also like to show individual funds that make up the portfolio in the graph:
9e96aaf#diff-7a315c65deca2c033ce485bfa9de4f4aR304
The LICENSE
files lets users of the app know under which circumstances they are able to use, reuse, change or redistribute the code.
This is not urgent, but should be addressed at some point.
Here are some good articles about Software Licenses:
I like MIT because it basically allows anybody to use it, without making me liable for possibly broken code!
Here are some example from the projects you are familiar with:
Let me know if you have any questions about this!
Right now some of the strings are hardcoded in English, making it difficult to port to a different language.
Check out https://pythonhosted.org/Flask-Babel/
Probably should add one explaining what this project does.
Need to remove secret key when app deploys:
https://github.com/at4260/FinancialApp/blob/master/controller.py#L12
Using example tickers right now, need to populate ticker_list with the tickers in the profile allocations (conservative, moderate, aggressive).
Location of code to be updated:
https://github.com/at4260/FinancialApp/blob/master/seed.py#L9
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.