This web application allows users to upload images, apply various processing operations, and download the processed output. The frontend is built with Next.js, and the backend is powered by FastAPI.
- Node.js (v14+)
- npm (v6+)
- Python 3.8+
- Pip (Python package installer)
- Navigate to the
client
directory:cd client
- Install the dependencies:
npm install
- Start the development server:
The application should be available at
npm run dev
http://localhost:3000
.
-
Navigate to the
server
directory:cd server
-
Install the required packages:
pip install -r requirements.txt
-
Copy the
.env.example
file to.env
and fill in the required environment variables:cp .env.example .env
Then edit the
.env
file with your specific configuration. -
Start the FastAPI server:
python3 main.py
The FastAPI server should be available at
http://localhost:8000
. -
Start the background worker:
python3 worker.py
This command starts the worker for handling background tasks.
- Upload an Image: Use the frontend to select and upload an image.
- Apply Processing: Choose from options like resizing, filtering, or adjusting brightness.
- Download Processed Image: Once processing is complete, download the image.
- The frontend and backend communicate via API requests.
- The project uses RQ (Redis Queue) and Redis for managing background tasks.
- S3 is used for image storage, and PIL (Python Imaging Library) is used for processing images.