Upon seeing that one of the prize categories were the Best FinTech hack, we realized that both of us currently do not have a streamlined method of budgeting our finances as students in college. Primarily, we rely on Google Sheets and our phone's notes app. Thus, this provided us with the requisite motivation to build a financial wellness app, FinKit, that helps us budget our finances in a simple, efficient, and user-friendly way. Our intrinsic motivation was due to the fact that we wanted to build a challenging yet engaging and user-applicable project within our 24 hours, hence giving us the impetus to work on this project until its minimum viable product completion. Our extrinsic motivation included sharing this project on the App Store and Play Store, where our friends and colleagues can download it and budget their finances as well!

What it does

Firstly, FinKit allows you to create a personal account. Then, after signing in, you can set your monthly budget as well as the amounts for the different sources of expenses that you incur. You can then navigate to the dashboard tab to see how much of your monthly budget will be spent and where it will be allocated to, and how much money you have left. On the Edit Budget tab, you can update your figures for budget and expenses at any time, which will then automatically update your dashboard to reflect your monetary changes. On the Transactions tab, you can make an entry for every time you perform a transaction. When an entry is made, the data is integrated directly with a Google Sheet in real time, and this Google Sheet contains macros and filters that performs statistical analysis on our rolling transactions based on the entries that have been recorded. Not only is the transaction record sent to the Google Sheet, but a local copy of your transaction is saved to the app on the Transactions tab so that you can see a list view of all our recent transactions, with a delete button to clear the entire list if desired. We created this local list by creating a local SQLite Database that saves each entry into the database and then we wrote a query that pulls all entries from the database and returns it as a list, which was set as the item source for our local listview. FinKit is also equipped with a push notification service, whereby we can automated and schedule push notifications to users of FinKit to remind them about bill payments, budget balances, or just general everyday tips for proper spending and budgeting of money.

How we built it

We utilized Xamarin Forms which allowed us to do a cross platform .NET deployment to both iOS and Android devices including iPads, Tablets, and MacBooks running on M1 Chips. To connect to the Google Sheet we made use of the Google Sheet Script API for deserialization and serialization of our transaction and authentication objects in the form of JSON. For the push notification service, we made use of the OneSignal push notifications API which involved device specific configurations such as manipulation of the Android's manifest.xml file and MainActivity.cs file in conjunction with a unique Google FireBase Console Server Key and Sender ID, and the iOS' info.plist, entitlements.plist, and AppDelegate.cs file to ensure that the necessary tokens were registered for push notifications. Furthermore, we had to configure signing certificates from KeyChain in order to authorize the testing of the push notifications on our devices. For our authentication, we used the Google Sheet as a database whereby you can simply just add a record to the Google Sheet itself and then login to the app with the exact details and it authenticates! Additionally, we implemented a FaceID authentication for the iOS devices and a FingerPrint Scan authentication for the Android devices. For the backend operations of the app, we used C#. For the frontend design and operations of the app we used XAML, along with various Nuget packages and Xamarin Essentials that allowed us to capitalize on a variety of Xamarin's features. For the Google Sheet Script, we used JavaScript.

Challenges we ran into

We had a few bugs that took us quite a while to fix, such as the data not entering into the Google Sheet in real time after submitting it on the app. Additionally, our IDE's and Emulators crashed a couple times throughout the course of our development. Other than these two bugs the remainder of the development was pretty smooth and exciting.

Accomplishments that we're proud of

We are proud of the fact that we were able to finish our minimum viable product within the 24 hours. We are also extremely proud of the design and UI that we implemented on the app. We are proud of the multiple different features (sheets integration, local sqlite database operations, push notifications, cross platform deployment, device testing, authentication, face id, finger printing) and functionality (budget editing, transaction recording, progress ring updating) that we were able to pull off within such the short time frame. Ultimately, we are proud of the work we have produced with this being our very first hackathon ever!

What we learned

We learned the importance of code repository, continuous integration, and team work. We were working concurrently in separate branches on different features and then merged all of our work into the main master branch for production. We also learned that tasks fill up the time that we allocate to it - meaning that we gave ourself 24 hours to build this app and so we did. Generally speaking, we may have given ourselves a week or so to build the same app and it would have taken a week.

What's next for FinKit

We plan to add more features, such as a resources tab to have quick and easy access to online financial tools and resources by rendering web API's that directly connects to these tools. We plan to do beta testing amongst our peers and colleagues at Florida Tech, and then publish FinKit to the App Store and Play Store for use!

Share this project: