Portfolio

BillKeeper

An app meant to help users to keep an eye on their personal finances.

The UI is build using Google's material design, the backend is a REST API build using Spring framework and the data is stored in a SQLite embedded database. The API tries to follow as close as possible the REST conventions with respect to endpoints naming, stateless nature, and usage of proper HTTP methods: GET, POST, PUT and DELETE.

All the data coming from outside of the API is sanitised to prevent intentional or unintentional security breaches. The password is encrypted using bcrypt (Blowfish cypher) before it's stored in the database and the communication with clients is handled securely through JSON Web Tokens.

The API is expected to run over HTTPS to prevent any tampering with the data. In the android app, the username, the password and the token details are stored securely in SharedPreferences. The data is being retrieved to the application using a 'Rest template' object inside an 'AsyncTask' class so we can keep the UI thread responsive. Token is updated periodically from 30 to 30 minutes, and it doesn't affect the user's activity. RecyclerView is used to list all the bills, incomes and budgets with an entry and deleting animation.

Demo

Screenshots


Github link:
BillKeeper