Android application for tracking incomes and expenses.
PLEASE NOTE: the project was recently migrated to latest Gradle and Android API version and some libraries that I am using were migrated from JCenter. After all these changes bugs may occur, if you find anything not working or crashing, please open an Issue.
- Open source Android Application for tracking incomes and expenses.
- To be available for anyone, for free.
- Empower people to mantain a positive balance between income and expenses.
Watch the demo to see all the screens and features of the app:
Demo_compressed.mp4
- Import all bank transactions from any Bank Account. NOTE: currently this feature is implemented using a sandbox API from Open Bank Project. It is just used just as a proof of concept. Feel free to contribute to find alternatives to make this feature ready for production.
- Add cash transactions
- Compute & visualize income vs expense
- Lots of other features that can be seen in the Demo
- Compatible with Android Studio Chipmunk 2021.2.1
- Java 8
- Android API 32
Phone/Emulator setup:
- You need to have at least one Biometric authentication enabled, otherwise, you can't pass the first screen.
- Cloud button will not work, unless you setup the backend server. It is meant to allow you save all your data on the server and access it from another device. At the moment, the app sends only some dummy data to the server. The process also involves Google Sign-In.
- For using the feature to import sandbox transactions from bank accounts, you first need to setup the backend server, perform the Google Sign-In(which will be validated also by the backend server) and then the feature will be available. You can skip all the setup by activating bank_accounts_button. Also, you need to configure the API secrets for OpenBankProject. Get them from here: https://apisandbox.openbankproject.com/
- NOTE Backend Server repository is still on private, I need to make some cleanup before I'll add make it public and I will add details on how to setup both project to communicate and fully work.
- As mentioned previously, the most important feature "Import bank account transactions" is currently using a sandbox API. Here we have two concerns:
- This kind of Middleware solutions(which aggregates multiple banks into a single API) are not free. This means we couldn't provide Budgetize free because of this.
- To use the production API of any Bank or Middleware platform, we need to have some certifications/licenses. Checkout this resources:
- If you want to add a new feature or fix anything just fork, code, commit, push and submit a pull request.
- I encourage anyone to come up with any idea, especially on how to overcome the concerns from above. Add discusions!
- Any suggestion is welcomed.
If you got until there, you must be really interested into this project 😁. Join in the project! Developed this project for my Bachelor's Degree. Everything started when I got interested about finance, investments, mananging my personal money and finding ways to reduce my expenses. The solution? Budgetize. Keep track of expenses, each of them! As one euro/dollar doesn't seems so much, a lot of transactions of one euro/dollar means a lot! So, my dream was to have an application where I could have almost efortless, an overview of all my expenses. There are four important points I tried to solve:
- Import transactions easily from multiple bank accounts, from different bank providers.
- Easily add cash transactions.
- Display data in an intelligent and helpful manner.
- All of the above but without adding another recurrent expense 😅
I coded this application intensively for 9 months straight and after I presented it I pretty much abandonded my idea. Why? Because of the certifications and licenses needed for this idea to fully work. This would have imply several things: open a company, find a team, investor, obtain certifications/licenses, publish and compete with other providers and most probably ending to charge users money for using it. But after two years, I thought: what if I make this project open source and with the power of other contributors, I could really bring my idea to life? We're going to see...