A high-performance, containerized Full-Stack application designed for real-time text extraction from images. This project features an automated CI/CD Pipeline (Continuous Integration & Delivery) that builds, optimizes, and pushes production-ready images to Docker Hub.
- Neural OCR Engine: Powered by
Tesseract.jsfor high-accuracy text recognition. - Edge Optimization: Client-side image compression via
browser-image-compressionto reduce bandwidth and server load. - Automated CI/CD: Zero-touch deployment pipeline using GitHub Actions and Docker Buildx with GHA caching.
- Production Security: Hardened Express backend featuring
Zodvalidation,Helmetheaders, andExpress-Rate-Limit. - Container Orchestration: Single-command environment setup with
Docker Compose.
- Framework: React 19 (Vite)
- Styling: Tailwind CSS 4 & DaisyUI
- Networking: Axios
- Server: Node.js & Express 5
- Logic: Tesseract.js (OCR), Multer (File Handling)
- Validation: Zod (Schema Validation)
- Security: Helmet, CORS, Express-Rate-Limit
- Containerization: Docker & Docker Compose
- Automation: GitHub Actions
- Registry: Docker Hub
This project utilizes a Continuous Integration workflow. Every push to the main branch triggers a GitHub Action that:
- Sets up a Docker Buildx environment.
- Authenticates with Docker Hub via encrypted secrets.
- Builds the Client and Server images using GHA Layer Caching to optimize speed.
- Pushes uniquely tagged images (
github.sha) to the registry for deployment.
- Docker & Docker Compose installed.
First, pull the source code to your local machine and enter the project root:
git clone https://github.com/OmarAbuelkassem/Image-Processing-OCR.git
cd Image-Processing-OCRThis project is fully orchestrated. Run the following command to build the images and start the containers (Frontend, Backend, and Database) in one go:
docker compose up --buildOnce the terminal shows the logs are stable, you can interact with the platform at the following addresses:
| Service | URL | Responsibility |
|---|---|---|
| Frontend | http://localhost:5173 |
React 19 / Vite UI |
| Backend | http://localhost:5000 |
Express API / OCR Engine |