# API Configuration Guide ## Local Development The frontend is configured to connect to the backend API on port 7860: - `REACT_APP_API_URL=http://localhost:7860` Make sure your Flask backend is running on this port: ```bash python -m flask run --host=0.0.0.0 --port=7860 ``` ## Production Deployment (Vercel) For the deployed frontend on Vercel (https://infravision-kohl.vercel.app/), configure the backend API URL: ### Steps: 1. Go to your Vercel project settings 2. Navigate to **Environment Variables** 3. Add a new environment variable: - **Name:** `REACT_APP_API_URL` - **Value:** Your deployed backend URL (e.g., `https://-infravision-api.hf.space`) - **Environments:** Select "Production" 4. Redeploy your application ## Available Configuration Files - `.env` - Local development settings - `.env.production` - Production template (update with your actual backend URL in Vercel UI) ## Supported Environment Variables - `REACT_APP_API_URL` - The backend API base URL (defaults to http://localhost:7860 in development) --- ## Material Classification API ### Endpoint ``` POST /api/analyze-image ``` ### Request ```javascript const formData = new FormData(); formData.append('image', imageFile); const response = await fetch(`${API_URL}/api/analyze-image`, { method: 'POST', body: formData }); const result = await response.json(); ``` ### Response ```json { "success": true, "image_size": "1920x1080", "crack_analysis": { "crack_count": 3, "total_pixels": 45230, "total_area_cm2": 12.5, "average_width_cm": 2.3 }, "material_classification": { "material": "Concrete", "probabilities": { "Brick": 0.05, "Concrete": 0.85, "Stone": 0.05, "Sandstone": 0.02, "Marble": 0.01, "Plaster": 0.01, "Wood": 0.005, "Metal": 0.005 } }, "segmentation": { "class_counts": {"crack": 45, "discolouration": 12} }, "processed_image": "data:image/jpeg;base64,..." } ``` ### Material Classes 1. **Brick** - Common in masonry structures 2. **Concrete** - Prevalent in modern infrastructure 3. **Stone** - Natural stone surfaces 4. **Sandstone** - Sedimentary stone 5. **Marble** - Premium stone finishes 6. **Plaster** - Finished surfaces 7. **Wood** - Timber structures 8. **Metal** - Steel/iron elements --- ## Backend Deployment (Hugging Face)