Inspiration

There's been lots of situations where friend groups are eating out at restaurants and then after the night ends, the bill comes and no one knows how to properly split the bill. Lots of awkward situations of determining how the bill gets split, even after it gets paid for. Our idea was to design a site people can use to facilitate the process of paying a bill of a group. This would not be the way the group pays for the bill but rather get insights on how much each person would owe.

What it does

Take a picture of your receipt and the app processes the item list, quantity, and price to summarize it all. You can input the number of guests and decide whether to split the bill event or by person. If splitting by person, assign who ordered what and the bill split adjusts accordingly with tax and tips considered at the end as well.

After getting the total bill split, you can share the summary to your guests via email so they can see it too.

How we built it

Determining the loop for this idea was what we aimed to get down first: taking a picture, using Gemini AI to process the receipt so it can extract the item list with quantity and price, confirming the list and then deciding the type of split the user wanted was done.

Afterwards, we prompted Claude to work on an initial skeleton of this idea, getting a breakdown of the layers of this project, from the different pages it would display for the receipt capture to editing the number of guests and split type. We organized the UI with mock data to get the formatting down on how the bill should look like. Afterward we worked on the camera aspect where it uses the user’s camera app if on phone, or you can upload a picture of a receipt. Once that was done, we worked on finalizing the email sending portion.

Challenges we ran into

GitHub commits were our biggest issue because we each had our own devices and managing the project led to issues with the versions not being up to date. Several instances occurred with commits where one commit would delete another and we would lose the work on that deleted commit. Some cases we did not know what files were changed or why they were not showing in our commit. There was a commit we made but could not figure out how to revert back to a previous one which set us back a little bit.

We wanted to capture the receipt and extract that information but also implement a way for the user to manually make changes if the photo was misread in any instance. The first design we had was Gemini AI to list out the items from the bill directly, with no way of making adjustments.

Determining a way to share the bill split results was something we had trouble with, deciding to use either text messages or by email. We decided on email but then ran into trouble with allowing the user to choose how they want to send the email and what platform. On Mac, a popup for the Mail app appears but if a user wants Gmail they do not get that option.

Accomplishments that we're proud of

We also managed to deploy our site and have it running. It works with desktop and mobile which was definitely a highlight of the project. We also worked on allowing the user to take a photo on their device or upload a photo of a receipt and have it get processed there. The email notification was also working well so we had it running end-to-end completely.

Another part that worked well for us was live splitting the bill when adjustments were made. Change the number of guests or choose to split by person and assign items and we got live feedback on the split for tip and tax proportionate to what they ordered.

What we learned

The biggest thing we learned was how to properly prompt engineer an AI model to implement our idea. We started off with simple requests and basic ideas that our models had to ask us more questions about and inquire information. To prevent chat bloating we edited our messages to include more specific details on what to include on our build. We were able to utilize AI to help bridge our ideas and develop a working system. In instances where AI would get something wrong or do something we did not ask for, we would have to debug it and provide clarifying information so it would output what we wanted.

Correcting version control was something we managed to figure out through this project as well, with commit issues being something that lagged us behind. Version control issues were resolved towards the end of our project and we managed to figure out how it works when several of us are working on different parts of the project at one time.

Built With

Share this project:

Updates