A web application that uses AI to extract structured data from receipt and invoice images, storing the data in a database for viewing and export capabilities.
RIDE (Receipt & Invoice Data Extractor) helps small businesses track expenses by automatically extracting key information from receipt and invoice images using Claude AI. Users can upload images, view extracted data, edit information, and export to CSV or Excel.
- AI-Powered Extraction - Automatic data extraction using Claude Vision API
- User Authentication - Secure registration and login
- Receipt Management - Upload, view, edit, and delete receipts
- Line Item Details - Detailed breakdown of each receipt
- Export Functionality - Download data in CSV or Excel format
- Responsive Design - Works on desktop and mobile devices
- Docker Deployment - Easy setup with Docker containers
- Backend: PHP 8.3 with Laravel 12
- Frontend: React 19 with TailwindCSS
- Database: SQLite
- AI/ML: Claude API (Anthropic)
- Containerization: Docker with Alpine-based images
- Docker Desktop installed and running
- Anthropic API key (get one at https://console.anthropic.com/)
-
Clone the repository
git clone <repository-url> cd RIDE
-
Configure backend environment
cd backend cp .env.example .envEdit
backend/.envand add your Claude API key:CLAUDE_API_KEY=your_api_key_here -
Configure frontend environment
cd ../frontend cp .env.example .env cd ..
-
Build and start the containers
docker-compose up --build -d
-
Initialize the backend
# Generate application key docker-compose exec backend php artisan key:generate # Create database file docker-compose exec backend touch database/database.sqlite # Run migrations docker-compose exec backend php artisan migrate
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
For detailed setup and testing instructions, see SETUP_AND_TESTING.md.
# Access backend container
docker-compose exec backend sh
# Run migrations
docker-compose exec backend php artisan migrate
# Create a new migration
docker-compose exec backend php artisan make:migration create_table_name
# Run tests
docker-compose exec backend php artisan test# Access frontend container
docker-compose exec frontend sh
# Install new package
docker-compose exec frontend npm install package-name# Stop containers
docker-compose down
# Stop and remove volumes (fresh start)
docker-compose down -vRIDE/
├── backend/ # Laravel application
│ ├── app/
│ │ ├── Http/Controllers/
│ │ ├── Models/
│ │ ├── Services/
│ │ └── Jobs/
│ ├── database/
│ │ └── migrations/
│ ├── routes/
│ │ └── api.php
│ ├── storage/
│ ├── Dockerfile
│ └── .dockerignore
│
├── frontend/ # React application
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ └── contexts/
│ ├── public/
│ ├── Dockerfile
│ └── .dockerignore
│
├── docker-compose.yml # Docker orchestration
├── .env.example # Environment variables template
├── PROJECT_OUTLINE.md # Project specifications
├── IMPLEMENTATION_PLAN.md # Development roadmap
└── README.md # This file
POST /api/v1/auth/register- Register new userPOST /api/v1/auth/login- Login userPOST /api/v1/auth/logout- Logout userGET /api/v1/auth/user- Get current user
POST /api/v1/receipts/upload- Upload receipt imageGET /api/v1/receipts- List all receipts (paginated)GET /api/v1/receipts/{id}- Get single receipt with line itemsPUT /api/v1/receipts/{id}- Update receipt dataDELETE /api/v1/receipts/{id}- Delete receiptGET /api/v1/receipts/export- Export receipts (CSV/Excel)
See backend/.env.example and frontend/.env.example for all available configuration options.
CLAUDE_API_KEY- Your Claude API key from AnthropicAPP_KEY- Laravel application key (generated withphp artisan key:generate)
APP_ENV- Application environment (local, production)APP_DEBUG- Enable debug mode (true, false)CORS_ALLOWED_ORIGINS- Frontend URL for CORS (default: http://localhost:3000)UPLOAD_MAX_SIZE- Maximum upload file size in MB (default: 10)
VITE_API_URL- Backend API URL (default: http://localhost:8000)
# Check if ports are already in use
lsof -i :3000
lsof -i :8000
# Remove old containers and volumes
docker-compose down -v
docker-compose up --build# Fix storage permissions
docker-compose exec backend chmod -R 775 storage bootstrap/cacheEnsure volumes are properly configured in docker-compose.yml and not being deleted between runs.
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Proprietary - All rights reserved
For issues and questions, please create an issue in the repository.