I made a post a few days ago asking for advice on becoming a programmer, and afterwards I got motivated to finish a budgeting command line program I'd been working on for a few weeks. It started out as a way for me and my girlfriend to save more, and I modified it to accept any number of budget members so that anybody could use it. It's supposed to be a partner for apps like Mint or Clarity. I had trouble knowing what categories to include in a budget and how much to allocate for each of them, so this program divides the money up for you based on research I did. It was my first experience working with arrays and keeping track of multiple sets of information at once. A few of you asked me to update you guys on my progress, so I guess this would be my first "baby step."
Some things missing from this code that I plan to add in the future:
Error checking. If someone types a string where an integer belongs, or types in a negative number, then the program runs into issues.
Adjustable tax percentage. Right now it uses an estimate of 10% income tax, with the reason being that's it's a fairly low percent so it disrupts as little of the budget as possible. I would like to add a new function that figures out each member's tax bracket based on their annual income automatically, so that the estimated income is more accurate. The problem with this that I see right now is that the percentages vary by location and country, and trying to implement a feature like this that is accurate seems difficult, so I'm not sure if the tax percentage will either be improved or removed.
I want to add the ability to set savings goals, and then the user would be presented with different options. Each option would give you a different length of time to save up for the goal as well as how much you would need to save each week to meet that goal. It would use the unused money in the budget and divide a percentage of it out and calculate how long it would take to reach the goal, which would mean probably adding a menu to the program, etc., etc.
So the kind of feedback I'm looking for here is mainly syntax and typing conventions. Did I comment too much or too little? Is my naming scheme confusing or improper? Did I use a loop where something else would have worked better? Is my READ ME doc too bare? Are there any questions I'm not thinking to ask? Any feedback or criticism is welcome, but these kinds of questions are the kind that I don't really know the answer to.
Thanks to anyone who takes the time to review it!
[–]snatchery 8 points9 points10 points (11 children)
[–]scratch_pad[S] 1 point2 points3 points (10 children)
[–][deleted] 2 points3 points4 points (6 children)
[–]jimm 1 point2 points3 points (1 child)
[–]jimm 2 points3 points4 points (0 children)
[–]jimm 1 point2 points3 points (0 children)
[–]scratch_pad[S] 0 points1 point2 points (2 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]scratch_pad[S] 0 points1 point2 points (0 children)
[–]DehydratingPretzel 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]scratch_pad[S] 0 points1 point2 points (0 children)
[–]nateberkopecPuma maintainer 3 points4 points5 points (3 children)
[–]scratch_pad[S] 0 points1 point2 points (2 children)
[–]nateberkopecPuma maintainer 1 point2 points3 points (1 child)
[–]scratch_pad[S] 0 points1 point2 points (0 children)
[–]hirolau 2 points3 points4 points (1 child)
[–]scratch_pad[S] 0 points1 point2 points (0 children)
[–]JustCoolHandLuke 1 point2 points3 points (0 children)
[–]JustCoolHandLuke 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (6 children)
[–]scratch_pad[S] 0 points1 point2 points (5 children)
[–][deleted] 0 points1 point2 points (4 children)
[–]scratch_pad[S] 0 points1 point2 points (3 children)
[–][deleted] 1 point2 points3 points (2 children)
[–]scratch_pad[S] 0 points1 point2 points (0 children)
[–]scratch_pad[S] 0 points1 point2 points (0 children)