A service that helps reunite people with lost documents (passports, IDs, driver's licenses) using OCR + owner verification over WhatsApp.
π Live: doc.caim.dev
π This is a showcase. Source code is in a private repository. This page documents the architecture and key engineering wins.
- Someone who found a document uploads photos + a short silent video (camera only, no gallery).
- The system runs OCR to extract the document's identifying fields.
- The owner claims it and proves ownership via a WhatsApp OTP.
- On a verified match, the two are connected.
Country-aware document types and field rules (RU passport / Π‘ΠΠΠΠ‘ / ΠΠΠ, US SSN, India PAN / Aadhaar, Kyrgyz AC/AN/ID prefixes, β¦) and a full admin panel.
PaddleOCR was installed but misconfigured and painfully slow. After profiling, a single fix (enable_mkldnn) plus pipeline tuning brought a document scan from ~180 seconds down to ~1 second β a ~180Γ speedup β with Tesseract.js + Mindee as fallbacks.
Client (camera capture) βββΊ Fastify API βββΊ PostgreSQL (Prisma)
β
ββββΊ OCR sidecar (FastAPI + PaddleOCR 3.5)
ββββΊ WhatsApp OTP verification
API Fastify Β· Prisma Β· PostgreSQL OCR FastAPI Β· PaddleOCR 3.5 Β· Tesseract.js Β· Mindee (fallback) Verification WhatsApp OTP Infra Linux Β· Nginx Β· PM2
Built by Muratbek Omurzakov.