- Introduction
- Features
- Tech Stack
- Installation
- Configuration
- Running the Application
- API Documentation
- Database Schema
- Asynchronous Workers Documentation
- LLD Draw.io Diagram PDF
This project is an image processing system designed to handle CSV files containing product information and associated image URLs. The system performs the following tasks:
- Receives and validates CSV files.
- Asynchronously processes images (compressing them by 50%).
- Stores the processed image data and associated product information in a database.
- Provides an API to check the processing status using a unique request ID.
- Uses webhooks to notify the completion of image processing tasks.
- Asynchronous image processing.
- Validation of CSV file format.
- Database storage of product and request data.
- Webhook notifications upon completion of processing.
- Clear API endpoints for uploading CSV files and checking processing status.
- Backend: Node.js, Express.js
- Database: MongoDB
- Image Processing: Sharp
- HTTP Requests: Axios
- Clone the repository:
git clone https://github.com/Adithyasharma1162/image-processing-from-csv.git cd image-processing-system
- MongoDB: Set up your MongoDB connection string in the .env file.
- Port: Configure the server port in the .env file.
- Webhook URL: Specify the webhook URL to receive notifications upon completion of image processing.
- Start the server:
npm start
- Run the worker script for processing images:
node workers/processImages.js
1: API Documentation PDF Provided in Repository
1: Database Schema PDF provided in Repository
1: Asynchronous Workers Documentation PDF provided in Repository
Click the image below to view LLD.pdf