This is just a hobby project where i play around with different rust ideas. The purpose is to get a better overview of taking a loan for housing.
A demo can be seen here: Demo
- You can use suffixes K(1,000) and M(1,000,000) to specify units. If not specified it uses the default one, meaning the one specified in the field before writing.
- Some value depend on the years specified above the plot and some depend on the specific entry.
- Each tab has its own set of parameters you can customize.
- Right click on tabs to remove them.
- Black boxes (Darkmode) can be edited to custom text.
- Parameters are cached on your pc/browser.
- Remember if you use chrome and maybe chromium based browsers and you don't want to loose your parameters wait 10 seconds before refreshing/closing it. See known issues for more info. This is not a problem for firefox.
- Cache is reset if some specific parts of the code is changed and it get's redeployed.
You might need to install trunk binary and wasm targets
trunk serve --release
cargo run --release
You can optionally specify the target for the binary, that way it speeds up the compile time for native by a lot.
- Move most roadmap entries to git issues instead.
- Create regression tests.
- Create parameter side bar.
- Housing, mortgage, interest etc
- Payments, tax deduction, etc
- Other expenses.
- Add stocks parameters.
- Monthly put.
- Add default with house vs renting and stocks.
- Add copy entry to new tab option.
- Add inflation.
- Add total expenses paid for each expense. (box plot?)
- Hover over text.
- Create top bar with tabs for each entry.
- Add dark and light mode.
- Add plot for value over time.
- Add axis text.
- Add Loan plot.
- Add "legend" with minimum payment on the plot for each line.
- Add option for other plots, e.g. loan payment, stock, value, total which checkboxes for what to include in main plot.
- Add readme/tooltip/popup about controls.
- Remove dependency on server being online (offline mode if cached).
- Find a way to avoid double maintenance with the sidebar widgets.
- Perhaps base it off a json file. This also makes multiple languages easier.
- Support multiple languages.
- Add "Kurs tab", i don't know the english world.
- Change font size in plot.
- Make tabs editable and clickable at the same time.
- Changeable order of tabs.
- Add loan types. e.g. "Realkredit" and "banklån"
- Make text red if invalid value. e.g. if "Rådighedsbeløb" is negative.
- Only render on value change.
- Add support for different comma seperators. e.g. select the type in a field or something.
- Add [x] to topbar tabs and to expenses.
- Automatically deploy when new commits are available to main.
- Fix state saving on exit on chrome.
- Currently chrome only saves the state every 10 seconds, however it should also save on shutdown/refresh like firefox does.
- Javascript file needs "./" to work with github page.
- Cache gets reset when main struct has been modified.
- Reference counted Cells are deserialized to default or previous value when loading the page. However they should all reference the same. Workaround is currently implemented.
- Floating point inaccuracies/fluctuations in current calculations when sliding some parameters.
- If you leave in e.g. % or Dkk the field is not accepted. Can be solved by expanding the custom parser.
- Interest deduction entry is not correct, since it varies over time (Depends on loan at given time), thus should be plotted instead.
- Remove Percentage type and just use f64 with a custom formatter for egui.