Splitting finances with roommates or groups was extremely hard to manage, so we wanted to make it easier to use.

What it does

Our project is a cost splitting tool that can be used by groups for events and instances where multiple things are being bought for only part of the group. For this specific example, we used the event of a group of girls moving into an apartment splitting the cost of all of their new furniture and appliances. This could also be used in applications such as friends and family vacations, big nights out, and family Christmas gifts!

How I built it

We used the rooms the girls lived in and bathrooms they used to identify the payment groups they belonged to. Specifically for this example, we were looking at a 3 bedroom, 2 bathroom apartment where the bedrooms ranged from singles to triples. We also covered the case in which one roommate bought an item to be used in another roommate’s room or bathroom. This created the “other” category in order to make sure the buyer didn’t end up paying for a portion of the item. We used regex matching to determine if the item applies to each roommate. If you wish to add more items, the topmost row can be copied to maintain the formulas we used.

We also created a program using Python using the Google API to access the final calculations in this spreadsheet which we organized using a custom class we created called “Roommates”. With this program, we generated a final “To-Do list” for each roommate for how much they should be paying another roommate and how much they should be expecting from each roommate. This list was also summarized at the end with how much they should be expecting to be paid or how much they will be paying in the end.

Challenges I ran into

As you can see in our Roommates class, we did explore the Venmo API and figured out how to utilize it to request the amounts that we generated from each roommate. The venmo passwords and usernames would be collected using the addVenmo function and we would encrypt the input when they type the password by masking the characters with asterisks. However, for this project, we decided not to test this feature because of the possible security breaches and potential financial issues.

Accomplishments that I'm proud of

We were able to connect our Google Sheets and our Python program using the Google API and make our Google Sheets reactive using our formulas to calculate our final values. We also made visualization clearer using conditional formatting and by adding multiple methods to view the information about who needs to pay who what amount. In total we had 3: the table, the chart, and the Python program's to do list.

What I learned

How to utilize Google Sheets, the Google API, and the Venmo API.

What's next for TecHacks Room Splitter

In the future, we could add a web and/or mobile interface that utilizes a form functionality to add rows to the Receipt sheet similar to how a Google forms works. The python code could be integrated with the website to request the proper Venmo totals once the users determine that they have finished adding all the items bought to their Receipts.

Built With

Share this project: