Create an image tool website that can convert images to different formats, compress, or resize images. The backend will be powered by express using NodeJS.
Serve static files at the /public directory.
The upload size limit is 32 MB.
There will be 3 routes, "/compress", "/resize", and "/convert", and all of them require POST requests, and an image as the input.
Compress will attempt to compress the image.
Resize will resize the image to any dimensions the user gives it.
Convert will convert the image to different formats, whether it be PNG to JPG, JPG to PNG, etc.
Here's a high-level outline for your image tool web app:

    1. Create a new project in Visual Studio Code with a React Native application structure (e.g., App/) and npm dependencies installed.
    2. Write the Express server code using Node.js to handle incoming HTTP requests and serve static files from the /public directory. You'll need to set up routing and authentication logic as well.
    3. Implement the three routes for uploading, compressing, and resizing images. Each route requires a POST request with an image file as its input.
    4. Use the node-canvas library to perform the image manipulation tasks, such as compression and resizing. You may also want to use the node-jpeg library to save the processed images in JPEG format.
    5. Add validation and error handling logic to ensure that users provide valid inputs for each step and prevent errors during processing.
    6. Test the functionality of the web app by running the development server and making test posts to the API endpoint.
    7. Deploy the web app to a hosting platform like Heroku or AWS so that users can access it online.

This should give you a good starting point for building a functional image tool web app using Express and React Native. Let me know if you have any questions or need more guidance along the way!