Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CheckMate πŸ“ΈπŸ’°

React Native Expo

CheckMate helps you effortlessly split bills from receipt images. Simply take a picture, and AI will extract the details, calculate totals, and let you share the costs with friends!

πŸš€ Features

βœ… Snap a Receipt – Take a photo and extract the bill details automatically.
βœ… Gallery Upload – Pick a receipt from your photo library.
βœ… AI-Powered Extraction – Uses GPT-4o Vision for accurate text recognition.
βœ… Auto Tax & Tip Calculation – Splits your bill fairly.
βœ… Split Options – Even split or assign items manually.
βœ… Secure & Private – No data is stored, only processed locally and via OpenAI.

πŸ“² Installation

1️⃣ Clone the Repo

git clone https://github.com/your-username/CheckMate.git
cd CheckMate

2️⃣ Install Dependencies

npm install

or with Yarn:

yarn install

3️⃣ Set Up Environment Variables

Create a .env file in the root directory and add:

EXPO_PUBLIC_OPENAI_API_KEY=your_openai_api_key

πŸ”₯ DO NOT share your API key publicly! Use a .gitignore file to exclude .env from commits.

4️⃣ Start the App

For iOS:

npx expo start --ios

For Android:

npx expo start --android

For Web:

npx expo start

πŸ› οΈ Tech Stack

  • Frontend: React Native (Expo, TypeScript)
  • State Management: React Hooks
  • Navigation: Expo Router
  • Image Processing: expo-image-picker, expo-image-manipulator
  • AI Processing: OpenAI GPT-4o Vision API
  • UI Components: React Native UI Kit, react-native-magnus

🧠 AI Receipt Extraction

We use OpenAI's GPT-4o Vision API to analyze receipt images and extract structured data.

AI API Request Example

{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "Extract structured receipt details. Return JSON only."
    },
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Extract receipt details from this image." },
        {
          "type": "image_url",
          "image_url": { "url": "data:image/jpeg;base64,..." }
        }
      ]
    }
  ],
  "max_tokens": 500
}

Expected AI Response

{
  "store": { "name": "Starbucks", "address": "123 Main St", "phone": null },
  "transaction": {
    "date": "2024-02-01",
    "time": "14:30",
    "paymentMethod": "Visa"
  },
  "items": [{ "name": "Latte", "price": 5.5, "quantity": 1, "discount": 0.5 }],
  "subtotal": 5.0,
  "tax": 0.4,
  "total": 5.4,
  "currency": "USD"
}

🚧 Roadmap

  • Capture Receipts via Camera
  • Extract Items & Costs Using AI
  • Evenly Split Bills
  • Custom Item Selection for Each Person
  • Payment Integration (Zelle, Venmo)
  • Dark Mode Support
  • Multi-Language Support

🌟 Acknowledgments

Big thanks to:

Playtime stickers created by Stickers - Flaticon Couple stickers created by Stickers - Flaticon Calculator stickers created by Stickers - Flaticon

About

CheckMate πŸ“ΈπŸ’° – A React Native app that automatically extracts and splits receipts using AI. Snap a photo or upload a receipt, and let OpenAI analyze, itemize, and calculate totals for an effortless bill-splitting experience. πŸš€βœ¨

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages