RytSplit — AI-Powered Receipt Scanning & Group Expense Splits

Inspiration

Splitting group bills is a chore. People forget who paid, receipts get lost, and travel expenses pile up across different currencies. We wanted a single, mobile-first experience that handles scanning, splitting, and settling—all without manual data entry.


What It Does

  • AI Receipt Scanning using OpenAI Vision to extract:

    • Line items
    • Totals
    • Tax
    • Tips
  • Flexible Splitting

    • Split evenly or by individual items
    • Assign shares to friends
    • Track who owes whom
  • Running Ledger

    • Transaction history
    • Payment requests
    • Friend management
  • Smart Mapping

    • Maps receipts/venues using Leaflet + OpenStreetMap
  • Multi-language Support

    • English / 中文 / Bahasa Melayu

How We Built It

Frontend

  • React + Vite + Tailwind (mobile-first)
  • Capacitor for Android/iOS builds
  • Smooth UX with Vite HMR

Backend

  • FastAPI (Python)
  • SQLite database
  • JWT authentication
  • REST endpoints for:

    • Auth
    • Receipts
    • Friends
    • Splits
    • Transactions

AI & OCR

  • OpenAI GPT-4 Vision for parsing messy receipts
  • OpenStreetMap + Leaflet for venue mapping

Tooling

  • .env for API keys/secrets
  • Batching API calls for responsive UI

Challenges

  • Emulator networking headaches (e.g., localhost vs 10.0.2.2).
  • Prompting Vision reliably to parse inconsistent receipts.
  • Maintaining shared state across auth, receipts, friends, and splits.
  • Handling multi-language UI and currency/tax rounding edge cases.

Accomplishments

  • Fully working flow: Scan → Parse → Split → Assign → Ledger on both web and emulator.
  • Clean, mobile-first UI aligned with the Ryt Bank design language.
  • AI-driven item-level splitting (not just manual entry).
  • Built-in multi-language support and location tagging.

What We Learned

  • Prompt engineering significantly boosts OCR accuracy.
  • Clear backend API boundaries simplify React state management.
  • Emulator networking can waste hours—document IP rules early.
  • UX polish (prefilled splits, toasts, defaults) removes friction.

What’s Next

  • Integrate real payment rails: Stripe, PayPal, Venmo, etc.
  • Push notifications for pending splits/requests.
  • Budgeting insights by merchant/category with export to CSV/PDF.
  • Enhanced multi-currency logic + offline caching for travelers.
  • More automated testing around OCR edge cases and rounding rules.

Built With

  • android
  • capacitor
  • capacitor-(android/ios-packaging).-backend:-python-(fastapi)
  • cli;
  • frontend:-react-+-vite
  • jwt-auth
  • sqlite-database.-apis/services:-openai-gpt?4-vision-for-receipt-ocr;-leaflet-+-openstreetmap-for-mapping;-optional-google-maps-api-key-for-locations.-tooling/build:-npm
  • studio
  • tailwind-css
  • vite-hmr-dev-server
  • xcode
Share this project:

Updates