Inspiration
Have you ever found yourself in the awkward situation of organizing a group dinner, only to struggle with splitting the bill and collecting payments from everyone afterwards? With an overwhelming amount of online peer-to-peer transaction applications available, it can be difficult keeping track of each person’s contribution to the total bill. SplitIt was created out of frustration with the traditional course of action to collect everyone’s information, painstakingly calculate each of their expenses, and hassle others for their payments after any outing. Whether its for a group dinner, a grocery run, or a series of recurring payments, SplitIt was created with simplicity and user-friendliness in mind, so you can spend less time stressing over the bill and more time enjoying the thrill!
What it does
SplitIt allows users to streamline the process of splitting bills by scanning receipts through their webcam and allocating each expense to their respective contact. On the other end, the debtor can open SplitIt on their own account and view their outstanding dues. However, SplitIt is more than an application solely for bill-splitting as we offer multiple tools for expense and payment tracking as well as contact management allowing users more control and flexibility over their finances.
Advantages & Key Features
- Digitalizes traditional methods of collecting payments from your social network
- Finance management tools for expense and payment tracking
- Simple to use webcam-based receipt scanner
- Contact importing and management tools
- Simple and user-friendly user interface
How we built it
- React.js frontend to dynamically update expense and payment reports
- React.js in the frontend with dynamic updates
- OpenCV and Tesseract through Python in the backend to process the receipt
- BlueHill Payments API to process payments between users
Challenges we ran into
Backend Integration
Though we all had prior experience regarding frontend development and limited backend development, the most challenging part about this project was integrating the two components together. Moreover, with previously no experience with MongoDB, integrating MongoDB with the backend technologies came as a seemingly insurmountable challenge for us. However, we addressed this challenge by reading through documentation and viewing various tutorials and were able to ultimately integrate MongoDB, backend, and frontend technologies together to create SplitIt.
New Technologies
Our team came in with strong frontend knowledge but a limited working knowledge of backend end and the integration between the two. We ended up using Python which simplified the backend logic but placed the brunt of the workload and display functionalities on the frontend technologies. Therefore, coming up to speed with our front end framework, ReactJS, and integrating Python’s backend technologies, such as OpenCV and Tesseract, in combination with BlueHill Payment’s API was the biggest challenge that our team faced.
Future Goals
We wanted to create an application that can be run on a variety of OS systems so there would be one unified application for payment sharing. As SplitIt is an application we would want people to use long-term, we believed some integral features to be implemented in the future included transaction & expense history, expense recommender based on the user’s interests and behavior, or a feature to quickly calculate and split tips. However, constrained by the time limit on the hackathon, the current version of SplitIt is a proof-of-concept application with the future goal of making it available on a variety of operating systems and devices.
Accomplishments that we're proud of
- Frontend Technologies: Though 2/3 of our team came in with prior knowledge of ReactJS, we were able to learn about various ReactJS packages and dive deeper into ReactJS’s usage of Hooks and Props in React components to create a more practical interface.
- Backend Technologies: Our team came into HackIllinois 2023 with very limited backend knowledge but a good foundation on Python. Learning and implementing OpenCV and Tesseract and integrating these libraries with the frontend interface in a limited period of time to create a fully functioning and efficient product was a feat we were all proud of accomplishing.
- API Usage: Despite having limited experience with BlueHill Payment’s API, we were able to quickly learn its features and leverage its powerful capabilities to create a seamless, user-friendly experience for our users. By leveraging the API's robust functionality, we were able to make SplitIt even more efficient allowing users to easily split bills and manage their finances without any hassle.
- Database Implementation: Despite having little prior experience with MongoDB, our team was able to pick it up at an impressive rate and use its robust features to develop a scalable and effective solution for managing expenses. We were able to easily store and retrieve data by utilizing MongoDB's adaptable document model and strong indexing system, ensuring that our application was quick and dependable for our users.
What we learned
Despite the fact that two-thirds of our team were novice hackers, we were able to rapidly pick up extensive libraries such as ReactJS and OpenCV. Though we had no prior knowledge of the BlueHill Payment API, we were able to seamlessly incorporate it into our backend infrastructure. Through countless hours of reading documentation and implementing various libraries, we were able to construct a robust, user-friendly web application that makes managing splitting bills easier. Apart from what we learned technically, we also gained a deeper understanding of the core fundamentals of online peer-to-peer transaction apps such as Venmo or CashApp. Through our development of SplitIt, we realized the importance of simplicity and user-friendliness in these applications, as well as the need for robust security measures to protect users' financial information. We also learned the value of real-time communication and notifications, which can help to ensure that transactions are completed smoothly and without delay. Through HackIllinois 2023, our team learned a tremendous amount about both frontend and backend technologies we used as well as effective teamwork and time management to produce a high-quality product. Ultimately, it was a fantastic experience, and we're excited to see what we'll be able to do next.
What's next for Split It
With a finance platform such as SplitIt, there are multiple pathways to expand into in the future. Here are some initial ideas we had:
- Creating a Transaction History page to allow users to monitor their expense transactions over longer periods of time. This would allow users to easily track their payments and debts and keep track of expense patterns.
- Utilizing machine learning algorithms: SplitIt could analyze transaction data and user behavior to provide personalized recommendations for expenses.
- Implementing a section for groups and recurring payments: This feature would allow users to create groups for recurring expenses such as rent, utilities, or groceries. By setting up a group, users would not have to repeatedly add the same contacts each time they split a bill saving time and improving efficiency.
- Allowing transactions internationally between different currencies: Expand SplitIt’s services to allow users to split bills with friends and family who live in different countries and use different currencies. This would require an exchange rate calculation feature to ensure that the transactions are accurate and fair for all parties involved.
- Allowing cryptocurrency transactions: With the rise of cryptocurrency, SplitIt could add the option for users to split bills and send payments using popular cryptocurrencies such as Bitcoin or Ethereum. This would give users more payment options and could potentially attract a new demographic of users who prefer to use cryptocurrency for financial transactions.


Log in or sign up for Devpost to join the conversation.