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.
- π€ 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
π Frontend: https://intelligent-media-processing-frontend-syck.onrender.com
βοΈ Backend API: https://intelligent-media-processing-65w5.onrender.com
- React
- Vite
- Axios
- CSS
- Node.js
- Express.js
- MongoDB Atlas
- Mongoose
- Redis
- BullMQ
- Sharp
- Tesseract OCR
- Docker
- Docker Compose
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
Install the following before running the project.
- Node.js
- Docker Desktop
- MongoDB Atlas Account
git clone https://github.com/darshanbaja/Intelligent-Media-Processing.git
cd Intelligent-Media-Processingcd backend
npm installCreate .env
PORT=5000
MONGODB_URI=YOUR_MONGODB_CONNECTION_STRING
REDIS_HOST=127.0.0.1
REDIS_PORT=6379Start backend
npm startOpen another terminal.
cd backend
node src/workers/imageWorker.jscd frontend
npm install
npm run devRun Redis locally before starting the backend.
docker compose up --builddocker compose down| Service | Port |
|---|---|
| Frontend | 5173 |
| Backend | 5000 |
| Redis | 6379 |
The Docker setup automatically starts:
- Frontend
- Backend
- BullMQ Worker
- Redis
MongoDB is connected through MongoDB Atlas.
POST /api/images/upload
GET /api/images/status/:imageId
Upload Image
β
βΌ
Backend API
β
βΌ
BullMQ Queue
β
βΌ
Worker
β
βββ Metadata Extraction
βββ OCR
βββ Blur Detection
βββ Brightness Analysis
βββ Duplicate Detection
βββ Quality Score
β
βΌ
MongoDB
β
βΌ
Frontend
Each uploaded image is analyzed for:
- Image Metadata
- OCR Text
- Blur Detection
- Brightness Status
- Duplicate Detection
- Image Quality Score
- 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).
- User Authentication
- Drag & Drop Upload
- Batch Image Processing
- Image Compression
- AI Object Detection
- Face Detection
- Cloud Storage Integration
- Processing Dashboard
- Email Notifications
Darshan
Computer Science Engineering Student



