A WebApp (tried making it a IOS App, but I'd rather go back to the old web stack) that lets you manage your money in a breeze. It features automatic transaction import via E-Mail!
There are a lot of money managers out there, but none of them support automatic transaction import in Switzerland. The reason for this is probably that none of the Banks really support access to transactions from a third party. My solution to this problem sounds a bit sketchy but it works perfectly fine.
For the most modern bank accounts you can enable an E-Mail notification for each transaction that occured. I plan on reading these E-Mails and importing them into my money manager. This means that you have to grant my app access to your IMAP Server.
should be ready for personal use: 28.04.2024
should be publicly available at: 01.08.2024
- filter
- filter by tags
- improve filter UI design
- transaction list
- change tag for transaction
- change only for this transaction and automatically remove matching keyword. bulk changes can be made in configuration page.
- implement transaction splitting
- you can split a transaction into multiple tags, this way, f.e. cash retrieval can be split into the actual tags.
- fix / cleanup import behaviour
- change tag for transaction
- CRUD for tags, including bulk changes into the past
- color & icon picker
- add keyword to tag & apply into past
- CURD for keywords, including bulk changes into the past
- move keyword & its transactions to different tag
- manage mail notifications
- rerun entire transaction -> tag mapping
- reset budget data
- reset saving data
- delete account
- exit demo mode
- graphs with money spent in budgets
- current saldo in favourite budgets
- saving state
- last 5 transactions
- add budget plan for tag
- monthly & yearly & custom time span?
- view available money for every budget in their timespan
- TODO figure out how to handle if too much money has been spent in budget
- probably subtract proportionally from other budgets
- (spent 100 bucks too much ob budget a -> budget b 100 bucks/month: subtract 66 buchs -> budget c 50 b/m: subtract 33 bucks...)
- probably subtract proportionally from other budgets
- define x saving goals
- a saving "budget" is also a tag: income & expense will add up to currently saved
- see how long it takes until goal achieved
- TODO, what if saving is not a transaction?
- just subtract from monthly available?
- option to start with demo account
- load default data, including user, but user is marked as demo
- dont allow certain things
- importing transactions
- write tests for complicated data manipulations (assign tag / resolve tag conflicts -> they have a lot of edge cases)
- db connection pooling
- one db connection per request
- limit max requests handled at the same time (maybe make "getConnection" blocking if no "slot" is open)
- one db transaction per request, if one statement fails rollback all changes from request
- fix page transitions
- page WAS positioned absolutely, removing this broke transitions
- allow opening dialog in dialog
- TODOs all over the project for improvements
- dockerize
- load test
- detailed tests that user can't access data he's not allowed to
- add support for more banks
- post, migros. NAB, UBS, ZKB, CS
- fronted: handle unauthorized response (send to login)
- frontend: generalize zindex
- frontend: and debounce times
(GPT finance adviser)
- create a custom GPT that knows how SwissBudget works and knows how the datastructures is built
- let the user ask the custom GPT questions about their money
- These are my finances, how would you start investing money and how much would you invest
- I live in switzerland. currently still in the same house as my parents, how much money do I have to save to be able to move out.
- Do you have any tips on how I can spend less money per year?