This is a Flask-based web application that allows users to upload multiple receipt images (or PDFs), extract structured expense data using OpenAI's GPT-4o Vision model, and save the parsed information to a CSV file. The application is designed to be mobile-friendly and supports multiple file uploads at once.
This web application allows users to upload multiple receipts (images or PDFs), extract structured expense data using OpenAI's GPT-4o Vision model, and save the processed transactions to a CSV file. The app is built with Flask for the backend and JavaScript for the frontend.
- Upload multiple receipts (JPG, PNG, or PDF format)
- Process receipts using OpenAI's GPT-4o for structured data extraction
- Display extracted data in an editable table
- Preview receipt thumbnails in the table
- Save expense data to a CSV file
- Mobile-friendly UI
- Python 3.8+
- Flask
- OpenAI API Key (if using GPT-4o for processing)
- Node.js (optional, for frontend enhancements)
- Clone the repository:
git clone https://github.com/your-username/expense-receipt-processor.git cd expense-receipt-processor
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
Create a
.env
file and add your OpenAI API key:OPENAI_API_KEY=your_api_key_here
- Run the Flask app:
python app.py
- Open the web app in a browser:
http://127.0.0.1:5000
- Select and upload one or multiple receipt images/PDFs.
- View extracted structured data in the table.
- Edit any incorrect values directly in the table.
- Click Save to store the transactions in the CSV file.
expense-receipt-processor/
¦-- static/
¦ +-- uploads/ # Stores uploaded files
¦ +-- processed/ # Stores processed images
¦-- templates/
¦ +-- index.html # Frontend UI
¦-- app.py # Flask backend
¦-- requirements.txt # Python dependencies
¦-- .env # Environment variables
¦-- README.md # This file
- Input: Multipart form with one or more receipt files
- Output: JSON with extracted receipt data and image preview URLs
- Input: JSON with edited expense details
- Output: Confirmation message & updated spreadsheet data
- Automatic email parsing for receipts
- Multi-page PDF handling
- Cloud storage integration (OneDrive/Google Drive)
Sammit Jain