an automated personal finance analysis tool
- get transaction list (csv file) from online banking (chromedriver?)
- get latest transaction from db (mongodb?)
- figure out the latest affected month and keep those transactions locally
- parse all new transactions from csv to transaction object (panda?)
- add all transactions to their respective month
- start processing month by month
- sum up all income/expenses (excluding the ones marked as savings)
- split up transaction if needed (e.g. Paypal- or cash payments)
- Output:
- Monthly balance
- Monthly Expenses divided in categories (Food, Rent, Mobile, ...)
- Yearly savings (so far)
- Save all changes to the database
class Transaction:
def __init__(self, date, reason, amount, currency):
self.date = date
self.reason = reason
self.amount = amount
self.currency = currency
self.isSavings = false
self.isSplit = false
self.subTrans = {}
class Month:
def __init__ (self, transactions):
self.transactions = transactions
def calcBalance(self):
# do magic (step 6)
self.balance = 0