Inspiration
FairShare was developed to eliminate the frustration of manually calculating itemized restaurant bills and proportional tips. While other expense-sharing platforms exist, they typically lack a free receipt scanning feature. FairShare solves this by allowing users to simply photograph their receipt, automatically extracting the items and prices via OCR. An interactive GUI then lets group members easily claim individual items or divide shared dishes, creating a fast and transparent process that removes the friction from group payments.
What it does
The technical workflow of FairShare is designed to move quickly from a physical receipt to a collaborative digital space. It starts with the user taking a photo of their bill, which is then passed to the Gemini API for text and price extraction. The API returns this information as a formatted JSON object, which is processed by a JavaScript module. This script parses the itemized data and populates it into a local database that is assigned a unique, four-letter room code. Users share this simple code with their dining party to grant everyone access to a live staging room. Within this staging area, the group can review the parsed receipt together in real time. If the camera failed to capture a specific dish or a price needs adjusting, users have the flexibility to manually add or edit items before calculating the final split.
Once the group confirms the receipt details in the staging room, the interactive claiming phase begins. Participants can select the specific items they ordered, and the system dynamically calculates their individual totals based on those selections. Alternatively, if the group prefers a simpler approach, they can opt to split the entire bill evenly across all members. The application seamlessly handles the underlying math behind the scenes, ensuring shared costs are accurately distributed. Finally, every member is presented with a clear, transparent breakdown of their exact financial responsibility.
How we built it
Development began by integrating a camera interface with the Gemini API, utilizing a specific JSON schema to strictly define the structure of the returned data. A JavaScript backend was built to ingest this JSON file and import the receipt details directly into a local database where all price calculations are handled. The frontend GUI was developed concurrently using HTML, starting directly with the core photo capture and processing interface. The next major milestone was building the collaborative architecture through a custom room system. Scanning a new receipt automatically generates a unique alphanumeric code that the host can distribute to their party. When accessing this room, participants are prompted to either enter a temporary guest username or log into an existing account before they can view and interact with the shared bill.
Challenges we ran into
A current technical hurdle involves deploying the application to the cloud, specifically regarding compatibility issues with the Render hosting platform. Because the software cannot currently run on Render, the application is forced to rely on a local database environment rather than a web-accessible server. This limitation restricts the operational range of the collaborative rooms to a local network. As a result, participants can only join a session and split costs if they are connected to the exact same network as the user who originally scanned the receipt.
Accomplishments that we're proud of
We are proud of successfully integrating the Gemini API to reliably feed complex receipt data directly into our backend. The backend then works in tandem with the frontend to present this information in a clean and accessible format for the user. Our greatest sense of accomplishment comes from successfully connecting these various standalone features into a unified, functional workflow. The end result is a smooth and polished product that transforms a fragmented technical process into a seamless user experience.
What we learned
Through this development process, we gained critical experience in optimizing API usage and managing backend infrastructure. We learned how to structure data payloads for the Gemini API to process receipt information efficiently without exceeding token limits or rate caps. On the network side, troubleshooting server configuration issues deepened our understanding of cross-device connectivity and deployment. We ultimately established a working architecture that links multiple users across different devices to a single, unified database. These insights significantly improved both our system design skills and our ability to debug complex, multi-user web environments.
What's next for FairShare
Moving forward, our immediate priority is resolving the cloud hosting bottleneck to make the application accessible beyond local networks. We also plan to integrate direct in-app payment capabilities so group members can immediately settle their balances with the receipt holder. Finally, we aim to upgrade our AI processing pipeline to a faster, higher-capacity model, eliminating token constraints while improving overall parsing speed and accuracy.
Log in or sign up for Devpost to join the conversation.