Inspiration

We're all sick and tired of the awkwardness that comes with splitting bills, especially right after someone pays. Whether it's with roommates, friends, or family, it's always a hassle to keep track of who owes who what. We wanted to create a simple, easy-to-use app that would take the awkwardness out of shared expenses. Existing competition is terrible for itemization and generally not user-friendly. We wanted to create a solution that would be easy to use and would make splitting bills a breeze.

What it does

OweMe allows for easy itemization of shared expenses. Simply take a picture of the receipt, and OweMe will automatically itemize the receipt and allow you to split the bill with your friends. You can easily add or remove items as well as settle up, and OweMe will keep track of who owes who what. OweMe is the perfect solution for roommates, friends, and family who want to split bills without the awkwardness. We also use AI to scan and process the receipt!

How we built it

We built OweMe using SvelteKit, Bun, ShadCN, Capacitor, and Supabase. We used SvelteKit for the frontend, Bun for the building and runtime, ShadCN for the design system, Capacitor for the mobile app, and Supabase for the backend. We used ShadCN to create a beautiful, consistent design system that would make our app look great. We used Capacitor to create a mobile app that would work on both iOS and Android. We used Supabase to store user data and receipts, as well as to handle authentication. Additionally, we accessed the OpenAI API to help with itemization and receipt parsing.

Challenges we ran into

One of our biggest challenges was simply building all the features. This year of hacking, we wanted to create not only a single feature or a proof of concept like we had in the past but a fully functional app that we weren't just going to throw out after the hackathon. This meant writing good, secure, and modular code that would be easy to maintain which was a substantial challenge in the short time frame. Most of the largest challenge was making sure that every page had correct logic, styling, accessibility (thanks Svelte), and responsiveness.

Accomplishments that we're proud of

The biggest is certainly building such a stylish and functional app. We have some really cool features like automatic receipt scanning and parsing, a complete friends system, and placing itemization at the forefront. To complete the itemization flow, we have a complex hierarchy of types to make sure we're not repeating information between transactions, transactions items, and owed payments. We're also proud of the design system we created using ShadCN, which makes our app look great and consistent across all pages. Additionally, our app runs on and is installable on IOS, Android, and the web.

What we learned

For most of the team this was a completely new tech stack forcing us to learn quickly in order to output a final product up to our standards. We designed and implemented a complex relational table schema and imlpemented it using Postgres & Supabase. We also learned to use OpenAI API to parse the receipts with accuracy. Lastly, we learned how to convert our application written in a web-framework, Sveltekit, to a mobile app using Capacitor.

What's next for OweMe

  • Allow users to indicate when pending transactions between two users have been completed outside the application, and display it as such in the feed.
  • Allow users to upload profile pictures
  • Implement functioning search bars that interact with the database for friends/transactions/etc.
  • Further integration with banking apps
  • Recurring expense tooling
  • Add support for international currencies and exchange rates

Built With

Share this project:

Updates