Business Card Scanner — CardScan
Overview
Business Card Scanner — CardScan
Contract: OUT-2026-BCS-001 Build: bcs-20260624 Classification: Mobile Web Application (PWA)
What This Does
CardScan turns business card photos into phone contacts:
- Take a photo (or pick from gallery) on your phone
- Extract details — name, title, company, email, phone, website, address (on-device OCR)
- Review & edit — fix anything the scan missed
- Add to contacts — saves a vCard your phone opens in the Contacts app
No account, no cloud upload of card images. OCR runs in your browser via Tesseract.js.
Quick Start (Phone)
Option A — Same Wi‑Fi (fastest)
On your computer:
cd delivery-package/business-card-scanner/app
node server.js
On your phone (same Wi‑Fi), open the URL shown in the terminal, e.g. http://192.168.1.42:3850.
Option B — Deploy static hosting
Upload the app/ folder to any static host (Netlify, Vercel, GitHub Pages, etc.). HTTPS is recommended for add-to-home-screen.
Option C — Local only
cd delivery-package/business-card-scanner/app
node server.js
Open http://localhost:3850 on your machine.
Using the App
- Tap Take Photo and point at a business card (good lighting helps).
- Wait a few seconds while text is read from the image.
- Review the extracted fields and edit as needed.
- Tap Add to Phone Contacts.
- iPhone / Android: Use the share sheet and choose Contacts, or open the downloaded
.vcffile.
- Tap Scan Another Card to continue.
Tip: Add CardScan to your home screen (browser menu → Add to Home Screen) for quick access.
Package Layout
business-card-scanner/
├── app/
│ ├── index.html # Mobile UI
│ ├── app.js # Camera, OCR, save flow
│ ├── styles.css
│ ├── manifest.json # PWA manifest
│ ├── server.js # Local / LAN static server
│ └── lib/
│ ├── contact-parser.js
│ ├── vcard.js
│ └── image-prep.js
├── user-guide.md
├── run-deploy-instructions.md
├── verification-report.md
├── outcome-contract.md
└── DELIVERY-NOTE.md
Verification
With the server running:
node delivery-package/business-card-scanner/scripts/run-verification.mjs
Limitations
- OCR quality depends on lighting, focus, and card design; always review before saving.
- Fancy layouts, logos-only cards, or non-Latin scripts may parse poorly.
- First scan downloads the OCR engine (~2–5 MB); needs internet once, then cached.
- Saves contacts via vCard (standard on iOS and Android); does not write directly to the address book API (that requires a native app store build).
Excluded (By Contract)
- CRM sync, team sharing, cloud contact storage
- Batch scanning / card database
- Native iOS/Android app store packages