Have you ever worried about the financial mess that could hardly be resolved when traveling with friends? It's not always possible to split expenses at every stage, so different people end up paying different parts of the cost and it gets hard to keep track of all of them to figure out how much you owe your friends or how much your friends owe you. We design this app to solve this small perennial problem.
How it works
This app provides tremendous clarity and convenience. Once you start a group trip bookkeeping session, you will be able to view the personal balances in the main screen and details about how much one person owes another in one simple click. To keep track of a new payment that one person pays for a group, you could add a new payment entry specifying who's paying, who are being paid, what's the amount and what the payment is for. Then immediately our database will update and you will see the new personal balances after taking in the new payment. You could also see a list of all the payments that you and your friends made during the trip. In the middle of the trip, if one person sees that his or her balance is really "deep red" and owes a lot of money, then he or she could start paying more for the group to reduce the gap. At the end, the group will be able to see the finances clearly and are able to pay each other according to the record easily.
Challenges I ran into
Since our team is not seasoned with Android development, we had a lot of initial problems with getting started on what kind of tool/data structure to use to store the data, and we are not familiar with some of the common databases such as Sqlite and MongoDB. We ended up using Sugar ORM, an easier implementation of android database. We also had some issue with designing good UI, because the code scratches online we find that executes these functions seem very cumbersome. Eventually we decided to streamline the UI and avoid anything "fancy" that we cannot achieve in a short period of time.
Accomplishments that I'm proud of
That I am able to use this app for my next travel with friends. It was always a mess dealing with the finance traveling with a group of friends, and other ways of bookkeeping such as phone notes or excel spreadsheet are not as mobile, convenient and easy. A lot of people have similar problems and this app will solve this very well. Also, three of us have not been to a hackathon before and one of us has been to just one hackathon before and none of us have android development experience, so we're happy we are able to produce a running and useful android app in just 24 hours.
What I learned
We definitely learned a ton of android development, definitely more than a month's class would teach. We would be more than ready to develop our next android project with the knowledge we figured out in these 24 hours.
What's next for SplitTrip
There are things to add that can make SplitTrip brilliant. We can first improve the UI with better navigation tools and a better material design interface. We will also make the app capable of keeping track of different groups at the same time, and the user will be able to switch between which group he or she is working on in the home screen. All data is stored locally in the current implementation, but we will do a version with online account support so all the people traveling together can use their account (maybe imported from Facebook or Venmo) to join the same "travel group" that is created and saved online. Then, everyone will be able to add their own entry about how much they paid for the group. This will make bookkeeping less cumbersome because everyone will submit their own entries and will also make the app more social. Furthermore, since we are doing bookkeeping anyways, we will develop some interface that other bookkeeping apps might have to analyze transaction data and display them visually. For instance, this can let the user see some fun facts concerning their spending, such as the a pie chart for the different types of spending, a pie chart for the money different people fronted, average daily expense, etc. Finally, if API allows, we want to integrate this with Venmo so that people can checkout their final sum with one click and pay in Venmo.