Skip to content

Latest commit

Β 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–ΌοΈ AI Image Processing System

An AI-powered image processing system built with Node.js, Express, React, MongoDB Atlas, Redis, BullMQ, Docker, OCR, and Sharp. The application processes uploaded images asynchronously and provides metadata extraction, OCR, blur detection, brightness analysis, duplicate detection, and an overall quality score.


✨ Features

  • πŸ“€ Upload image files
  • πŸ“„ OCR (Optical Character Recognition)
  • πŸ“· Image metadata extraction
  • 🌫 Blur detection
  • β˜€οΈ Brightness analysis
  • πŸ” Duplicate image detection
  • ⭐ Image quality score calculation
  • ⚑ Asynchronous image processing using BullMQ
  • πŸ“Š Real-time processing status updates
  • 🐳 Dockerized full-stack application

Live Demo

🌐 Frontend: https://intelligent-media-processing-frontend-syck.onrender.com

βš™οΈ Backend API: https://intelligent-media-processing-65w5.onrender.com


πŸ“Έ Application Screenshots

🏠 Home Page


πŸ“€ Upload Image


πŸ“Š Processing Result


🐳 Running with Docker Compose


πŸ› οΈ Tech Stack

Frontend

  • React
  • Vite
  • Axios
  • CSS

Backend

  • Node.js
  • Express.js

Database

  • MongoDB Atlas
  • Mongoose

Queue & Cache

  • Redis
  • BullMQ

Image Processing

  • Sharp
  • Tesseract OCR

DevOps

  • Docker
  • Docker Compose

πŸ“ Project Structure

Intelligent-Media-Processing/
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/
β”‚   β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ workers/
β”‚   β”‚   └── server.js
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ .dockerignore
β”‚   └── package.json
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ .dockerignore
β”‚   └── package.json
β”‚
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ README.md
└── .gitignore

βš™οΈ Prerequisites

Install the following before running the project.

  • Node.js
  • Docker Desktop
  • MongoDB Atlas Account

πŸš€ Installation (Without Docker)

Clone Repository

git clone https://github.com/darshanbaja/Intelligent-Media-Processing.git
cd Intelligent-Media-Processing

Backend

cd backend
npm install

Create .env

PORT=5000

MONGODB_URI=YOUR_MONGODB_CONNECTION_STRING

REDIS_HOST=127.0.0.1
REDIS_PORT=6379

Start backend

npm start

Worker

Open another terminal.

cd backend

node src/workers/imageWorker.js

Frontend

cd frontend

npm install

npm run dev

Redis

Run Redis locally before starting the backend.



🐳 Docker Setup

Build and Start

docker compose up --build

Stop Containers

docker compose down

Services

Service Port
Frontend 5173
Backend 5000
Redis 6379

The Docker setup automatically starts:

  • Frontend
  • Backend
  • BullMQ Worker
  • Redis

MongoDB is connected through MongoDB Atlas.


πŸ“‘ API Endpoints

Upload Image

POST /api/images/upload

Get Image Status

GET /api/images/status/:imageId

πŸ”„ Processing Pipeline

Upload Image
      β”‚
      β–Ό
Backend API
      β”‚
      β–Ό
BullMQ Queue
      β”‚
      β–Ό
Worker
      β”‚
      β”œβ”€β”€ Metadata Extraction
      β”œβ”€β”€ OCR
      β”œβ”€β”€ Blur Detection
      β”œβ”€β”€ Brightness Analysis
      β”œβ”€β”€ Duplicate Detection
      └── Quality Score
      β”‚
      β–Ό
MongoDB
      β”‚
      β–Ό
Frontend

πŸ“Š Analysis Performed

Each uploaded image is analyzed for:

  • Image Metadata
  • OCR Text
  • Blur Detection
  • Brightness Status
  • Duplicate Detection
  • Image Quality Score

Assumptions

  • The application accepts valid image files (e.g., JPG, JPEG, PNG) for processing.
  • MongoDB Atlas and Redis services are available and properly configured.
  • Image processing is performed asynchronously using BullMQ, so results are not available immediately after upload.
  • OCR accuracy depends on the quality, resolution, and readability of the uploaded image.
  • Duplicate detection is based on the implemented comparison logic and may not detect every visually similar image.
  • The deployed application may take a few seconds to respond if the hosting service is waking up after a period of inactivity (cold start on Render).

🌟 Future Improvements

  • User Authentication
  • Drag & Drop Upload
  • Batch Image Processing
  • Image Compression
  • AI Object Detection
  • Face Detection
  • Cloud Storage Integration
  • Processing Dashboard
  • Email Notifications

πŸ‘¨β€πŸ’» Author

Darshan

Computer Science Engineering Student


About

AI-powered image processing system with OCR, blur detection, brightness analysis, duplicate detection, metadata extraction, and asynchronous processing using BullMQ.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages