| --- |
| title: Manufacturing Monitoring System |
| emoji: 🏭 |
| colorFrom: blue |
| colorTo: gray |
| sdk: docker |
| app_port: 7860 |
| --- |
| |
| # Manufacturing Monitoring System |
|
|
| Manufacturing Monitoring System is a full-stack industrial monitoring platform for steel surface inspection. It generates automated reports, streams live updates over WebSockets, and exposes a production-style dashboard for real-time manufacturing visibility. |
|
|
| ## Highlights |
|
|
| - Real-time defect detection for steel surface images |
| - Browser camera inspection and uploaded image inspection |
| - Fast real-time inspection mode with optional deep AI analysis |
| - Hosted or local AI recommendations with automatic fallback to rule-based guidance |
| - FastAPI backend with REST and WebSocket streaming |
| - Local JSON report persistence with optional PostgreSQL logging |
| - React + Vite + Tailwind monitoring dashboard |
| - Analytics, history, alerts, and live command center views |
|
|
| ## Tech Stack |
|
|
| - Backend: FastAPI, Uvicorn, OpenCV, Ultralytics YOLO |
| - LLM: LangGraph + OpenRouter, Ollama, or Hugging Face Inference Providers |
| - Frontend: React, Vite, Tailwind CSS, Recharts |
| - Realtime: WebSocket broadcast pipeline |
| - Storage: Local reports plus optional PostgreSQL or Supabase |
|
|
| ## Project Structure |
|
|
| ```text |
| api/ FastAPI app and WebSocket server |
| agent/ Recommendation and decision helpers |
| core/ Config, logging, constants, database access |
| inspection/ Inference, formatting, reporting, service layer |
| dashboard/ React monitoring dashboard |
| models/ Trained defect detection model |
| training/ Experimental training utilities |
| test_images/ Sample images for local testing |
| live_camera.py Simulation runner for offline inspection playback |
| main.py Python entry point |
| ``` |
|
|
| ## Features |
|
|
| ### Dashboard |
|
|
| - Live decision status and connection health |
| - Inspection KPIs and critical alert banners |
| - Organized architecture and backend overview panels |
|
|
| ### Live Monitoring |
|
|
| - Upload an image and run inspection |
| - Use browser camera feed for auto or manual live inspection |
| - Annotated preview output for every inspected frame |
| - Fast mode for real-time inspection and optional deep AI analysis toggle |
| - PASS, REVIEW, and FAIL guidance with visible operator feedback |
| - Camera calibration guidance for top-view steel inspection |
|
|
| ### History |
|
|
| - Searchable inspection log |
| - Decision filtering |
| - Defect-level report detail view |
|
|
| ### Analytics |
|
|
| - Severity distribution |
| - Decision distribution |
| - Defect-type frequency |
| - Timeline charts for inspection trends |
|
|
| ## Backend API |
|
|
| ### Main endpoints |
|
|
| - `GET /health` |
| - `GET /reports` |
| - `GET /reports/latest` |
| - `GET /analytics/summary` |
| - `POST /inspect/image` |
| - `POST /inspect/frame` |
| - `WS /ws` |
|
|
| ## Environment Setup |
|
|
| Copy `.env.example` to `.env` if you want to configure PostgreSQL logging. |
|
|
| ```env |
| DATABASE_URL=postgresql://username:password@hostname:6543/postgres |
| CORS_ORIGINS=http://127.0.0.1:5173,http://localhost:5173 |
| ENABLE_LLM_REPORTS=true |
| LLM_PROVIDER=auto |
| OLLAMA_BASE_URL=http://127.0.0.1:11434 |
| OLLAMA_MODEL=llama3 |
| OLLAMA_TIMEOUT_SECONDS=6 |
| HF_TOKEN= |
| HF_CHAT_MODEL=meta-llama/Llama-3.1-8B-Instruct:cerebras |
| HF_ROUTER_BASE_URL=https://router.huggingface.co/v1 |
| OPENROUTER_API_KEY= |
| OPENROUTER_MODEL=openrouter/free |
| OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 |
| MAX_UPLOAD_SIZE_MB=8 |
| ``` |
|
|
| `DATABASE_URL` is optional. If it is not set, the system still works and stores reports locally inside `reports/`. |
|
|
| If `ENABLE_LLM_REPORTS=true`, the system can use: |
|
|
| - `LLM_PROVIDER=auto` to prefer a hosted provider when configured and fall back automatically |
| - `LLM_PROVIDER=ollama` for local development with Ollama |
| - `LLM_PROVIDER=huggingface` for cloud deployment with `HF_TOKEN` |
| - `LLM_PROVIDER=openrouter` for low-volume free cloud demos with `OPENROUTER_API_KEY` |
|
|
| If the configured provider is unavailable, the app falls back to a rule-based recommendation path automatically. |
|
|
| ## Camera Calibration |
|
|
| For the best live-monitoring performance, position the camera so the steel surface is clearly visible in a stable top view with minimal background clutter. This project is currently optimized around that operating assumption for public deployment. |
|
|
| ## Deployment |
|
|
| For a single public URL without needing any local computer: |
|
|
| - Deploy the whole app as one Docker service |
| - The included [Dockerfile](/Users/ravindranadhm/Documents/Projects/steel-surface-inspection copy/Dockerfile) builds the React frontend and serves it from FastAPI |
| - Best free option: Hugging Face Docker Spaces |
| - Best frontend-only option: Vercel, if you later want a split architecture |
|
|
| Recommended Hugging Face Space environment variables: |
|
|
| ```env |
| ENABLE_LLM_REPORTS=true |
| LLM_PROVIDER=auto |
| HF_TOKEN=your_huggingface_token |
| HF_CHAT_MODEL=meta-llama/Llama-3.1-8B-Instruct:cerebras |
| ``` |
|
|
| In deployed mode, keep deep AI analysis off for continuous live camera monitoring and enable it only for manual review or uploaded images. |
|
|
| ## Local Run |
|
|
| ### 1. Backend |
|
|
| ```bash |
| cd "/Users/ravindranadhm/Documents/Projects/steel-surface-inspection copy" |
| python3 -m venv venv |
| source venv/bin/activate |
| pip install -r requirements.txt |
| venv/bin/uvicorn api.main:app --host 127.0.0.1 --port 8000 |
| ``` |
|
|
| ### 2. Frontend |
|
|
| ```bash |
| cd "/Users/ravindranadhm/Documents/Projects/steel-surface-inspection copy/dashboard" |
| npm install |
| npm run dev -- --host 127.0.0.1 --port 5173 |
| ``` |
|
|
| ### 3. Open the app |
|
|
| - Frontend: `http://127.0.0.1:5173` |
| - Backend health: `http://127.0.0.1:8000/health` |
|
|
| ## Verification |
|
|
| Recommended checks: |
|
|
| ```bash |
| python -m compileall api core inspection agent live_camera.py main.py |
| ``` |
|
|
| ```bash |
| cd dashboard |
| npm run lint |
| npm run build |
| ``` |
|
|
| ## Notes |
|
|
| - The provided model file `models/steel_inspection.pt` is included in the project and is small enough for a standard GitHub repository. |
| - Browser camera inspection requires camera permission in your browser. |
| - Live camera mode is optimized to always return a visible inspection result, even when no defects are found. |
| - The frontend automatically uses the same origin as the backend when deployed as a single Docker service. |
|
|
| ## Resume-Friendly Summary |
|
|
| Built an AI-powered manufacturing monitoring system for steel surface inspection using FastAPI, React, WebSocket streaming, OpenCV, Ultralytics YOLO, analytics dashboards, and live browser camera inspection. |
|
|