A self-hosted web platform for automated photo-based quality control in industrial shipping lines
This repository contains a sanitized version of the internal Photos QC Tool I designed and implemented as an Engineering Intern at Joulin Vacuum Handling (Summer 2025).
The system is actively deployed on-premises to automate quality-control photo capture, checklist generation, and SharePoint upload, improving traceability and cutting operator time by ~95%.
| Layer | Technologies | Highlights |
|---|---|---|
| Frontend | Vanilla JS / HTML / CSS | Offline queue, HUD camera, checklist UI |
| Backend | FastAPI + httpx (Async Graph API) | Order lookup, SharePoint upload, logging |
| Infra | Windows Server + NSSM + Caddy | TLS reverse proxy, service management |
| Integration | Genius ERP / Microsoft Graph API | Resumable uploads, folder auto-creation |
🧩 Key Features (more details here)
-
Smart Order Handling
Scan barcode → ERP metadata lookup → auto-generated checklist. -
Camera & HUD UI
Full-screen preview, focus/exposure controls, auto-save thumbnails. -
Automated Uploads
Photos + Excel QC checklist → SharePoint via Graph API (resumable). -
Resilient Logging
Structured JSON logs, offline queue, rotation, and sanitization. -
Infra Automation
PS1 setup scripts, Caddy reverse proxy, and webhook-triggered redeploys. -
Check out App Flow for better idea of entire operator usage
flowchart LR
Operator -->|Scan / Photo| Frontend
Frontend -->|API Calls| FastAPI
FastAPI -->|ERP Queries| GeniusERP
FastAPI -->|Uploads| SharePoint
Caddy -->|HTTPS| Frontend
📊 See the Dependency Graph for full module relationships.
git clone https://github.com/youruser/joulin-qc-portfolio.git
cd joulin-qc-portfolio
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtCreate .env (see .env.example) and run:
run-dev.shThen open http://localhost:8000.
- Windows Server 2016+
- Services via NSSM
- TLS + reverse proxy via Caddy
- Webhook redeploys through ngrok + GitHub Actions
This project reduced manual QC logging time by ~95%,
increased photo traceability across manufacturing sites,
and served as the foundation for future AI-assisted anomaly detection.
- ✅ CI/CD testing pipeline
- 🤖 AI-based photo anomaly detection
- 🌍 Multi-site deployment support (across Piab Group)
- 🧩 Modular API for other ERP integrations
MIT License © 2025 Victor Joulin-Batejat
(This repository is a sanitized portfolio example and not affiliated with Joulin Vacuum Handling.)



