Inspiration
Splitting a restaurant bill is awkward when friends ate different things, for example one person is vegetarian or did not drink. Usually one person does the maths and then chases everyone for money.
What it does
- Upload a photo of the bill and AI reads the items and prices.
- Type rules in plain language, like "Priya is vegetarian, Ravi did not drink water". AI decides who shares which item.
- A person reviews the result and can change any tick box before continuing.
- The app calculates each person's share, including tax and tip, and creates a PayPal checkout link for each person.
- After the friend approves in PayPal, the payment is captured and the app shows the status.
How it uses PayPal
SplitSmart uses the PayPal Orders API (sandbox). It creates one order per person for their share, sends the person to PayPal to approve, then captures the payment. PayPal is how the money is collected, so the app does not work without it.
How it uses AI
A Gemini model reads the bill photo and returns structured items and prices. The same model reads the group's plain-language rules and decides who shares each item. The server checks the AI output (valid names, sensible prices), and a person always reviews the ticks before any payment link is created.
How I built it
Node.js and Express on the server, plain HTML and JavaScript in the browser, hosted on Render. PayPal and Gemini keys stay on the server and are never in the public repo. I have no programming background. I built this step by step with Claude (an AI assistant) writing code under my direction, and I tested and fixed each step myself.
Challenges
- PayPal sandbox seller and buyer accounts must match in country and currency.
- AI model names and availability changed while building, so the model is a setting, and the server retries when the AI service is busy.
- Keeping API keys out of the public repository.
What's next
- Support for other currencies (right now amounts are treated as USD).
- Shareable group links so friends can tick their own items.
- More kinds of rules and mobile polish.
Built With
- express.js
- gemini-api
- html
- javascript
- node.js
- paypal
- render