2025 – Present · Main developer
FlexOCR client portal
Teams receive documents in many layouts and need the data out of them without retyping it.
- of 500 commits
- ~95%
- apps: portal and API
- 2
How it fits together
- PortalUpload, templates, history
- APIAuth and job control
- Job queueMulti-page OCR runs
- FlexOCRExtraction engine
Context
FlexOCR reads documents that come in many layouts, including handwriting, and checks the data it extracts. Clients needed a portal to set up their document types, send files and get the results back.
My role
- Main developer of both the portal and its API, with about 95% of 500 commits since October 2025.
- Presented FlexOCR at SCG Digital’s AI Factory Showcase 2026.
What I built
- A Next.js portal with document templates, PDF preview and page handling, job history, usage charts and Excel export.
- A NestJS API with JWT sign-in, OpenAPI (Swagger) documentation, health checks and TypeORM data access.
- Asynchronous OCR jobs: multi-page documents are stored and processed on the backend, so a long file no longer depends on the browser staying open.
- Fixes for concurrent requests under load, stricter template ID validation, and Docker images with a pinned, patched Node.js runtime.
Decisions
- Move long OCR runs from the request into background jobs with stored state, which made retries and history possible.
Stack
- Next.js
- NestJS
- TypeScript
- TypeORM
- Docker