A financial planning & simulation application.
To do:
- Convert backend from JS to Rust
- Convert UI from Electron to Tauri
- Convert web front end from React to Svelte
- Cleanup / improve look & style of layout
- Convert charts to D3
- Generate overall visualizations / charts for dashboard
- Add use tips to dashboard page if there is no data loaded
- Simulate income and expenses through retirement
- Track historic account balances
- Support multiple account types
- Income
- Retirement (IRA, Roth IRA, 401K)
- Social Security
- College Savings (529)
- Expenses (such as grocery, car, utilities, insurance, entertainment, rent, etc.)
- Loans (student, car, etc.)
- Mortgage
- Savings
- Health Savings Account (HSA)
- Make pretty graphs
- Financial data saved locally as human readable json file
- Loop through accounts to determine what order they should be processed in
- initialize tables to the correct sizes
- Main loop to loop through each year
- Initialize this year
- Loop through accounts to make contributions and withdrawals
- Initialize the value of the account for this year
- Calculate earnings for savings, college, retirement, hsa, and income accounts
- Add earnings to the account table for the year
- Calculate interest for loan and mortgage
- Add interest to the account table for the year
- Calculate contribution amount if account has a yearlyContribution defined
- Calculate contribution amount based on contribution type (fixed_with_inflation, fixed, percent_of_income)
- Calculate the employer contribution
- Add contribution and employerMatch to the account table for the year
- Remove contribution from taxable income for the year based on taxStatus
- Calculate payment if paymentType is defined
- Calculate payment amount
- Add payment to the account table for the year
- Calculate withdrawal if withdrawalType is defined
- Calculate withdrawal amount for col_frac_of_savings, fixed, fixed_with_inflation, and end_at_zero
- Limit withdrawal amount to the current value of the account (do not allow an account to become overdrawn)
- Calculate expense amount
- Calculate expense amount for fixed and fixed_with_inflation
- Add earnings to incomeTotalTaxableTable and incomeTotalTable for the year
- Remove withdrawal from the account table for the year
- Add withdrawal to income table for the year (withdrawal came from another account and it added to the income tables)
- Add expense to the account table for the year
- Remove healthcare expenses from linked HSA account
- Add entry to expense total table
- Add entry to savings total
- Add Income to net account (subtract out paying for income tax)
- Return Results
git clone https://github.com/aero530/fpapp.git fpapp
The accounts rust module uses ts-rs to automatically create TS bindings for use in the UI. Currently these need to manually generated if the accounts module changes.
> cd src-tauri/src/accounts; cargo test; cd ../../../
Start app in dev mode:
> npm run tauri dev
Create a package for macOS, Windows, or Linux using one of the following commands:
> npm run tauri build
> cargo test
- Initial development in Octave
- Convert to SciLab.
- Update input numbers
- Update input numbers
- Update input numbers - http://money.msn.com/retirement/retirement-calculator.aspx
- Convert to Python
- Update input numbers
- Update input numbers
- Update input numbers
- Update input numbers
- Convert to JS / electron
- Save user data as json instead of at the beginning of the code file
- Release v1.0.0
- Added social security account type
- Update with new theme
- Update to electron 3.0
- Update to babel 7
- Migrate from 2 package.json to single package.json
- Replace react-router-redux with connected-react-router
- Remove unused dependencies
- Change to new project template
- Update dependencies
- Fix calculation bugs
- Add social security income source
- Add file-new
- Refresh pages on file-open or file-new
- Fix data type storage bug from MUI Editable table fields
- Convert to Rust & Tauri