This project implements a system to process image data from CSV files asynchronously. It provides APIs to upload CSV files, track processing status, and retrieve processed image data.
- Upload API: Accepts CSV files and generates a unique request ID.
- Status API: Allows checking the processing status using the request ID.
- Asynchronous Workers: Processes images by resizing and stores them in a database.
- Webhook Integration: Sends notifications upon processing completion.
- Endpoint:
/upload - Method: POST
- Request Payload: Form-data with
csvFilefield containing the CSV file. - Response: JSON with
requestIdupon successful upload.
- Endpoint:
/status/:requestId - Method: GET
- Request Params:
requestId(String) - Response: JSON with
statusof the processing request (PENDING,PROCESSING,COMPLETED).
- Functionality: Downloads images from URLs, resizes them, and updates database records with processed image URLs.
- Clone the repository:
git clone [repository_url] - Install dependencies:
npm install - Set up environment variables in
.envfile. - Start the server:
npm start
- Node.js
- Express.js
- Sequelize (SQL ORM)
- Axios
- Sharp (Image Processing)
- MySQL (Database)