Your instructor, Jon, has a tough time with managing his money. He's been told to create a budget in Excel, but the thought of using spreadsheets makes him very unhappy. He's tasked you with creating a terminal based budgeting application so that he can keep track of his expenses.
- Reading/writing to CSV
- Single responsibility classes / small methods
- Having Python objects talk to one another
Think through the classes you'll need to write this app. This is an open-ended challenge, but some possibilities may include: budget, transaction, budget category, etc.
Start by implementing the following features. Feel free to add more to push your learning.
- It should Keep track of expenses including but not limited to Living, Food, Travel, Savings, and Leisure.
- Users should be able to update their monthly income.
- It should know how much the user's monthly costs are.
- It should be able to create and calculate new expenses.
- It should be able to tell users what percent of their monthly income is being spent in each category.
Figure out what a user can do through the command line. How will they enter new transactions? How will someone's budget be saved? How will transactions be saved? How will transactions be categorized and saved so that they know how much is left in a particular category? How will a user exit the program?
For the purposes of our challenge, do not have user authentication. Figure that a user is only going to have this budgeting program on their computer.