Serverless, AI-Powered Receipt & Invoice Extraction
Turn receipts into structured data instantly using Client-Side AI.
Features • Getting Started • Usage • Architecture
- 📱 Mobile-First Scanning — Optimized camera workflow with "Card View" for mobile devices.
- ⚡ Serverless Architecture — 100% Client-Side. No backend server required. Deploys to Azure Static Web Apps.
- 🤖 Azure OpenAI Integration — Leverages GPT-4o interaction for highly accurate data extraction.
- 🔒 Privacy Focused — Data stored locally in your browser (
localStorage). API keys never leave your device (except to call Azure). - 🎨 Material Design — Modern, clean Light Theme with intuitive interactions.
- 📊 Instant Analytics — Real-time tracking of expenses by category.
- 📤 Export Ready — One-click export to Excel (.xlsx) for accounting.
Since this is a static web application, you don't need to install Python or Docker.
-
Clone the repository
git clone https://github.com/taatim/simXtract.git cd simXtract -
Open
index.html- You can open
index.htmldirectly in your browser. - Recommended: Use a simple HTTP server (e.g., Live Server in VS Code) to avoid CORS issues with camera access.
npx http-server . - You can open
- Fork this repo to your GitHub.
- Create a Static Web App in Azure Portal.
- Link to GitHub and select this repo.
- No Build Preset required (HTML/JS).
-
Configure API
- Click the Settings (⚙️) icon.
- Enter your Azure OpenAI Endpoint and API Key.
- These are saved locally in your browser.
-
Scan or Upload
- Mobile: Tap "SCAN RECEIPT" to launch the optimized camera. Snap multiple photos. Tap "DONE".
- Desktop: Drag & drop receipt images onto the dashboard.
-
Process Batch
- Click "PROCESS BATCH". The AI will extract Vendor, Date, Total, and Category from all images.
-
Export
- Use "EXPORT XLS" to download your data for expense reporting.
This project has evolved from a Python backend to a streamlined Static Web App:
simXtract/
├── index.html # Main Application Entry
├── style.css # Material Light Theme & Mobile Responsiveness
├── app.js # Core Logic (State, Camera, UI Rendering)
├── azureOpenAI.js # Client-side AI Extraction Logic
└── utils.js # Helpers (Currency formatting, dates)
Note: Legacy Python/Docker files have been archived to
legacy_v1/.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by taatim