andidy / finance-app Goto Github PK
View Code? Open in Web Editor NEWA Finance / Budgeting Application to refresh my C# knowledge and Learn WPF
A Finance / Budgeting Application to refresh my C# knowledge and Learn WPF
In case the user makes a mistake when entering their finance objects or balances, they should be able to select the balance or object from the associated list and edit its data.
Investigate if there is a switch / lever control in WPF.
Replace Gain / Loss Input for Finance Objects with either a dropdown menu or the discovered switch / lever?
This balance type would aggregate the values of all balances together. Effectively giving the net worth of the balances defined by the user.
Questions:
Right now all the UI for creating balances and events is displayed on the main window, as more features are added to the events and balances this will quickly clutter the app, therefore the full dialog for the events and balances should each be replaced with a single button that opens a pop up which has the full dialog. This will clear up the UI space for useful information displays.
Will require research into ways to spawn new sub-windows from a button.
Replace the interval input for finance objects with a dropdown menu since there is a fixed number of options with specific names.
Currently the time is just set as the time of creation.
Allow specifying the time the finance object is meant to occur at.
This will require looking into ways to select a data and time using WPF, maybe using the Calendar control?
Finance Objects should have their amount value affect a Balance's amount value when the time of object occurs.
May require adding a field to the finance object saying which balance they affect?
Data will be stored locally because its a side project with no infrastructure.
However, do I want to store the data in a database of some sort? Or perhaps in a JSON format?
Investigate storage solutions and decide database or raw files, and then the format of whichever type is chosen.
The timeline should be a way to see the effects over time of the finance objects on the balances and global balance.
I think displaying this as a line graph with the ability to hover over it and the balance value on the hovered over day is displayed is a cool idea.
Need to investigate how to display a line graph (WPF has a solution? or how to do it with custom rendering code) and efficiently estimate / project the balances into the future.
Buildings upon the balances with additional features:
A Balance is meant to represent things like bank accounts, out standing loans, stock portfolios, credit card balances, etc.
Currently known things that define a balance:
Things a balance might have:
Object is a bad name for the Finance objects because they are events where something happens at a given time, so their naming should be updated to show that.
The add balance dialog shows the field name as "Interval" right now, because originally it was a copy paste of the add event dialog.
It should be corrected to say "Type"
A new interval type should be added that allows specifying the "First/Second/Third/Fourth/Fifth/Last Sun/Mon/Tues/Wednes/Thurs/Fri/Sat of the month" and possibly something similarly for years.
Currently, a Finance Event with a Weekly, Monthly, Quaterly or Yearly interval doesn't repeat itself if the calculation date is set far enough forward for it to be able to.
For weekly events the event should repeat on the same day each week (if the date is set as Sunday Jan 1st, then it should repeat every Sunday)
For monthly events, the event should repeat on the same date each month (sunday jan 1st would repeat on the 1st of every month)
Im not sure how to handle quarterly.
Yearly events should repeat on the same date each year (Sunday Jan 1st would repeat on Jan 1st each year)
The ComboBox which selects which balance to apply a finance object to doesn't update the text on the button itself when calling "comboBoxBalanceSelection.Items.Refresh();" but the dropdown list itself does update. This is confusing because a user could see two different values for the same balance in that dropdown.
For example: if the balance has $1000 and then $100 is added to it through a finance object and the balances recalculated, then the text on the combobox will still say $1000, but if you click on the button and the dropdown appears it will say $1100.
Also if there are two balances and this bug appears, then clicking on the other balance and then clicking back on the bugged balance fixes the issue.
Here is an example of the bug:
Allow for intervals which also have an end date which halts the event from recurring after that point.
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.